mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #976 from bunnei/shader-imm
gl_shader_decompiler: Let OpenGL interpret floats.
This commit is contained in:
		
						commit
						cf917a5e93
					
				| @ -254,20 +254,15 @@ union Instruction { | |||||||
|             BitField<56, 1, u64> invert_b; |             BitField<56, 1, u64> invert_b; | ||||||
|         } lop32i; |         } lop32i; | ||||||
| 
 | 
 | ||||||
|         float GetImm20_19() const { |         u32 GetImm20_19() const { | ||||||
|             float result{}; |  | ||||||
|             u32 imm{static_cast<u32>(imm20_19)}; |             u32 imm{static_cast<u32>(imm20_19)}; | ||||||
|             imm <<= 12; |             imm <<= 12; | ||||||
|             imm |= negate_imm ? 0x80000000 : 0; |             imm |= negate_imm ? 0x80000000 : 0; | ||||||
|             std::memcpy(&result, &imm, sizeof(imm)); |             return imm; | ||||||
|             return result; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         float GetImm20_32() const { |         u32 GetImm20_32() const { | ||||||
|             float result{}; |             return static_cast<u32>(imm20_32); | ||||||
|             s32 imm{static_cast<s32>(imm20_32)}; |  | ||||||
|             std::memcpy(&result, &imm, sizeof(imm)); |  | ||||||
|             return result; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         s32 GetSignedImm20_20() const { |         s32 GetSignedImm20_20() const { | ||||||
|  | |||||||
| @ -602,12 +602,12 @@ private: | |||||||
| 
 | 
 | ||||||
|     /// Generates code representing a 19-bit immediate value
 |     /// Generates code representing a 19-bit immediate value
 | ||||||
|     static std::string GetImmediate19(const Instruction& instr) { |     static std::string GetImmediate19(const Instruction& instr) { | ||||||
|         return std::to_string(instr.alu.GetImm20_19()); |         return fmt::format("uintBitsToFloat({})", instr.alu.GetImm20_19()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// Generates code representing a 32-bit immediate value
 |     /// Generates code representing a 32-bit immediate value
 | ||||||
|     static std::string GetImmediate32(const Instruction& instr) { |     static std::string GetImmediate32(const Instruction& instr) { | ||||||
|         return std::to_string(instr.alu.GetImm20_32()); |         return fmt::format("uintBitsToFloat({})", instr.alu.GetImm20_32()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// Generates code representing a texture sampler.
 |     /// Generates code representing a texture sampler.
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei