gl_shader_decompiler: Let OpenGL interpret floats.

- Accuracy is lost in translation to string, e.g. with NaN.
- Needed for Super Mario Odyssey.
This commit is contained in:
bunnei 2018-08-08 01:27:12 -04:00
parent 4fa3511a63
commit e542356d0c
2 changed files with 6 additions and 11 deletions

View file

@ -254,20 +254,15 @@ union Instruction {
BitField<56, 1, u64> invert_b;
} lop32i;
float GetImm20_19() const {
float result{};
u32 GetImm20_19() const {
u32 imm{static_cast<u32>(imm20_19)};
imm <<= 12;
imm |= negate_imm ? 0x80000000 : 0;
std::memcpy(&result, &imm, sizeof(imm));
return result;
return imm;
}
float GetImm20_32() const {
float result{};
s32 imm{static_cast<s32>(imm20_32)};
std::memcpy(&result, &imm, sizeof(imm));
return result;
u32 GetImm20_32() const {
return static_cast<u32>(imm20_32);
}
s32 GetSignedImm20_20() const {