mirror of
https://github.com/RPCS3/glslang.git
synced 2025-02-14 15:50:26 +00:00
![John Kessenich](/assets/img/avatar_default.png)
This simplifies and enforces use of precision in many more places, to help avoid accidental loss of RelaxedPrecision through intermediate operations. Known fixes are: - ?: - function return values with mis-matched precision - precision of function return values when a copy was needed to fix types
28 lines
568 B
GLSL
28 lines
568 B
GLSL
#version 310 es
|
|
|
|
precision mediump float;
|
|
|
|
void fooConst(const in float f, const in highp float g) { }
|
|
|
|
void foo(in float f, in highp float g) { }
|
|
|
|
float retM ( float x) { return x; }
|
|
highp float retH (highp float x) { return x; }
|
|
float retHM(highp float x) { return x; }
|
|
highp float retMH( float x) { return x; }
|
|
|
|
void main()
|
|
{
|
|
float aM, bM;
|
|
highp float aH, bH;
|
|
fooConst(aM, bM); // must copy bM
|
|
fooConst(aH, bH); // must copy aH
|
|
foo(aM, bM);
|
|
foo(aH, bH);
|
|
|
|
retM(aM);
|
|
retH(aH);
|
|
retHM(aH);
|
|
retMH(aM);
|
|
}
|