Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/doitsujin/dxvk.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Lehmann <dadschoorse@gmail.com>2022-01-11 00:09:39 +0300
committerJoshie <joshua@froggi.es>2022-01-11 01:06:15 +0300
commitf5744284eb0f38c0606a1dcb5f9f59deb5b610ab (patch)
treed893b085cf3c17e74ae4a42192fc75520afea734
parentb1a6cbad7f6f8c26efb450ffba8655b81f3e20ec (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.cpp7
-rw-r--r--src/d3d9/d3d9_vertex_declaration.h6
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;
}