Skip to content
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

DCC incorrectly enabled for certain format lists #204

Closed
pendingchaos opened this issue Mar 4, 2021 · 1 comment
Closed

DCC incorrectly enabled for certain format lists #204

pendingchaos opened this issue Mar 4, 2021 · 1 comment
Assignees
Labels
fix available The issue has been fixed by AMD internally or in dev branch reproduced The issue is reproduced by CQE

Comments

@pendingchaos
Copy link

pendingchaos commented Mar 4, 2021

It seems AMDVLK and AMDGPU-PRO enable DCC for images if a compatible integer format with a different sign than VkImageCreateInfo::format appears in VkImageFormatListCreateInfo::pViewFormats before an incompatible format. Reordering the format list so that the incompatible format is before the compatible format disables DCC.

The issue can be observed with this program: https://gist.github.com/pendingchaos/53f88567390a7df936a46dc7c518eb08

AMDVLK 2021.Q1.4:

driverVersion: 8388785
deviceName: Unknown AMD GPU
driverName: AMD open-source driver
       UINT,SINT: dcc
UINT,SFLOAT,SINT: nodcc
UINT,SINT,SFLOAT: dcc

driverVersion: 8388785
deviceName: Radeon RX 580 Series
driverName: AMD open-source driver
       UINT,SINT: dcc
UINT,SFLOAT,SINT: nodcc
UINT,SINT,SFLOAT: dcc

AMDGPU-PRO 20.45:

driverVersion: 8388766
deviceName: Unknown AMD GPU
driverName: AMD proprietary driver
       UINT,SINT: dcc
UINT,SFLOAT,SINT: nodcc
UINT,SINT,SFLOAT: dcc

driverVersion: 8388766
deviceName: Radeon RX 580 Series
driverName: AMD proprietary driver
       UINT,SINT: dcc
UINT,SFLOAT,SINT: nodcc
UINT,SINT,SFLOAT: dcc

"Unknown AMD GPU" is a Radeon RX 6800.

It seems the cause of this issue is that PAL's Device::ComputeDccFormatEncoding exits the loop as soon as a compatible integer format with a different sign is found, before it can check the compatibility of the rest of the formats.

This issue occurs when a Direct3D application under DXVK uses certain typeless formats such as DXGI_FORMAT_R32_TYPELESS. Trine 4: The Nightmare Prince is an example of this, though it appears enabling DCC for these formats does not cause obvious issues for this game.

@jinjianrong jinjianrong assigned qiaojbao and Kai-AMD and unassigned qiaojbao Mar 10, 2021
@jinjianrong jinjianrong added the reproduced The issue is reproduced by CQE label Mar 10, 2021
@Kai-AMD Kai-AMD removed their assignment Apr 22, 2021
@JaxLinAMD JaxLinAMD self-assigned this Apr 23, 2021
@JaxLinAMD JaxLinAMD added the fix available The issue has been fixed by AMD internally or in dev branch label Apr 25, 2021
JaxLinAMD added a commit that referenced this issue Apr 28, 2021
New feature and improvement
* Update Vulkan Headers to 1.2.174
* Support dynamic enable of color writes
* Add partial nested cmd buffer support to GpuDebug layer

Issue fix
* [AMDVLK issue #187] AMDVLK give out of memory errors when no AMD GPU installed
* [AMDVLK issue #204] DCC incorrectly enabled for certain format lists
* Few applications are running with llvmpipe driver by default with AMD switchable graphics layer
@jinjianrong
Copy link
Member

Fixed in 2021-Q2.2

JaxLinAMD added a commit to JaxLinAMD/AMDVLK that referenced this issue May 13, 2021
New feature and improvement
* Update Vulkan Headers to 1.2.174
* Support dynamic enable of color writes
* Add partial nested cmd buffer support to GpuDebug layer

Issue fix
* [AMDVLK issue GPUOpen-Drivers#187] AMDVLK give out of memory errors when no AMD GPU installed
* [AMDVLK issue GPUOpen-Drivers#204] DCC incorrectly enabled for certain format lists
* Few applications are running with llvmpipe driver by default with AMD switchable graphics layer
JaxLinAMD added a commit to JaxLinAMD/AMDVLK that referenced this issue May 13, 2021
New feature and improvement
* Update Vulkan Headers to 1.2.174
* Support dynamic enable of color writes
* Add partial nested cmd buffer support to GpuDebug layer

Issue fix
* [AMDVLK issue GPUOpen-Drivers#187] AMDVLK give out of memory errors when no AMD GPU installed
* [AMDVLK issue GPUOpen-Drivers#204] DCC incorrectly enabled for certain format lists
* Few applications are running with llvmpipe driver by default with AMD switchable graphics layer
JaxLinAMD added a commit to JaxLinAMD/AMDVLK that referenced this issue May 13, 2021
New feature and improvement
* Update Vulkan Headers to 1.2.174
* Support dynamic enable of color writes
* Add partial nested cmd buffer support to GpuDebug layer

Issue fix
* [AMDVLK issue GPUOpen-Drivers#187] AMDVLK give out of memory errors when no AMD GPU installed
* [AMDVLK issue GPUOpen-Drivers#204] DCC incorrectly enabled for certain format lists
* Few applications are running with llvmpipe driver by default with AMD switchable graphics layer
JaxLinAMD added a commit to JaxLinAMD/AMDVLK that referenced this issue May 14, 2021
New feature and improvement
* Update Vulkan Headers to 1.2.174
* Support dynamic enable of color writes
* Add partial nested cmd buffer support to GpuDebug layer

Issue fix
* [AMDVLK issue GPUOpen-Drivers#187] AMDVLK give out of memory errors when no AMD GPU installed
* [AMDVLK issue GPUOpen-Drivers#204] DCC incorrectly enabled for certain format lists
* Few applications are running with llvmpipe driver by default with AMD switchable graphics layer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix available The issue has been fixed by AMD internally or in dev branch reproduced The issue is reproduced by CQE
Projects
None yet
Development

No branches or pull requests

6 participants