SPV: RelaxedPrecision: use the result precision for texture sampling.
Fix #2298. The AST has two precisions, an operation precision and a result precision. Actual use of GLSL with mediump samplers wants the result precision, so pick that up instead of the operation precision.
This commit is contained in:
24
Test/spv.precisionTexture.frag
Normal file
24
Test/spv.precisionTexture.frag
Normal file
@@ -0,0 +1,24 @@
|
||||
#version 310 es
|
||||
precision mediump float;
|
||||
precision mediump int;
|
||||
layout(binding = 0) uniform mediump sampler2D texM;
|
||||
layout(binding = 1) uniform highp sampler2D texH;
|
||||
layout(binding = 0, rgba32f) uniform readonly mediump image2D imageM;
|
||||
layout(binding = 1, rgba32f) uniform readonly highp image2D imageH;
|
||||
|
||||
layout(location = 0) in highp vec4 vertex;
|
||||
layout(location = 1) flat in highp ivec2 coord;
|
||||
layout(location = 0) out vec4 fragColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 v;
|
||||
v = texture(texM, vertex.xy);
|
||||
v = texture(texH, vertex.xy);
|
||||
v = textureLod(texM, vertex.xy, vertex.z);
|
||||
v = textureLod(texH, vertex.xy, vertex.z);
|
||||
v = textureProj(texM, vertex.xyz);
|
||||
v = textureProj(texH, vertex.xyz);
|
||||
v = imageLoad(imageM, coord);
|
||||
v = imageLoad(imageH, coord);
|
||||
}
|
||||
Reference in New Issue
Block a user