summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl/var_alloc.cpp
diff options
context:
space:
mode:
authorGravatar ameerj2021-05-30 22:44:28 -0400
committerGravatar ameerj2021-07-22 21:51:37 -0400
commite10366974edd7c75111d0bef16daf941db9e9a30 (patch)
treee7e986cc5f7184dba92ac2e6325ac3948111f08d /src/shader_recompiler/backend/glsl/var_alloc.cpp
parentHACK glsl: Write defaults to unused generic attributes (diff)
downloadyuzu-e10366974edd7c75111d0bef16daf941db9e9a30.tar.gz
yuzu-e10366974edd7c75111d0bef16daf941db9e9a30.tar.xz
yuzu-e10366974edd7c75111d0bef16daf941db9e9a30.zip
glsl: Implement precise fp variable allocation
Diffstat (limited to 'src/shader_recompiler/backend/glsl/var_alloc.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/var_alloc.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glsl/var_alloc.cpp b/src/shader_recompiler/backend/glsl/var_alloc.cpp
index 896457248..2ecdec7f2 100644
--- a/src/shader_recompiler/backend/glsl/var_alloc.cpp
+++ b/src/shader_recompiler/backend/glsl/var_alloc.cpp
@@ -43,6 +43,10 @@ std::string TypePrefix(GlslVarType type) {
43 return "u4_"; 43 return "u4_";
44 case GlslVarType::F32x4: 44 case GlslVarType::F32x4:
45 return "f4_"; 45 return "f4_";
46 case GlslVarType::PrecF32:
47 return "pf_";
48 case GlslVarType::PrecF64:
49 return "pd_";
46 case GlslVarType::Void: 50 case GlslVarType::Void:
47 return ""; 51 return "";
48 default: 52 default:
@@ -225,6 +229,10 @@ std::string VarAlloc::GetGlslType(GlslVarType type) const {
225 return "uvec4 "; 229 return "uvec4 ";
226 case GlslVarType::F32x4: 230 case GlslVarType::F32x4:
227 return "vec4 "; 231 return "vec4 ";
232 case GlslVarType::PrecF32:
233 return "precise float ";
234 case GlslVarType::PrecF64:
235 return "precise double ";
228 case GlslVarType::Void: 236 case GlslVarType::Void:
229 return ""; 237 return "";
230 default: 238 default:
@@ -262,6 +270,10 @@ VarAlloc::UseTracker& VarAlloc::GetUseTracker(GlslVarType type) {
262 return var_u32x4; 270 return var_u32x4;
263 case GlslVarType::F32x4: 271 case GlslVarType::F32x4:
264 return var_f32x4; 272 return var_f32x4;
273 case GlslVarType::PrecF32:
274 return var_precf32;
275 case GlslVarType::PrecF64:
276 return var_precf64;
265 default: 277 default:
266 throw NotImplementedException("Type {}", type); 278 throw NotImplementedException("Type {}", type);
267 } 279 }
@@ -297,6 +309,10 @@ const VarAlloc::UseTracker& VarAlloc::GetUseTracker(GlslVarType type) const {
297 return var_u32x4; 309 return var_u32x4;
298 case GlslVarType::F32x4: 310 case GlslVarType::F32x4:
299 return var_f32x4; 311 return var_f32x4;
312 case GlslVarType::PrecF32:
313 return var_precf32;
314 case GlslVarType::PrecF64:
315 return var_precf64;
300 default: 316 default:
301 throw NotImplementedException("Type {}", type); 317 throw NotImplementedException("Type {}", type);
302 } 318 }