Просмотр исходного кода

emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers

ameerj 4 лет назад
Родитель
Сommit
640fc1418b
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp

+ 2 - 2
src/shader_recompiler/backend/glsl/emit_glsl_floating_point.cpp

@@ -125,11 +125,11 @@ void EmitFPNeg16([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] IR::Inst& i
 }
 }
 
 
 void EmitFPNeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
 void EmitFPNeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
-    ctx.AddF32("{}=-({});", inst, value);
+    ctx.AddF32("{}=0.f-({});", inst, value);
 }
 }
 
 
 void EmitFPNeg64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
 void EmitFPNeg64(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
-    ctx.AddF64("{}=-({});", inst, value);
+    ctx.AddF64("{}=double(0.)-({});", inst, value);
 }
 }
 
 
 void EmitFPSin(EmitContext& ctx, IR::Inst& inst, std::string_view value) {
 void EmitFPSin(EmitContext& ctx, IR::Inst& inst, std::string_view value) {