diff options
Diffstat (limited to 'src/video_core/rasterizer.cpp')
| -rw-r--r-- | src/video_core/rasterizer.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp index 025d4e484..219a1bbb7 100644 --- a/src/video_core/rasterizer.cpp +++ b/src/video_core/rasterizer.cpp | |||
| @@ -441,18 +441,38 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | |||
| 441 | bool pass = false; | 441 | bool pass = false; |
| 442 | 442 | ||
| 443 | switch (registers.output_merger.depth_test_func) { | 443 | switch (registers.output_merger.depth_test_func) { |
| 444 | case registers.output_merger.Never: | ||
| 445 | pass = false; | ||
| 446 | break; | ||
| 447 | |||
| 444 | case registers.output_merger.Always: | 448 | case registers.output_merger.Always: |
| 445 | pass = true; | 449 | pass = true; |
| 446 | break; | 450 | break; |
| 447 | 451 | ||
| 452 | case registers.output_merger.Equal: | ||
| 453 | pass = z == ref_z; | ||
| 454 | break; | ||
| 455 | |||
| 456 | case registers.output_merger.NotEqual: | ||
| 457 | pass = z != ref_z; | ||
| 458 | break; | ||
| 459 | |||
| 448 | case registers.output_merger.LessThan: | 460 | case registers.output_merger.LessThan: |
| 449 | pass = z < ref_z; | 461 | pass = z < ref_z; |
| 450 | break; | 462 | break; |
| 451 | 463 | ||
| 464 | case registers.output_merger.LessThanOrEqual: | ||
| 465 | pass = z <= ref_z; | ||
| 466 | break; | ||
| 467 | |||
| 452 | case registers.output_merger.GreaterThan: | 468 | case registers.output_merger.GreaterThan: |
| 453 | pass = z > ref_z; | 469 | pass = z > ref_z; |
| 454 | break; | 470 | break; |
| 455 | 471 | ||
| 472 | case registers.output_merger.GreaterThanOrEqual: | ||
| 473 | pass = z >= ref_z; | ||
| 474 | break; | ||
| 475 | |||
| 456 | default: | 476 | default: |
| 457 | LOG_ERROR(HW_GPU, "Unknown depth test function %x", registers.output_merger.depth_test_func.Value()); | 477 | LOG_ERROR(HW_GPU, "Unknown depth test function %x", registers.output_merger.depth_test_func.Value()); |
| 458 | break; | 478 | break; |