Merge pull request #611 from Subv/enabled_depth_test

GPU: Don't try to parse the depth test function if the depth test is disabled and use only the least significant 3 bits in the depth test func
master
bunnei 2018-07-02 23:47:11 +07:00 committed by GitHub
commit ddb767f1b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 9 deletions

@ -281,14 +281,14 @@ public:
};
enum class ComparisonOp : u32 {
Never = 0x200,
Less = 0x201,
Equal = 0x202,
LessEqual = 0x203,
Greater = 0x204,
NotEqual = 0x205,
GreaterEqual = 0x206,
Always = 0x207,
Never = 0,
Less = 1,
Equal = 2,
LessEqual = 3,
Greater = 4,
NotEqual = 5,
GreaterEqual = 6,
Always = 7,
};
struct Cull {
@ -475,7 +475,7 @@ public:
INSERT_PADDING_WORDS(0x8);
ComparisonOp depth_test_func;
BitField<0, 3, ComparisonOp> depth_test_func;
INSERT_PADDING_WORDS(0xB);

@ -735,6 +735,10 @@ void RasterizerOpenGL::SyncDepthTestState() {
state.depth.test_enabled = regs.depth_test_enable != 0;
state.depth.write_mask = regs.depth_write_enabled ? GL_TRUE : GL_FALSE;
if (!state.depth.test_enabled)
return;
state.depth.test_func = MaxwellToGL::ComparisonOp(regs.depth_test_func);
}