mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	gl_shader_decompiler: Move color output to EXIT instruction.
This commit is contained in:
		
							parent
							
								
									3dd3cdeafd
								
							
						
					
					
						commit
						37fa9a15cd
					
				| @ -221,14 +221,11 @@ private: | ||||
| 
 | ||||
|     /// Generates code representing a temporary (GPR) register.
 | ||||
|     std::string GetRegister(const Register& reg, unsigned elem = 0) { | ||||
|         if (reg == Register::ZeroIndex) | ||||
|         if (reg == Register::ZeroIndex) { | ||||
|             return "0"; | ||||
|         if (stage == Maxwell3D::Regs::ShaderStage::Fragment && reg < 4) { | ||||
|             // GPRs 0-3 are output color for the fragment shader
 | ||||
|             return std::string{"color."} + "rgba"[(reg + elem) & 3]; | ||||
|         } | ||||
| 
 | ||||
|         return *declr_register.insert("register_" + std::to_string(reg + elem)).first; | ||||
|         return *declr_register.insert("register_" + std::to_string(reg.GetSwizzledIndex(elem))) | ||||
|                     .first; | ||||
|     } | ||||
| 
 | ||||
|     /// Generates code representing a uniform (C buffer) register.
 | ||||
| @ -628,6 +625,15 @@ private: | ||||
|             case OpCode::Id::EXIT: { | ||||
|                 ASSERT_MSG(instr.pred.pred_index == static_cast<u64>(Pred::UnusedIndex), | ||||
|                            "Predicated exits not implemented"); | ||||
| 
 | ||||
|                 // Final color output is currently hardcoded to GPR0-3 for fragment shaders
 | ||||
|                 if (stage == Maxwell3D::Regs::ShaderStage::Fragment) { | ||||
|                     shader.AddLine("color.r = " + GetRegister(0) + ";"); | ||||
|                     shader.AddLine("color.g = " + GetRegister(1) + ";"); | ||||
|                     shader.AddLine("color.b = " + GetRegister(2) + ";"); | ||||
|                     shader.AddLine("color.a = " + GetRegister(3) + ";"); | ||||
|                 } | ||||
| 
 | ||||
|                 shader.AddLine("return true;"); | ||||
|                 offset = PROGRAM_END - 1; | ||||
|                 break; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei