1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-14 04:29:15 +01:00

[d3d9] Mark texture dirty on SetLod

This commit is contained in:
Georg Lehmann 2021-08-06 22:34:22 +02:00 committed by Joshie
parent 26516dc904
commit 64c4eea922
3 changed files with 9 additions and 4 deletions

View File

@ -5830,8 +5830,13 @@ namespace dxvk {
m_dirtyTextures = 0;
}
void D3D9DeviceEx::MarkSamplersDirty() {
m_dirtySamplerStates = 0x001fffff; // 21 bits.
void D3D9DeviceEx::MarkTextureBindingDirty(IDirect3DBaseTexture9* texture) {
D3D9DeviceLock lock = LockDevice();
for (uint32_t i = 0; i < m_state.textures.size(); i++) {
if (m_state.textures[i] == texture)
m_dirtyTextures |= 1u << i;
}
}

View File

@ -842,7 +842,7 @@ namespace dxvk {
void UndirtyTextures();
void MarkSamplersDirty();
void MarkTextureBindingDirty(IDirect3DBaseTexture9* texture);
D3D9DrawInfo GenerateDrawInfo(
D3DPRIMITIVETYPE PrimitiveType,

View File

@ -60,7 +60,7 @@ namespace dxvk {
m_texture.CreateSampleView(LODNew);
if (this->GetPrivateRefCount() > 0)
this->m_parent->MarkSamplersDirty();
this->m_parent->MarkTextureBindingDirty(this);
return oldLod;
}