summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2015-08-21 18:01:42 +0200
committerSubv <subv2112@gmail.com>2015-08-21 18:01:42 +0200
commit7c1f84a92b9727765a755c312e90b09b0cf6ed1d (patch)
treead6a2b0a93303caf6c6823a52a676931498b29ce
parentHWRasterizer: Implemented stencil op 1 (GL_ZERO) (diff)
downloadyuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar.gz
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar.bz2
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar.lz
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar.xz
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.tar.zst
yuzu-7c1f84a92b9727765a755c312e90b09b0cf6ed1d.zip
-rw-r--r--src/video_core/pica.h14
-rw-r--r--src/video_core/rasterizer.cpp6
2 files changed, 14 insertions, 6 deletions
diff --git a/src/video_core/pica.h b/src/video_core/pica.h
index a47dddd75..87cf705e7 100644
--- a/src/video_core/pica.h
+++ b/src/video_core/pica.h
@@ -441,12 +441,14 @@ struct Regs {
};
enum class StencilAction : u32 {
- Keep = 0,
- Zero = 1,
- Replace = 2,
- Increment = 3,
- Decrement = 4,
- Invert = 5
+ Keep = 0,
+ Zero = 1,
+ Replace = 2,
+ Increment = 3,
+ Decrement = 4,
+ Invert = 5,
+ IncrementWrap = 6,
+ DecrementWrap = 7
};
struct {
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp
index 25911e0a2..b6c0e1bff 100644
--- a/src/video_core/rasterizer.cpp
+++ b/src/video_core/rasterizer.cpp
@@ -237,6 +237,12 @@ static u8 PerformStencilAction(Regs::StencilAction action, u8 old_stencil, u8 re
case Regs::StencilAction::Invert:
return ~old_stencil;
+ case Regs::StencilAction::IncrementWrap:
+ return old_stencil + 1;
+
+ case Regs::StencilAction::DecrementWrap:
+ return old_stencil - 1;
+
default:
LOG_CRITICAL(HW_GPU, "Unknown stencil action %x", (int)action);
UNIMPLEMENTED();