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:
parent
0691a7fc46
commit
f7d56886c5
@ -6415,12 +6415,15 @@ namespace dxvk {
|
|||||||
void D3D9DeviceEx::UpdateTextureTypeMismatchesForTexture(uint32_t stateSampler) {
|
void D3D9DeviceEx::UpdateTextureTypeMismatchesForTexture(uint32_t stateSampler) {
|
||||||
uint32_t shaderTextureIndex;
|
uint32_t shaderTextureIndex;
|
||||||
const D3D9CommonShader* shader;
|
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);
|
shader = GetCommonShader(m_state.vertexShader);
|
||||||
shaderTextureIndex = stateSampler - caps::MaxTexturesPS - 1;
|
shaderTextureIndex = stateSampler - caps::MaxTexturesPS - 1;
|
||||||
} else {
|
} else {
|
||||||
shader = GetCommonShader(m_state.pixelShader);
|
// Do not type check the fixed function displacement map texture.
|
||||||
shaderTextureIndex = stateSampler;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(shader == nullptr || shader->GetInfo().majorVersion() < 2 || m_d3d9Options.forceSamplerTypeSpecConstants)) {
|
if (unlikely(shader == nullptr || shader->GetInfo().majorVersion() < 2 || m_d3d9Options.forceSamplerTypeSpecConstants)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user