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

[d3d9] Fix unbinding textures

Closes: #2236
This commit is contained in:
Joshua Ashton 2021-08-16 15:33:49 +01:00
parent a75cf2f39d
commit b09b912797
No known key found for this signature in database
GPG Key ID: C85A08669126BE8D

View File

@ -5918,13 +5918,14 @@ namespace dxvk {
FlushBuffer(vbo);
}
const uint32_t usedSamplerMask = m_activeTextures & (m_psShaderMasks.samplerMask | m_vsShaderMasks.samplerMask);
const uint32_t usedSamplerMask = m_psShaderMasks.samplerMask | m_vsShaderMasks.samplerMask;
const uint32_t usedTextureMask = m_activeTextures & usedSamplerMask;
const uint32_t texturesToUpload = m_activeTexturesToUpload & usedSamplerMask;
const uint32_t texturesToUpload = m_activeTexturesToUpload & usedTextureMask;
if (unlikely(texturesToUpload != 0))
UploadManagedTextures(texturesToUpload);
const uint32_t texturesToGen = m_activeTexturesToGen & usedSamplerMask;
const uint32_t texturesToGen = m_activeTexturesToGen & usedTextureMask;
if (unlikely(texturesToGen != 0))
GenerateTextureMips(texturesToGen);
@ -5940,7 +5941,7 @@ namespace dxvk {
if (m_flags.test(D3D9DeviceFlag::DirtyViewportScissor))
BindViewportAndScissor();
const uint32_t activeDirtySamplers = m_dirtySamplerStates & usedSamplerMask;
const uint32_t activeDirtySamplers = m_dirtySamplerStates & usedTextureMask;
if (activeDirtySamplers)
UndirtySamplers(activeDirtySamplers);
@ -6034,7 +6035,7 @@ namespace dxvk {
UpdateFixedFunctionPS();
}
const uint32_t depthTextureMask = m_depthTextures & usedSamplerMask;
const uint32_t depthTextureMask = m_depthTextures & usedTextureMask;
if (depthTextureMask != m_lastSamplerDepthMode)
UpdateSamplerDepthModeSpecConstant(depthTextureMask);