glsl/builtins: Fix ARB_texture_cube_map_array built-in availability.

This patch adds texture() for isamplerCubeArray and usamplerCubeArray,
which were entirely missing.

It also makes texture() with a LOD bias fragment shader specific.  The
main GLSL specification explicitly says that texturing with LOD bias
should not be allowed for vertex shaders.

Affects Piglit's ARB_texture_cube_map_array/compiler/tex_bias-01.vert.
which tries to use bias in a vertex shader.  Currently, it expects this
to pass (so this patch regresses the test), but I've sent a patch to
reverse the expected behavior (so this patch would fix the updated test):
http://lists.freedesktop.org/archives/piglit/2013-June/006123.html

NOTE: This is a candidate for stable branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Kenneth Graunke 2013-06-28 13:46:44 -07:00
parent 4c859901ce
commit 15ca0ca1b6
2 changed files with 8 additions and 1 deletions

View File

@ -0,0 +1,6 @@
#version 130
#extension GL_ARB_texture_cube_map_array : enable
vec4 texture( samplerCubeArray sampler, vec4 coord, float bias);
ivec4 texture(isamplerCubeArray sampler, vec4 coord, float bias);
uvec4 texture(usamplerCubeArray sampler, vec4 coord, float bias);

View File

@ -7,7 +7,8 @@ ivec3 textureSize(usamplerCubeArray sampler, int lod);
ivec3 textureSize(samplerCubeArrayShadow sampler, int lod);
vec4 texture( samplerCubeArray sampler, vec4 coord);
vec4 texture( samplerCubeArray sampler, vec4 coord, float bias);
ivec4 texture(isamplerCubeArray sampler, vec4 coord);
uvec4 texture(usamplerCubeArray sampler, vec4 coord);
float texture( samplerCubeArrayShadow sampler, vec4 P, float compare);
vec4 textureGrad( samplerCubeArray sampler, vec4 P, vec3 dPdx, vec3 dPdy);