Browse Source

Add missing uintBitsToFloat to SetRegisterToHalfFloat

nce_cpp
Rodolfo Bogado 7 years ago
parent
commit
aa86cd851e
  1. 4
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

4
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@ -493,10 +493,10 @@ public:
// pack. I couldn't test this on hardware but it shouldn't really matter since most // pack. I couldn't test this on hardware but it shouldn't really matter since most
// of the time when a Mrg_* flag is used both components will be mirrored. That // of the time when a Mrg_* flag is used both components will be mirrored. That
// being said, it deserves a test. // being said, it deserves a test.
return "((" + GetRegisterAsInteger(reg, 0, false) +
return "uintBitsToFloat((" + GetRegisterAsInteger(reg, 0, false) +
" & 0xffff0000) | (packHalf2x16(" + value + ") & 0x0000ffff))"; " & 0xffff0000) | (packHalf2x16(" + value + ") & 0x0000ffff))";
case Tegra::Shader::HalfMerge::Mrg_H1: case Tegra::Shader::HalfMerge::Mrg_H1:
return "((" + GetRegisterAsInteger(reg, 0, false) +
return "uintBitsToFloat((" + GetRegisterAsInteger(reg, 0, false) +
" & 0x0000ffff) | (packHalf2x16(" + value + ") & 0xffff0000))"; " & 0x0000ffff) | (packHalf2x16(" + value + ") & 0xffff0000))";
default: default:
UNREACHABLE(); UNREACHABLE();

Loading…
Cancel
Save