mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	SWRasterizer: Implemented stencil ops 6 and 7.
IncrementWrap and DecrementWrap, verified with hwtests.
This commit is contained in:
		@@ -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
	
	Block a user