glsl: Add remaining *sampler2DRect* texture functions.
authorEric Anholt <eric@anholt.net>
Fri, 13 Apr 2012 22:43:41 +0000 (15:43 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 16 Apr 2012 18:59:29 +0000 (11:59 -0700)
Fixes the new piglit texelFetch() tests on these.  Note that the rest
of the new functions are not tested (same as the non-2DRect versions
of most of them).

src/glsl/builtins/profiles/140.frag
src/glsl/builtins/profiles/140.vert
src/glsl/builtins/tools/texture_builtins.py

index 3eeecd1d72c2721bac098da24c3d5c1a3a491b31..5b2ed6d981d95aebe9c5d4967aa714ce310d96f6 100644 (file)
@@ -540,6 +540,12 @@ uvec4 texture(usampler2DArray sampler, vec3 P);
 float texture(sampler1DArrayShadow sampler, vec3 P);
 float texture(sampler2DArrayShadow sampler, vec4 P);
 
+ vec4 texture( sampler2DRect sampler, vec2 P);
+ivec4 texture(isampler2DRect sampler, vec2 P);
+uvec4 texture(usampler2DRect sampler, vec2 P);
+
+float texture(sampler2DRectShadow sampler, vec3 P);
+
 /* texture - bias variants */
  vec4 texture( sampler1D sampler, float P, float bias);
 ivec4 texture(isampler1D sampler, float P, float bias);
@@ -593,6 +599,15 @@ uvec4 textureProj(usampler3D sampler, vec4 P);
 float textureProj(sampler1DShadow sampler, vec4 P);
 float textureProj(sampler2DShadow sampler, vec4 P);
 
+ vec4 textureProj( sampler2DRect sampler, vec3 P);
+ivec4 textureProj(isampler2DRect sampler, vec3 P);
+uvec4 textureProj(usampler2DRect sampler, vec3 P);
+ vec4 textureProj( sampler2DRect sampler, vec4 P);
+ivec4 textureProj(isampler2DRect sampler, vec4 P);
+uvec4 textureProj(usampler2DRect sampler, vec4 P);
+
+float textureProj(sampler2DRectShadow sampler, vec4 P);
+
 /* textureProj - bias variants */
  vec4 textureProj( sampler1D sampler, vec2 P, float bias);
 ivec4 textureProj(isampler1D sampler, vec2 P, float bias);
@@ -658,6 +673,12 @@ uvec4 textureOffset(usampler2D sampler, vec2 P, ivec2 offset);
 ivec4 textureOffset(isampler3D sampler, vec3 P, ivec3 offset);
 uvec4 textureOffset(usampler3D sampler, vec3 P, ivec3 offset);
 
+ vec4 textureOffset( sampler2DRect sampler, vec2 P, ivec2 offset);
+ivec4 textureOffset(isampler2DRect sampler, vec2 P, ivec2 offset);
+uvec4 textureOffset(usampler2DRect sampler, vec2 P, ivec2 offset);
+
+float textureOffset(sampler2DRectShadow sampler, vec3 P, ivec2 offset);
+
 float textureOffset(sampler1DShadow sampler, vec3 P, int offset);
 float textureOffset(sampler2DShadow sampler, vec3 P, ivec2 offset);
 
@@ -710,6 +731,10 @@ uvec4 texelFetch(usampler2D sampler, ivec2 P, int lod);
 ivec4 texelFetch(isampler3D sampler, ivec3 P, int lod);
 uvec4 texelFetch(usampler3D sampler, ivec3 P, int lod);
 
+ vec4 texelFetch( sampler2DRect sampler, ivec2 P);
+ivec4 texelFetch(isampler2DRect sampler, ivec2 P);
+uvec4 texelFetch(usampler2DRect sampler, ivec2 P);
+
  vec4 texelFetch( sampler1DArray sampler, ivec2 P, int lod);
 ivec4 texelFetch(isampler1DArray sampler, ivec2 P, int lod);
 uvec4 texelFetch(usampler1DArray sampler, ivec2 P, int lod);
@@ -735,6 +760,10 @@ uvec4 texelFetchOffset(usampler2D sampler, ivec2 P, int lod, ivec2 offset);
 ivec4 texelFetchOffset(isampler3D sampler, ivec3 P, int lod, ivec3 offset);
 uvec4 texelFetchOffset(usampler3D sampler, ivec3 P, int lod, ivec3 offset);
 
+ vec4 texelFetchOffset( sampler2DRect sampler, ivec2 P, ivec2 offset);
+ivec4 texelFetchOffset(isampler2DRect sampler, ivec2 P, ivec2 offset);
+uvec4 texelFetchOffset(usampler2DRect sampler, ivec2 P, ivec2 offset);
+
  vec4 texelFetchOffset( sampler1DArray sampler, ivec2 P, int lod, int offset);
 ivec4 texelFetchOffset(isampler1DArray sampler, ivec2 P, int lod, int offset);
 uvec4 texelFetchOffset(usampler1DArray sampler, ivec2 P, int lod, int offset);
@@ -762,6 +791,15 @@ uvec4 textureProjOffset(usampler2D sampler, vec4 P, ivec2 offset);
 ivec4 textureProjOffset(isampler3D sampler, vec4 P, ivec3 offset);
 uvec4 textureProjOffset(usampler3D sampler, vec4 P, ivec3 offset);
 
+ vec4 textureProjOffset( sampler2DRect sampler, vec3 P, ivec2 offset);
+ivec4 textureProjOffset(isampler2DRect sampler, vec3 P, ivec2 offset);
+uvec4 textureProjOffset(usampler2DRect sampler, vec3 P, ivec2 offset);
+ vec4 textureProjOffset( sampler2DRect sampler, vec4 P, ivec2 offset);
+ivec4 textureProjOffset(isampler2DRect sampler, vec4 P, ivec2 offset);
+uvec4 textureProjOffset(usampler2DRect sampler, vec4 P, ivec2 offset);
+
+float textureProjOffset(sampler2DRectShadow sampler, vec4 P, ivec2 offset);
+
 float textureProjOffset(sampler1DShadow sampler, vec4 P, int offset);
 float textureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset);
 
@@ -874,6 +912,12 @@ uvec4 textureGrad(usampler3D sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 ivec4 textureGrad(isamplerCube sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 uvec4 textureGrad(usamplerCube sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 
+ vec4 textureGrad( sampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureGrad(isampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureGrad(usampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+
+float textureGrad(sampler2DRectShadow   sampler, vec3 P, vec2  dPdx, vec2  dPdy);
+
 float textureGrad(sampler1DShadow   sampler, vec3 P, float dPdx, float dPdy);
 float textureGrad(sampler2DShadow   sampler, vec3 P, vec2  dPdx, vec2  dPdy);
 float textureGrad(samplerCubeShadow sampler, vec4 P, vec3  dPdx, vec3  dPdy);
@@ -902,6 +946,12 @@ uvec4 textureGradOffset(usampler2D s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
 ivec4 textureGradOffset(isampler3D s, vec3 P, vec3 dx, vec3 dy, ivec3 offset);
 uvec4 textureGradOffset(usampler3D s, vec3 P, vec3 dx, vec3 dy, ivec3 offset);
 
+ vec4 textureGradOffset( sampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+ivec4 textureGradOffset(isampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+uvec4 textureGradOffset(usampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+
+float textureGradOffset(sampler2DRectShadow s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+
 float textureGradOffset(sampler1DShadow s, vec3 P, float dx, float dy, int off);
 float textureGradOffset(sampler2DShadow s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
 
@@ -935,6 +985,15 @@ uvec4 textureProjGrad(usampler2D sampler, vec4 P, vec2 dPdx, vec2 dPdy);
 ivec4 textureProjGrad(isampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy);
 uvec4 textureProjGrad(usampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy);
 
+ vec4 textureProjGrad( sampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureProjGrad(isampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureProjGrad(usampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+ vec4 textureProjGrad( sampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureProjGrad(isampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureProjGrad(usampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+
+float textureProjGrad(sampler2DRectShadow sampler, vec4 P, vec2  dPdx, vec2  dPdy);
+
 float textureProjGrad(sampler1DShadow sampler, vec4 P, float dPdx, float dPdy);
 float textureProjGrad(sampler2DShadow sampler, vec4 P, vec2  dPdx, vec2  dPdy);
 
@@ -953,6 +1012,15 @@ uvec4 textureProjGradOffset(usampler2D s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
 ivec4 textureProjGradOffset(isampler2D s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 uvec4 textureProjGradOffset(usampler2D s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 
+ vec4 textureProjGradOffset( sampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+ivec4 textureProjGradOffset(isampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+uvec4 textureProjGradOffset(usampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+ vec4 textureProjGradOffset( sampler2DRect s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
+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, 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);
index 1aab72cc0bbf75b1e395dcf520ca94d1bd9027da..ce4c62d7e4a1c1ad2a085ee75102467227f7a678 100644 (file)
@@ -540,6 +540,12 @@ uvec4 texture(usampler2DArray sampler, vec3 P);
 float texture(sampler1DArrayShadow sampler, vec3 P);
 float texture(sampler2DArrayShadow sampler, vec4 P);
 
+ vec4 texture( sampler2DRect sampler, vec2 P);
+ivec4 texture(isampler2DRect sampler, vec2 P);
+uvec4 texture(usampler2DRect sampler, vec2 P);
+
+float texture(sampler2DRectShadow sampler, vec3 P);
+
 /* textureProj */
  vec4 textureProj( sampler1D sampler, vec2 P);
 ivec4 textureProj(isampler1D sampler, vec2 P);
@@ -562,6 +568,15 @@ uvec4 textureProj(usampler3D sampler, vec4 P);
 float textureProj(sampler1DShadow sampler, vec4 P);
 float textureProj(sampler2DShadow sampler, vec4 P);
 
+ vec4 textureProj( sampler2DRect sampler, vec3 P);
+ivec4 textureProj(isampler2DRect sampler, vec3 P);
+uvec4 textureProj(usampler2DRect sampler, vec3 P);
+ vec4 textureProj( sampler2DRect sampler, vec4 P);
+ivec4 textureProj(isampler2DRect sampler, vec4 P);
+uvec4 textureProj(usampler2DRect sampler, vec4 P);
+
+float textureProj(sampler2DRectShadow sampler, vec4 P);
+
 /* textureLod */
  vec4 textureLod( sampler1D sampler, float P, float lod);
 ivec4 textureLod(isampler1D sampler, float P, float lod);
@@ -605,6 +620,12 @@ uvec4 textureOffset(usampler2D sampler, vec2 P, ivec2 offset);
 ivec4 textureOffset(isampler3D sampler, vec3 P, ivec3 offset);
 uvec4 textureOffset(usampler3D sampler, vec3 P, ivec3 offset);
 
+ vec4 textureOffset( sampler2DRect sampler, vec2 P, ivec2 offset);
+ivec4 textureOffset(isampler2DRect sampler, vec2 P, ivec2 offset);
+uvec4 textureOffset(usampler2DRect sampler, vec2 P, ivec2 offset);
+
+float textureOffset(sampler2DRectShadow sampler, vec3 P, ivec2 offset);
+
 float textureOffset(sampler1DShadow sampler, vec3 P, int offset);
 float textureOffset(sampler2DShadow sampler, vec3 P, ivec2 offset);
 
@@ -631,6 +652,10 @@ uvec4 texelFetch(usampler2D sampler, ivec2 P, int lod);
 ivec4 texelFetch(isampler3D sampler, ivec3 P, int lod);
 uvec4 texelFetch(usampler3D sampler, ivec3 P, int lod);
 
+ vec4 texelFetch( sampler2DRect sampler, ivec2 P);
+ivec4 texelFetch(isampler2DRect sampler, ivec2 P);
+uvec4 texelFetch(usampler2DRect sampler, ivec2 P);
+
  vec4 texelFetch( sampler1DArray sampler, ivec2 P, int lod);
 ivec4 texelFetch(isampler1DArray sampler, ivec2 P, int lod);
 uvec4 texelFetch(usampler1DArray sampler, ivec2 P, int lod);
@@ -656,6 +681,10 @@ uvec4 texelFetchOffset(usampler2D sampler, ivec2 P, int lod, ivec2 offset);
 ivec4 texelFetchOffset(isampler3D sampler, ivec3 P, int lod, ivec3 offset);
 uvec4 texelFetchOffset(usampler3D sampler, ivec3 P, int lod, ivec3 offset);
 
+ vec4 texelFetchOffset( sampler2DRect sampler, ivec2 P, ivec2 offset);
+ivec4 texelFetchOffset(isampler2DRect sampler, ivec2 P, ivec2 offset);
+uvec4 texelFetchOffset(usampler2DRect sampler, ivec2 P, ivec2 offset);
+
  vec4 texelFetchOffset( sampler1DArray sampler, ivec2 P, int lod, int offset);
 ivec4 texelFetchOffset(isampler1DArray sampler, ivec2 P, int lod, int offset);
 uvec4 texelFetchOffset(usampler1DArray sampler, ivec2 P, int lod, int offset);
@@ -683,6 +712,15 @@ uvec4 textureProjOffset(usampler2D sampler, vec4 P, ivec2 offset);
 ivec4 textureProjOffset(isampler3D sampler, vec4 P, ivec3 offset);
 uvec4 textureProjOffset(usampler3D sampler, vec4 P, ivec3 offset);
 
+ vec4 textureProjOffset( sampler2DRect sampler, vec3 P, ivec2 offset);
+ivec4 textureProjOffset(isampler2DRect sampler, vec3 P, ivec2 offset);
+uvec4 textureProjOffset(usampler2DRect sampler, vec3 P, ivec2 offset);
+ vec4 textureProjOffset( sampler2DRect sampler, vec4 P, ivec2 offset);
+ivec4 textureProjOffset(isampler2DRect sampler, vec4 P, ivec2 offset);
+uvec4 textureProjOffset(usampler2DRect sampler, vec4 P, ivec2 offset);
+
+float textureProjOffset(sampler2DRectShadow sampler, vec4 P, ivec2 offset);
+
 float textureProjOffset(sampler1DShadow sampler, vec4 P, int offset);
 float textureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset);
 
@@ -773,6 +811,12 @@ uvec4 textureGrad(usampler3D sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 ivec4 textureGrad(isamplerCube sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 uvec4 textureGrad(usamplerCube sampler, vec3 P, vec3 dPdx, vec3 dPdy);
 
+ vec4 textureGrad( sampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureGrad(isampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureGrad(usampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy);
+
+float textureGrad(sampler2DRectShadow   sampler, vec3 P, vec2  dPdx, vec2  dPdy);
+
 float textureGrad(sampler1DShadow   sampler, vec3 P, float dPdx, float dPdy);
 float textureGrad(sampler2DShadow   sampler, vec3 P, vec2  dPdx, vec2  dPdy);
 float textureGrad(samplerCubeShadow sampler, vec4 P, vec3  dPdx, vec3  dPdy);
@@ -801,6 +845,12 @@ uvec4 textureGradOffset(usampler2D s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
 ivec4 textureGradOffset(isampler3D s, vec3 P, vec3 dx, vec3 dy, ivec3 offset);
 uvec4 textureGradOffset(usampler3D s, vec3 P, vec3 dx, vec3 dy, ivec3 offset);
 
+ vec4 textureGradOffset( sampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+ivec4 textureGradOffset(isampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+uvec4 textureGradOffset(usampler2DRect s, vec2 P, vec2 dx, vec2 dy, ivec2 offset);
+
+float textureGradOffset(sampler2DRectShadow s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+
 float textureGradOffset(sampler1DShadow s, vec3 P, float dx, float dy, int off);
 float textureGradOffset(sampler2DShadow s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
 
@@ -834,6 +884,15 @@ uvec4 textureProjGrad(usampler2D sampler, vec4 P, vec2 dPdx, vec2 dPdy);
 ivec4 textureProjGrad(isampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy);
 uvec4 textureProjGrad(usampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy);
 
+ vec4 textureProjGrad( sampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureProjGrad(isampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureProjGrad(usampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy);
+ vec4 textureProjGrad( sampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+ivec4 textureProjGrad(isampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+uvec4 textureProjGrad(usampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy);
+
+float textureProjGrad(sampler2DRectShadow sampler, vec4 P, vec2  dPdx, vec2  dPdy);
+
 float textureProjGrad(sampler1DShadow sampler, vec4 P, float dPdx, float dPdy);
 float textureProjGrad(sampler2DShadow sampler, vec4 P, vec2  dPdx, vec2  dPdy);
 
@@ -852,6 +911,15 @@ uvec4 textureProjGradOffset(usampler2D s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
 ivec4 textureProjGradOffset(isampler2D s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 uvec4 textureProjGradOffset(usampler2D s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
 
+ vec4 textureProjGradOffset( sampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+ivec4 textureProjGradOffset(isampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+uvec4 textureProjGradOffset(usampler2DRect s, vec3 P, vec2 dx, vec2 dy, ivec2 off);
+ vec4 textureProjGradOffset( sampler2DRect s, vec4 P, vec2 dx, vec2 dy, ivec2 off);
+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);
+
  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);
index 3d957e272d3233c7fec61c6093d5e25dbcb5c335..84a144e6adc765175ce5086d8c91af47fa3f7429 100755 (executable)
@@ -177,6 +177,8 @@ def generate_texture_functions(fs):
     generate_sigs("", "tex", "CubeShadow", Single);
     generate_sigs("", "tex", "1DArrayShadow", Single);
     generate_sigs("", "tex", "2DArrayShadow", Single);
+    generate_fiu_sigs("tex", "2DRect")
+    generate_sigs("", "tex", "2DRectShadow", Single);
 
     generate_fiu_sigs("txb", "1D")
     generate_fiu_sigs("txb", "2D")
@@ -199,6 +201,9 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("tex", "3D", Proj)
     generate_sigs("", "tex", "1DShadow", Proj | Single, 1);
     generate_sigs("", "tex", "2DShadow", Proj | Single);
+    generate_fiu_sigs("tex", "2DRect", Proj)
+    generate_fiu_sigs("tex", "2DRect", Proj, 1)
+    generate_sigs("", "tex", "2DRectShadow", Proj | Single);
 
     generate_fiu_sigs("txb", "1D", Proj)
     generate_fiu_sigs("txb", "1D", Proj, 2)
@@ -236,6 +241,8 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("tex", "1D", Offset)
     generate_fiu_sigs("tex", "2D", Offset)
     generate_fiu_sigs("tex", "3D", Offset)
+    generate_fiu_sigs("tex", "2DRect", Offset)
+    generate_sigs("", "tex", "2DRectShadow", Offset | Single);
     generate_fiu_sigs("tex", "1DArray", Offset)
     generate_fiu_sigs("tex", "2DArray", Offset)
     generate_sigs("", "tex", "1DShadow", Offset | Single, 1);
@@ -256,6 +263,7 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txf", "1D")
     generate_fiu_sigs("txf", "2D")
     generate_fiu_sigs("txf", "3D")
+    generate_fiu_sigs("txf", "2DRect")
     generate_fiu_sigs("txf", "1DArray")
     generate_fiu_sigs("txf", "2DArray")
     generate_fiu_sigs("txf", "Buffer")
@@ -265,6 +273,7 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txf", "1D", Offset)
     generate_fiu_sigs("txf", "2D", Offset)
     generate_fiu_sigs("txf", "3D", Offset)
+    generate_fiu_sigs("txf", "2DRect", Offset)
     generate_fiu_sigs("txf", "1DArray", Offset)
     generate_fiu_sigs("txf", "2DArray", Offset)
     end_function(fs, "texelFetchOffset")
@@ -275,6 +284,9 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("tex", "2D", Proj | Offset)
     generate_fiu_sigs("tex", "2D", Proj | Offset, 1)
     generate_fiu_sigs("tex", "3D", Proj | Offset)
+    generate_fiu_sigs("tex", "2DRect", Proj | Offset)
+    generate_fiu_sigs("tex", "2DRect", Proj | Offset, 1)
+    generate_sigs("", "tex", "2DRectShadow", Proj | Offset | Single);
     generate_sigs("", "tex", "1DShadow", Proj | Offset | Single, 1);
     generate_sigs("", "tex", "2DShadow", Proj | Offset | Single);
 
@@ -314,6 +326,8 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txd", "Cube")
     generate_fiu_sigs("txd", "1DArray")
     generate_fiu_sigs("txd", "2DArray")
+    generate_fiu_sigs("txd", "2DRect")
+    generate_sigs("", "txd", "2DRectShadow", Single);
     generate_sigs("", "txd", "1DShadow", Single, 1);
     generate_sigs("", "txd", "2DShadow", Single);
     generate_sigs("", "txd", "CubeShadow", Single);
@@ -325,6 +339,8 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txd", "1D", Offset)
     generate_fiu_sigs("txd", "2D", Offset)
     generate_fiu_sigs("txd", "3D", Offset)
+    generate_fiu_sigs("txd", "2DRect", Offset)
+    generate_sigs("", "txd", "2DRectShadow", Offset | Single);
     generate_fiu_sigs("txd", "1DArray", Offset)
     generate_fiu_sigs("txd", "2DArray", Offset)
     generate_sigs("", "txd", "1DShadow", Offset | Single, 1);
@@ -339,6 +355,9 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txd", "2D", Proj)
     generate_fiu_sigs("txd", "2D", Proj, 1)
     generate_fiu_sigs("txd", "3D", Proj)
+    generate_fiu_sigs("txd", "2DRect", Proj)
+    generate_fiu_sigs("txd", "2DRect", Proj, 1)
+    generate_sigs("", "txd", "2DRectShadow", Proj | Single);
     generate_sigs("", "txd", "1DShadow", Proj | Single, 1);
     generate_sigs("", "txd", "2DShadow", Proj | Single);
     end_function(fs, "textureProjGrad")
@@ -349,6 +368,9 @@ def generate_texture_functions(fs):
     generate_fiu_sigs("txd", "2D", Proj | Offset)
     generate_fiu_sigs("txd", "2D", Proj | Offset, 1)
     generate_fiu_sigs("txd", "3D", Proj | Offset)
+    generate_fiu_sigs("txd", "2DRect", Proj | Offset)
+    generate_fiu_sigs("txd", "2DRect", Proj | Offset, 1)
+    generate_sigs("", "txd", "2DRectShadow", Proj | Offset | Single);
     generate_sigs("", "txd", "1DShadow", Proj | Offset | Single, 1);
     generate_sigs("", "txd", "2DShadow", Proj | Offset | Single);
     end_function(fs, "textureProjGradOffset")