mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	shader/other: Fix hardcoded value in S2R INVOCATION_INFO
Geometry shaders built from Nvidia's compiler check for bits[16:23] to be less than or equal to 0 with VSETP to default to a "safe" value of 0x8000'0000 (safe from hardware's perspective). To avoid hitting this path in the shader, return 0x00ff'0000 from S2R INVOCATION_INFO. This seems to be the maximum number of vertices a geometry shader can emit in a primitive.
This commit is contained in:
		@@ -83,7 +83,7 @@ u32 ShaderIR::DecodeOther(NodeBlock& bb, u32 pc) {
 | 
			
		||||
                return Operation(OperationCode::YNegate);
 | 
			
		||||
            case SystemVariable::InvocationInfo:
 | 
			
		||||
                LOG_WARNING(HW_GPU, "S2R instruction with InvocationInfo is incomplete");
 | 
			
		||||
                return Immediate(0U);
 | 
			
		||||
                return Immediate(0x00ff'0000U);
 | 
			
		||||
            case SystemVariable::WscaleFactorXY:
 | 
			
		||||
                UNIMPLEMENTED_MSG("S2R WscaleFactorXY is not implemented");
 | 
			
		||||
                return Immediate(0U);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user