1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +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); 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)) if (unlikely(texturesToUpload != 0))
UploadManagedTextures(texturesToUpload); UploadManagedTextures(texturesToUpload);
const uint32_t texturesToGen = m_activeTexturesToGen & usedSamplerMask; const uint32_t texturesToGen = m_activeTexturesToGen & usedTextureMask;
if (unlikely(texturesToGen != 0)) if (unlikely(texturesToGen != 0))
GenerateTextureMips(texturesToGen); GenerateTextureMips(texturesToGen);
@ -5940,7 +5941,7 @@ namespace dxvk {
if (m_flags.test(D3D9DeviceFlag::DirtyViewportScissor)) if (m_flags.test(D3D9DeviceFlag::DirtyViewportScissor))
BindViewportAndScissor(); BindViewportAndScissor();
const uint32_t activeDirtySamplers = m_dirtySamplerStates & usedSamplerMask; const uint32_t activeDirtySamplers = m_dirtySamplerStates & usedTextureMask;
if (activeDirtySamplers) if (activeDirtySamplers)
UndirtySamplers(activeDirtySamplers); UndirtySamplers(activeDirtySamplers);
@ -6034,7 +6035,7 @@ namespace dxvk {
UpdateFixedFunctionPS(); UpdateFixedFunctionPS();
} }
const uint32_t depthTextureMask = m_depthTextures & usedSamplerMask; const uint32_t depthTextureMask = m_depthTextures & usedTextureMask;
if (depthTextureMask != m_lastSamplerDepthMode) if (depthTextureMask != m_lastSamplerDepthMode)
UpdateSamplerDepthModeSpecConstant(depthTextureMask); UpdateSamplerDepthModeSpecConstant(depthTextureMask);