glsl/builtins: Use ivec for texel offsets in textureProjGradOffset.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 16 Apr 2012 20:37:20 +0000 (13:37 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 17 Apr 2012 18:27:51 +0000 (11:27 -0700)
The GLSL 1.30 -> 4.10 specs all erroneously say "vec2" for a few
overloads of textureProjGradOffset, while most overloads and all other
texturing functions use ivec types.

The GLSL 4.20 specification corrects these to "ivec2", but doesn't
mention this as being a conscious change in behavior.  Nor does the
ARB_shading_language_420pack extension.  So presumably it was a typo.

At any rate, our builtin functions all use ivec already, so the fact
that these prototypes use plain vecs will only lead to applications
dying in a fire when trying to use them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/glsl/builtins/profiles/130.frag
src/glsl/builtins/profiles/130.vert
src/glsl/builtins/profiles/140.vert

index bb330324d74638d37291ebcf06af0c67448ecee4..0dca40a62bb01c1c77748a02bfbc42ee5e3c58ed 100644 (file)
@@ -945,7 +945,7 @@ ivec4 textureProjGradOffset(isampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 uvec4 textureProjGradOffset(usampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 
 float textureProjGradOffset(sampler1DShadow s, vec4 P, float dx, float dy, int o);
-float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, vec2 o);
+float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, ivec2 o);
 
 /*
  * The following texture functions are deprecated:
index 618ecf29f6458d26d9882caece0639472775d024..635062e9723949bbd3205fed363036175e9040a5 100644 (file)
@@ -846,7 +846,7 @@ ivec4 textureProjGradOffset(isampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 uvec4 textureProjGradOffset(usampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 
 float textureProjGradOffset(sampler1DShadow s, vec4 P, float dx, float dy, int o);
-float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, vec2 o);
+float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, ivec2 o);
 
 /*
  * The following texture functions are deprecated:
index ce4c62d7e4a1c1ad2a085ee75102467227f7a678..6d9777f9108c00dbdfb57de4b3cb1c40c5af32e8 100644 (file)
@@ -918,14 +918,14 @@ uvec4 textureProjGradOffset(usampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 of
 ivec4 textureProjGradOffset(isampler2DRect s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 uvec4 textureProjGradOffset(usampler2DRect s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 
-float textureProjGradOffset(sampler2DRectShadow s, vec4 P, vec2 dx, vec2 dy, vec2 o);
+float textureProjGradOffset(sampler2DRectShadow s, vec4 P, vec2 dx, vec2 dy, ivec2 o);
 
  vec4 textureProjGradOffset( sampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 ivec4 textureProjGradOffset(isampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 uvec4 textureProjGradOffset(usampler3D s, vec4 P, vec3 dx, vec3 dy, ivec3 off);
 
 float textureProjGradOffset(sampler1DShadow s, vec4 P, float dx, float dy, int o);
-float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, vec2 o);
+float textureProjGradOffset(sampler2DShadow s, vec4 P, vec2 dx, vec2 dy, ivec2 o);
 
 /*
  * The following texture functions are deprecated: