diff options
author | Georg Lehmann <dadschoorse@gmail.com> | 2022-01-11 00:09:39 +0300 |
---|---|---|
committer | Joshie <joshua@froggi.es> | 2022-01-11 01:06:15 +0300 |
commit | f5744284eb0f38c0606a1dcb5f9f59deb5b610ab (patch) | |
tree | d893b085cf3c17e74ae4a42192fc75520afea734 | |
parent | b1a6cbad7f6f8c26efb450ffba8655b81f3e20ec (diff) |
[d3d9] Dirty FF vertex shader if any D3D9VertexDeclFlags change.
The vertex shader depends on all of these in some way.
-rw-r--r-- | src/d3d9/d3d9_device.cpp | 7 | ||||
-rw-r--r-- | src/d3d9/d3d9_vertex_declaration.h | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index 34a19dc7..0699d8f3 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -2722,11 +2722,8 @@ namespace dxvk { bool dirtyFFShader = decl == nullptr || m_state.vertexDecl == nullptr; if (!dirtyFFShader) - dirtyFFShader |= decl->TestFlag(D3D9VertexDeclFlag::HasPositionT) != m_state.vertexDecl->TestFlag(D3D9VertexDeclFlag::HasPositionT) - || decl->TestFlag(D3D9VertexDeclFlag::HasColor0) != m_state.vertexDecl->TestFlag(D3D9VertexDeclFlag::HasColor0) - || decl->TestFlag(D3D9VertexDeclFlag::HasColor1) != m_state.vertexDecl->TestFlag(D3D9VertexDeclFlag::HasColor1) - || decl->TestFlag(D3D9VertexDeclFlag::HasPointSize) != m_state.vertexDecl->TestFlag(D3D9VertexDeclFlag::HasPointSize) - || decl->GetTexcoordMask() != m_state.vertexDecl->GetTexcoordMask(); + dirtyFFShader |= decl->GetFlags() != m_state.vertexDecl->GetFlags() + || decl->GetTexcoordMask() != m_state.vertexDecl->GetTexcoordMask(); if (dirtyFFShader) m_flags.set(D3D9DeviceFlag::DirtyFFVertexShader); diff --git a/src/d3d9/d3d9_vertex_declaration.h b/src/d3d9/d3d9_vertex_declaration.h index fe519f2d..240aa6ed 100644 --- a/src/d3d9/d3d9_vertex_declaration.h +++ b/src/d3d9/d3d9_vertex_declaration.h @@ -7,7 +7,7 @@ namespace dxvk { - enum D3D9VertexDeclFlag { + enum class D3D9VertexDeclFlag { HasColor0, HasColor1, HasPositionT, @@ -58,6 +58,10 @@ namespace dxvk { return m_flags.test(flag); } + D3D9VertexDeclFlags GetFlags() const { + return m_flags; + } + uint32_t GetTexcoordMask() const { return m_texcoordMask; } |