From 96aa762d1ee5bd0294da80ac049a9fcd99032f2a Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 20 Apr 2019 12:51:04 +1000 Subject: [PATCH] PixelShaderGen: Don't emit bounding box shader code for old UIDs when disabled If bounding box is enabled when a UID cache is created, then later disabled, we shouldn't emit the bounding box portion of the shader. Fixes pipeline creation errors on D3D12 backend for this case. --- Source/Core/VideoCommon/PixelShaderGen.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 7064552e7d..c5d7086ef7 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -347,6 +347,10 @@ void ClearUnusedPixelShaderUidBits(APIType ApiType, const ShaderHostConfig& host // uint output when logic op is not supported (i.e. driver/device does not support D3D11.1). if (ApiType != APIType::D3D || !host_config.backend_logic_op) uid_data->uint_output = 0; + + // If bounding box is enabled when a UID cache is created, then later disabled, we shouldn't + // emit the bounding box portion of the shader. + uid_data->bounding_box &= host_config.bounding_box; } void WritePixelShaderCommonHeader(ShaderCode& out, APIType ApiType, u32 num_texgens,