SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
This commit is contained in:
parent
e43eb130d4
commit
7c1f84a92b
2 changed files with 14 additions and 6 deletions
|
@ -441,12 +441,14 @@ struct Regs {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class StencilAction : u32 {
|
enum class StencilAction : u32 {
|
||||||
Keep = 0,
|
Keep = 0,
|
||||||
Zero = 1,
|
Zero = 1,
|
||||||
Replace = 2,
|
Replace = 2,
|
||||||
Increment = 3,
|
Increment = 3,
|
||||||
Decrement = 4,
|
Decrement = 4,
|
||||||
Invert = 5
|
Invert = 5,
|
||||||
|
IncrementWrap = 6,
|
||||||
|
DecrementWrap = 7
|
||||||
};
|
};
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
|
@ -237,6 +237,12 @@ static u8 PerformStencilAction(Regs::StencilAction action, u8 old_stencil, u8 re
|
||||||
case Regs::StencilAction::Invert:
|
case Regs::StencilAction::Invert:
|
||||||
return ~old_stencil;
|
return ~old_stencil;
|
||||||
|
|
||||||
|
case Regs::StencilAction::IncrementWrap:
|
||||||
|
return old_stencil + 1;
|
||||||
|
|
||||||
|
case Regs::StencilAction::DecrementWrap:
|
||||||
|
return old_stencil - 1;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOG_CRITICAL(HW_GPU, "Unknown stencil action %x", (int)action);
|
LOG_CRITICAL(HW_GPU, "Unknown stencil action %x", (int)action);
|
||||||
UNIMPLEMENTED();
|
UNIMPLEMENTED();
|
||||||
|
|
Loading…
Reference in a new issue