Commit 1b6a9ca2 by Geoff Lang

D3D11: Disable B5G6R5 on AMD drivers.

Texture data corruption has been seen with this format, specifically on AMD Radeon R7 240 cards with the 15.201.1301.0 driver. BUG=941620 Change-Id: I42d0d86a8319afdfaf17b44e142c6414092c647d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1619383Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 85a239d0
...@@ -87,6 +87,8 @@ struct WorkaroundsD3D ...@@ -87,6 +87,8 @@ struct WorkaroundsD3D
// In Intel driver, the data with format DXGI_FORMAT_B5G6R5_UNORM will be parsed incorrectly. // In Intel driver, the data with format DXGI_FORMAT_B5G6R5_UNORM will be parsed incorrectly.
// This workaroud will disable B5G6R5 support when it's Intel driver. By default, it will use // This workaroud will disable B5G6R5 support when it's Intel driver. By default, it will use
// R8G8B8A8 format. This bug is fixed in version 4539 on Intel drivers. // R8G8B8A8 format. This bug is fixed in version 4539 on Intel drivers.
// On older AMD drivers, the data in DXGI_FORMAT_B5G6R5_UNORM becomes corrupted for unknown
// reasons.
bool disableB5G6R5Support = false; bool disableB5G6R5Support = false;
// On some Intel drivers, evaluating unary minus operator on integer may get wrong answer in // On some Intel drivers, evaluating unary minus operator on integer may get wrong answer in
......
...@@ -2404,6 +2404,11 @@ angle::WorkaroundsD3D GenerateWorkarounds(const Renderer11DeviceCaps &deviceCaps ...@@ -2404,6 +2404,11 @@ angle::WorkaroundsD3D GenerateWorkarounds(const Renderer11DeviceCaps &deviceCaps
} }
} }
if (IsAMD(adapterDesc.VendorId))
{
workarounds.disableB5G6R5Support = true;
}
// TODO(jmadill): Disable when we have a fixed driver version. // TODO(jmadill): Disable when we have a fixed driver version.
workarounds.emulateTinyStencilTextures = IsAMD(adapterDesc.VendorId); workarounds.emulateTinyStencilTextures = IsAMD(adapterDesc.VendorId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment