First Commit
This commit is contained in:
36
externals/glslang/Test/spv.precise.tese
vendored
Normal file
36
externals/glslang/Test/spv.precise.tese
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#version 310 es
|
||||
#extension GL_EXT_tessellation_shader : require
|
||||
#extension GL_EXT_gpu_shader5 : require
|
||||
|
||||
layout(triangles, equal_spacing) in;
|
||||
|
||||
layout(location = 0) in highp vec2 in_te_position[];
|
||||
|
||||
layout(location = 0) out mediump vec4 in_f_color;
|
||||
|
||||
precise gl_Position;
|
||||
|
||||
void main(void) {
|
||||
highp vec2 pos = gl_TessCoord.x * in_te_position[0] +
|
||||
gl_TessCoord.y * in_te_position[1] +
|
||||
gl_TessCoord.z * in_te_position[2];
|
||||
|
||||
highp float f =
|
||||
sqrt(3.0 * min(gl_TessCoord.x, min(gl_TessCoord.y, gl_TessCoord.z))) *
|
||||
0.5 +
|
||||
0.5;
|
||||
in_f_color = vec4(gl_TessCoord * f, 1.0);
|
||||
|
||||
// Offset the position slightly, based on the parity of the bits in the float
|
||||
// representation.
|
||||
// This is done to detect possible small differences in edge vertex positions
|
||||
// between patches.
|
||||
uvec2 bits = floatBitsToUint(pos);
|
||||
uint numBits = 0u;
|
||||
for (uint i = 0u; i < 32u; i++)
|
||||
numBits +=
|
||||
((bits[0] << i) & 1u) + ((bits[1] << i) & 1u);
|
||||
pos += float(numBits & 1u) * 0.04;
|
||||
|
||||
gl_Position = vec4(pos, 0.0, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user