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

[d3d9] Fix sampler slot correction not respecting dmap texture

This commit is contained in:
Robin Kertels 2025-02-21 12:09:03 +01:00 committed by Philip Rebohle
parent 0691a7fc46
commit f7d56886c5

View File

@ -6415,12 +6415,15 @@ namespace dxvk {
void D3D9DeviceEx::UpdateTextureTypeMismatchesForTexture(uint32_t stateSampler) {
uint32_t shaderTextureIndex;
const D3D9CommonShader* shader;
if (unlikely(stateSampler > caps::MaxTexturesPS + 1)) {
if (likely(stateSampler <= caps::MaxTexturesPS)) {
shader = GetCommonShader(m_state.pixelShader);
shaderTextureIndex = stateSampler;
} else if (unlikely(stateSampler >= caps::MaxTexturesPS + 1)) {
shader = GetCommonShader(m_state.vertexShader);
shaderTextureIndex = stateSampler - caps::MaxTexturesPS - 1;
} else {
shader = GetCommonShader(m_state.pixelShader);
shaderTextureIndex = stateSampler;
// Do not type check the fixed function displacement map texture.
return;
}
if (unlikely(shader == nullptr || shader->GetInfo().majorVersion() < 2 || m_d3d9Options.forceSamplerTypeSpecConstants)) {