mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
435dd8028b
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);
|
|
}
|