03-12-2016, 11:25 PM
Vulkan errors report
|
03-13-2016, 12:05 AM
03-16-2016, 01:35 AM
On my GeForce linear tiling prevents texture from using several mipmap level which break almost all 3d games. For some reasons it looks like not all GeForce are affected.
In addition the current implementation always use host visible memory to store data. On Radeon this is fine since device memory is host accessible however on GeForce it's not which means all rendering operation happen in main memory instead of device memory which is bad for performance. I guess these limitations lead to the upload/default/read back design decision of dx12 ; I'm currently implementing a similar way of doing for Vulkan. While it will add an extra copy operation for Radeon user the texture cache will limit the amount of such copy. On the other hand usage of optimal tiling will increase bandwidth usage for sampling and rendering operation so the benefit are likely to outweighs the drawback performance wise. If necessary an heuristic could detect which textures are modified per frame and use linear tiling for such texture on Radeon but that's a more long-term idea.
03-16-2016, 09:18 AM
(03-16-2016, 01:35 AM)vlj Wrote: On my GeForce linear tiling prevents texture from using several mipmap level which break almost all 3d games. For some reasons it looks like not all GeForce are affected. I think you could create a staging branch for this so that we can check the impact this will have on radeons. The current texturing implementation on vulkan falls back to staging textures if linear tiling support is not natively available. Is that not working? Or is it too slow?
03-16-2016, 04:46 PM
It's not working atm. Actually the issue is that linear tiling is supported for sampled image, but such image must have only one mipmap level.
Current code only check for linear supports but doesn't check that it can support enough mipmap levels
03-16-2016, 06:33 PM
(03-16-2016, 06:33 PM)AlexVS Wrote: Hi All. I've found the issue for this and fixed it. Submitted a PR: https://github.com/RPCS3/rpcs3/pull/1585
Desktop: Ryzen 7 5800X, Radeon RX 6800 XT, 2x8G 3600MHz, Manjaro Linux
Laptop: Intel i7 6700HQ, Intel HD 530, 2x8G 2133MHz, Manjaro Linux Old Desktop: FX-8350, R9 280X, 2x4G 1600MHz, Manjaro Linux
03-16-2016, 10:27 PM
(03-16-2016, 07:44 PM)Annie Wrote: I've found the issue for this and fixed it.Thanks (03-16-2016, 04:46 PM)vlj Wrote: It's not working atm. Actually the issue is that linear tiling is supported for sampled image, but such image must have only one mipmap level. Is there a case where we use textures that aren't sampleable? I didnt know about the sampleable images only having one mipmap level. That sounds very odd considering mipmapping is only really needed for sampling purposes. Driver bug maybe? EDIT: I noticed in the spec linear tiling allows the driver to set a maxmiplevels of 1. I missed it the first time. In this case i'm guessing we have to copy image to every mipmap level individually. |
« Next Oldest | Next Newest »
|
Users browsing this thread: 1 Guest(s)