Browse Source
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
pull/15/merge
bunnei
8 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
13 additions and
9 deletions
-
src/video_core/engines/maxwell_3d.h
-
src/video_core/renderer_opengl/gl_rasterizer.cpp
|
|
|
@ -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); |
|
|
|
} |
|
|
|
|
|
|
|
|