SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
This commit is contained in:
parent
e43eb130d4
commit
7c1f84a92b
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
|
|
Reference in New Issue