Commit output of texture_builtins.py and refresh builtin_function.cpp.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 8 Jun 2010 23:29:17 +0000 (16:29 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 9 Jun 2010 18:14:58 +0000 (11:14 -0700)
14 files changed:
builtin_function.cpp
builtins/110/textures [new file with mode: 0644]
builtins/110_fs/textures [new file with mode: 0644]
builtins/130/texelFetch [new file with mode: 0644]
builtins/130/texture [new file with mode: 0644]
builtins/130/textureGrad [new file with mode: 0644]
builtins/130/textureLod [new file with mode: 0644]
builtins/130/textureProj [new file with mode: 0644]
builtins/130/textureProjGrad [new file with mode: 0644]
builtins/130/textureProjLod [new file with mode: 0644]
builtins/130_fs/texture [new file with mode: 0644]
builtins/130_fs/textureProj [new file with mode: 0644]
builtins/ARB_texture_rectangle/textures [new file with mode: 0644]
builtins/EXT_texture_array/textures [new file with mode: 0644]

index 5bb0007e6dad2a6c6b0fe51bce66c8c04eaae078..7a6457cc95e3691c2d96648696b1bfe66b915d24 100644 (file)
@@ -43,7 +43,7 @@ read_builtins(_mesa_glsl_parse_state *st, exec_list *instructions,
    }
 }
 
-/* Version 110 builtins */
+/* 110 builtins */
 
 static const char *builtins_110_abs = {
    "((function abs\n"
@@ -1797,6 +1797,222 @@ static const char *builtins_110_tan = {
    "))\n"
 };
 
+static const char *builtins_110_textures = {
+   "((function texture1D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture1DLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture1DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture1DProjLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   "(function texture2DLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DProjLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3DLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3DProjLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function textureCube\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function textureCubeLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DProjLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DProjLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
+   "\n"
+   "))\n"
+};
+
 static const char *functions_for_110 [] = {
    builtins_110_abs,
    builtins_110_all,
@@ -1838,9 +2054,132 @@ static const char *functions_for_110 [] = {
    builtins_110_sqrt,
    builtins_110_step,
    builtins_110_tan,
+   builtins_110_textures,
+};
+
+/* 110_fs builtins */
+
+static const char *builtins_110_fs_textures = {
+   "((function texture1D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture1DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture3DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function textureCube\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DShadow sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2D\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DShadow sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
+   "\n"
+   "))\n"
 };
 
-/* Version 110_vs builtins */
+static const char *functions_for_110_fs [] = {
+   builtins_110_fs_textures,
+};
+
+/* 110_vs builtins */
 
 static const char *builtins_110_vs_ftransform = {
    "((function ftransform\n"
@@ -1856,7 +2195,7 @@ static const char *functions_for_110_vs [] = {
    builtins_110_vs_ftransform,
 };
 
-/* Version 130 builtins */
+/* 130 builtins */
 
 static const char *builtins_130_equal = {
    "((function equal\n"
@@ -2099,30 +2438,1276 @@ static const char *builtins_130_sign = {
    "\n"
 };
 
-static const char *functions_for_130 [] = {
-   builtins_130_equal,
-   builtins_130_greaterThan,
-   builtins_130_greaterThanEqual,
-   builtins_130_lessThan,
-   builtins_130_lessThanEqual,
-   builtins_130_notEqual,
-   builtins_130_sign,
+static const char *builtins_130_texelFetch = {
+   "((function texelFetch\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) int P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) int P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) int P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1DArray sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1DArray sampler)\n"
+   "       (declare (in) ivec2 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2DArray sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2DArray sampler)\n"
+   "       (declare (in) ivec3 P) \n"
+   "       (declare (in) int lod) )\n"
+   "     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
+   "\n"
+   "))\n"
 };
 
-void
-_mesa_glsl_initialize_functions(exec_list *instructions,
-                               struct _mesa_glsl_parse_state *state)
-{
-   if (state->language_version >= 110)
-      read_builtins(state, instructions, functions_for_110,
-                    sizeof(functions_for_110) / sizeof(const char *));
-
-   if (state->language_version >= 110 && state->target == vertex_shader)
-      read_builtins(state, instructions, functions_for_110_vs,
-                    sizeof(functions_for_110_vs) / sizeof(const char *));
+static const char *builtins_130_texture = {
+   "((function texture\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) float P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) float P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isamplerCube sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usamplerCube sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   "))\n"
+};
 
-   if (state->language_version >= 130)
-      read_builtins(state, instructions, functions_for_130,
-                    sizeof(functions_for_130) / sizeof(const char *));
+static const char *builtins_130_textureGrad = {
+   "((function textureGrad\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   ")\n"
+   ")\n"
+};
+
+static const char *builtins_130_textureLod = {
+   "((function textureLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *builtins_130_textureProj = {
+   "((function textureProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *builtins_130_textureProjGrad = {
+   "((function textureLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float dPdx) \n"
+   "       (declare (in) float dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec2 dPdx) \n"
+   "       (declare (in) vec2 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) vec3 dPdx) \n"
+   "       (declare (in) vec3 dPdy) )\n"
+   "     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *builtins_130_textureProjLod = {
+   "((function textureLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *functions_for_130 [] = {
+   builtins_130_equal,
+   builtins_130_greaterThan,
+   builtins_130_greaterThanEqual,
+   builtins_130_lessThan,
+   builtins_130_lessThanEqual,
+   builtins_130_notEqual,
+   builtins_130_sign,
+   builtins_130_texelFetch,
+   builtins_130_texture,
+   builtins_130_textureGrad,
+   builtins_130_textureLod,
+   builtins_130_textureProj,
+   builtins_130_textureProjGrad,
+   builtins_130_textureProjLod,
+};
+
+/* 130_fs builtins */
+
+static const char *builtins_130_fs_texture = {
+   "((function texture\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) float P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) samplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usamplerCube sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *builtins_130_fs_textureProj = {
+   "((function textureProj\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler1D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler2D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature ivec4\n"
+   "     (parameters\n"
+   "       (declare (in) isampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "   (signature uvec4\n"
+   "     (parameters\n"
+   "       (declare (in) usampler3D sampler)\n"
+   "       (declare (in) vec4 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *functions_for_130_fs [] = {
+   builtins_130_fs_texture,
+   builtins_130_fs_textureProj,
+};
+
+/* ARB_texture_rectangle builtins */
+
+static const char *builtins_ARB_texture_rectangle_textures = {
+   "((function texture2DRect\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DRect sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DRect\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DRectShadow sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *functions_for_ARB_texture_rectangle [] = {
+   builtins_ARB_texture_rectangle_textures,
+};
+
+/* EXT_texture_array builtins */
+
+static const char *builtins_EXT_texture_array_textures = {
+   "((function texture1DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture1DArrayLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DArrayLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArrayShadow sampler)\n"
+   "       (declare (in) vec3 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DArrayLod\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArrayShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float lod) )\n"
+   "     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow2DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArrayShadow sampler)\n"
+   "       (declare (in) vec4 P) )\n"
+   "     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *functions_for_EXT_texture_array [] = {
+   builtins_EXT_texture_array_textures,
+};
+
+/* EXT_texture_array_fs builtins */
+
+static const char *builtins_EXT_texture_array_fs_textures = {
+   "((function texture1DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArray sampler)\n"
+   "       (declare (in) vec2 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function texture2DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler2DArray sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
+   "\n"
+   ")\n"
+   " (function shadow1DArray\n"
+   "   (signature vec4\n"
+   "     (parameters\n"
+   "       (declare (in) sampler1DArrayShadow sampler)\n"
+   "       (declare (in) vec3 P) \n"
+   "       (declare (in) float bias) )\n"
+   "     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
+   "\n"
+   "))\n"
+};
+
+static const char *functions_for_EXT_texture_array_fs [] = {
+   builtins_EXT_texture_array_fs_textures,
+};
+
+void
+_mesa_glsl_initialize_functions(exec_list *instructions,
+                               struct _mesa_glsl_parse_state *state)
+{
+   if (state->language_version >= 110)
+      read_builtins(state, instructions,
+                    functions_for_110,
+                    sizeof(functions_for_110) / sizeof(const char *));
+
+   if (state->target == fragment_shader && state->language_version >= 110)
+      read_builtins(state, instructions,
+                    functions_for_110_fs,
+                    sizeof(functions_for_110_fs) / sizeof(const char *));
+
+   if (state->target == vertex_shader && state->language_version >= 110)
+      read_builtins(state, instructions,
+                    functions_for_110_vs,
+                    sizeof(functions_for_110_vs) / sizeof(const char *));
+
+   if (state->language_version >= 130)
+      read_builtins(state, instructions,
+                    functions_for_130,
+                    sizeof(functions_for_130) / sizeof(const char *));
+
+   if (state->target == fragment_shader && state->language_version >= 130)
+      read_builtins(state, instructions,
+                    functions_for_130_fs,
+                    sizeof(functions_for_130_fs) / sizeof(const char *));
+
+   if (state->ARB_texture_rectangle_enable)
+      read_builtins(state, instructions,
+                    functions_for_ARB_texture_rectangle,
+                    sizeof(functions_for_ARB_texture_rectangle) / sizeof(const char *));
+
+   if (state->EXT_texture_array_enable)
+      read_builtins(state, instructions,
+                    functions_for_EXT_texture_array,
+                    sizeof(functions_for_EXT_texture_array) / sizeof(const char *));
+
+   if (state->target == fragment_shader && state->EXT_texture_array_enable)
+      read_builtins(state, instructions,
+                    functions_for_EXT_texture_array_fs,
+                    sizeof(functions_for_EXT_texture_array_fs) / sizeof(const char *));
 
 }
diff --git a/builtins/110/textures b/builtins/110/textures
new file mode 100644 (file)
index 0000000..c81b7e8
--- /dev/null
@@ -0,0 +1,213 @@
+((function texture1D
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function texture1DLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function texture1DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+)
+ (function texture1DProjLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+)
+ (function texture2D
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+(function texture2DLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function texture2DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+)
+ (function texture2DProjLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+)
+ (function texture3D
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function texture3DLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function texture3DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+)
+ (function texture3DProjLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+)
+ (function textureCube
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function textureCubeLod
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function shadow1D
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))
+
+)
+ (function shadow1DLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))
+
+)
+ (function shadow1DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))
+
+)
+ (function shadow1DProjLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))
+
+)
+ (function shadow2D
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))
+
+)
+ (function shadow2DLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))
+
+)
+ (function shadow2DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))
+
+)
+ (function shadow2DProjLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))
+
+))
diff --git a/builtins/110_fs/textures b/builtins/110_fs/textures
new file mode 100644 (file)
index 0000000..38f3787
--- /dev/null
@@ -0,0 +1,113 @@
+((function texture1D
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+)
+ (function texture1DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+)
+ (function texture2D
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+)
+ (function texture2DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+)
+ (function texture3D
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+)
+ (function texture3DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+)
+ (function textureCube
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+)
+ (function shadow1D
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))
+
+)
+ (function shadow1DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DShadow sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))
+
+)
+ (function shadow2D
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))
+
+)
+ (function shadow2DProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DShadow sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))
+
+))
diff --git a/builtins/130/texelFetch b/builtins/130/texelFetch
new file mode 100644 (file)
index 0000000..d51ce65
--- /dev/null
@@ -0,0 +1,107 @@
+((function texelFetch
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) int P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) int P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) int P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1DArray sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1DArray sampler)
+       (declare (in) ivec2 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2DArray sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2DArray sampler)
+       (declare (in) ivec3 P) 
+       (declare (in) int lod) )
+     ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))
+
+))
diff --git a/builtins/130/texture b/builtins/130/texture
new file mode 100644 (file)
index 0000000..b170b58
--- /dev/null
@@ -0,0 +1,110 @@
+((function texture
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) float P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) float P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isamplerCube sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usamplerCube sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1DArray sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1DArray sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2DArray sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2DArray sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+))
diff --git a/builtins/130/textureGrad b/builtins/130/textureGrad
new file mode 100644 (file)
index 0000000..0ef428c
--- /dev/null
@@ -0,0 +1,147 @@
+((function textureGrad
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+)
+)
diff --git a/builtins/130/textureLod b/builtins/130/textureLod
new file mode 100644 (file)
index 0000000..7d7059d
--- /dev/null
@@ -0,0 +1,128 @@
+((function textureLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+))
diff --git a/builtins/130/textureProj b/builtins/130/textureProj
new file mode 100644 (file)
index 0000000..40ea1c2
--- /dev/null
@@ -0,0 +1,92 @@
+((function textureProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))
+
+))
diff --git a/builtins/130/textureProjGrad b/builtins/130/textureProjGrad
new file mode 100644 (file)
index 0000000..a0142c5
--- /dev/null
@@ -0,0 +1,122 @@
+((function textureLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float dPdx) 
+       (declare (in) float dPdy) )
+     ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec2 dPdx) 
+       (declare (in) vec2 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) vec3 dPdx) 
+       (declare (in) vec3 dPdy) )
+     ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))
+
+))
diff --git a/builtins/130/textureProjLod b/builtins/130/textureProjLod
new file mode 100644 (file)
index 0000000..9f4ce1b
--- /dev/null
@@ -0,0 +1,107 @@
+((function textureLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))
+
+))
diff --git a/builtins/130_fs/texture b/builtins/130_fs/texture
new file mode 100644 (file)
index 0000000..0de9813
--- /dev/null
@@ -0,0 +1,128 @@
+((function texture
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) float P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) samplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usamplerCube sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))
+
+))
diff --git a/builtins/130_fs/textureProj b/builtins/130_fs/textureProj
new file mode 100644 (file)
index 0000000..b1d8f0a
--- /dev/null
@@ -0,0 +1,107 @@
+((function textureProj
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler1D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler2D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature vec4
+     (parameters
+       (declare (in) sampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature ivec4
+     (parameters
+       (declare (in) isampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+   (signature uvec4
+     (parameters
+       (declare (in) usampler3D sampler)
+       (declare (in) vec4 P) 
+       (declare (in) float bias) )
+     ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))
+
+))
diff --git a/builtins/ARB_texture_rectangle/textures b/builtins/ARB_texture_rectangle/textures
new file mode 100644 (file)
index 0000000..161d8c4
--- /dev/null
@@ -0,0 +1,16 @@
+((function texture2DRect
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DRect sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function shadow2DRect
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DRectShadow sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))
+
+))
diff --git a/builtins/EXT_texture_array/textures b/builtins/EXT_texture_array/textures
new file mode 100644 (file)
index 0000000..8a91f90
--- /dev/null
@@ -0,0 +1,59 @@
+((function texture1DArray
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function texture1DArrayLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArray sampler)
+       (declare (in) vec2 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function texture2DArray
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))
+
+)
+ (function texture2DArrayLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArray sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))
+
+)
+ (function shadow1DArray
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArrayShadow sampler)
+       (declare (in) vec3 P) )
+     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))
+
+)
+ (function shadow1DArrayLod
+   (signature vec4
+     (parameters
+       (declare (in) sampler1DArrayShadow sampler)
+       (declare (in) vec3 P) 
+       (declare (in) float lod) )
+     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))
+
+)
+ (function shadow2DArray
+   (signature vec4
+     (parameters
+       (declare (in) sampler2DArrayShadow sampler)
+       (declare (in) vec4 P) )
+     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))
+
+))