1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-12 13:54:14 +01:00

[d3d9] Fix messing up the dirty textures bitmask

This commit is contained in:
Robin Kertels 2024-12-20 18:04:26 +01:00 committed by Philip Rebohle
parent b4faf0bb3e
commit 1eb0c687a6

View File

@ -3379,7 +3379,7 @@ namespace dxvk {
m_vsShaderMasks = D3D9ShaderMasks(); m_vsShaderMasks = D3D9ShaderMasks();
// Fixed function vertex shaders don't support sampling textures. // Fixed function vertex shaders don't support sampling textures.
m_dirtyTextures = m_vsShaderMasks.samplerMask & m_mismatchingTextureTypes; m_dirtyTextures |= m_vsShaderMasks.samplerMask & m_mismatchingTextureTypes;
m_mismatchingTextureTypes &= ~m_vsShaderMasks.samplerMask; m_mismatchingTextureTypes &= ~m_vsShaderMasks.samplerMask;
} }
@ -3748,7 +3748,7 @@ namespace dxvk {
newShaderMasks = FixedFunctionMask; newShaderMasks = FixedFunctionMask;
// Fixed function always uses spec constants to decide the texture type. // Fixed function always uses spec constants to decide the texture type.
m_dirtyTextures = newShaderMasks.samplerMask & m_mismatchingTextureTypes; m_dirtyTextures |= newShaderMasks.samplerMask & m_mismatchingTextureTypes;
m_mismatchingTextureTypes &= ~newShaderMasks.samplerMask; m_mismatchingTextureTypes &= ~newShaderMasks.samplerMask;
} }
@ -6342,7 +6342,7 @@ namespace dxvk {
if (unlikely(shader->GetInfo().majorVersion() < 2)) { if (unlikely(shader->GetInfo().majorVersion() < 2)) {
// SM 1 shaders don't define the texture type in the shader. // SM 1 shaders don't define the texture type in the shader.
// We always use spec constants for those. // We always use spec constants for those.
m_dirtyTextures = shaderSamplerMask & m_mismatchingTextureTypes; m_dirtyTextures |= shaderSamplerMask & m_mismatchingTextureTypes;
m_mismatchingTextureTypes &= ~shaderSamplerMask; m_mismatchingTextureTypes &= ~shaderSamplerMask;
return; return;
} }