New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DXVK should use VK_KHR_image_format_list #472
Comments
I can see the point of doing it for UAV images since that's an implementation detail of DXVK, but would there be any situation where doing it for |
Doing it for typed UAV is useful because it lets the driver know that you will only be using those two types (the primary type and the integer type). Also, while we're on the topic, you appear to set For texture views, I'm seeing this in the DXGI_FORMAT documentation:
This seems to imply (please correct me if I'm wrong!) that the view format must match both the bits-per-pixel of the format and the channel layout (R8G8B8A8 vs R16G16) of the typeless format. This is far more restrictive than the Vulkan and OpenGL rules which simply require the bits-per-pixel to match and allow you to have a view which re-interprets R8G8B8A8_UNORM as R16G16_FLOAT. That restriction is what we need in order to turn on compression and using VK_KHR_image_format_list will let you communicate it to the driver. |
The docs are inaccurate in this case, you can reinterpret |
That's very unfortunate. In that case, something more complex may be needed because we really don't want the performance hit of setting |
I've done some more research and it looks like the restrictions you quoted do apply to render target views, but not to UAVs. So in theory we could make good use of the format list for images which we know won't be used as storage images. Now the question is how to actually implement this while staying sane... |
Latest |
63af141 adds support for typed UAVs as well, and they are no longer marked as |
When creating UAV or typeless images, DXVK sets
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
which makes sense. Unfortunately, this causes the Intel Vulkan driver to shut off basically all compression. It would be helpful if you used the VK_KHR_image_format_list extension and provided the list of all formats you intend to use. For typeless images, this would be the list of all formats that correspond to the used_TYPELESS
format. For UAV images, it would be the UAV image format together with the corresponding integer format. This would let us turn compression back on in most cases.The text was updated successfully, but these errors were encountered: