summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/builtin_types.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2016-08-17 10:20:34 +0100
committerIan Romanick <ian.d.romanick@intel.com>2016-08-26 15:03:15 -0700
commitdc4f53b68308bbd79932470cf4613037f7e95fb7 (patch)
treeab86f908b5d9e32cd416c951a35a3d0ea811b984 /src/compiler/glsl/builtin_types.cpp
parent87fa462ffd6754144f89163a2692eff005beef9c (diff)
downloadexternal_mesa3d-dc4f53b68308bbd79932470cf4613037f7e95fb7.zip
external_mesa3d-dc4f53b68308bbd79932470cf4613037f7e95fb7.tar.gz
external_mesa3d-dc4f53b68308bbd79932470cf4613037f7e95fb7.tar.bz2
mesa: Add support for OES_texture_cube_map_array
This has a separate enable flag because this extension also requires OES_geometry_shader. It is possible that some drivers may support OpenGL ES 3.1 and ARB_texture_cube_map but not support OES_geometry_shader. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/compiler/glsl/builtin_types.cpp')
-rw-r--r--src/compiler/glsl/builtin_types.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/compiler/glsl/builtin_types.cpp b/src/compiler/glsl/builtin_types.cpp
index 5f208f8..d40f785 100644
--- a/src/compiler/glsl/builtin_types.cpp
+++ b/src/compiler/glsl/builtin_types.cpp
@@ -177,7 +177,7 @@ static const struct builtin_type_versions {
T(samplerCube, 110, 100)
T(sampler1DArray, 130, 999)
T(sampler2DArray, 130, 300)
- T(samplerCubeArray, 400, 999)
+ T(samplerCubeArray, 400, 320)
T(sampler2DRect, 140, 999)
T(samplerBuffer, 140, 320)
T(sampler2DMS, 150, 310)
@@ -189,7 +189,7 @@ static const struct builtin_type_versions {
T(isamplerCube, 130, 300)
T(isampler1DArray, 130, 999)
T(isampler2DArray, 130, 300)
- T(isamplerCubeArray, 400, 999)
+ T(isamplerCubeArray, 400, 320)
T(isampler2DRect, 140, 999)
T(isamplerBuffer, 140, 320)
T(isampler2DMS, 150, 310)
@@ -201,7 +201,7 @@ static const struct builtin_type_versions {
T(usamplerCube, 130, 300)
T(usampler1DArray, 130, 999)
T(usampler2DArray, 130, 300)
- T(usamplerCubeArray, 400, 999)
+ T(usamplerCubeArray, 400, 320)
T(usampler2DRect, 140, 999)
T(usamplerBuffer, 140, 320)
T(usampler2DMS, 150, 310)
@@ -212,7 +212,7 @@ static const struct builtin_type_versions {
T(samplerCubeShadow, 130, 300)
T(sampler1DArrayShadow, 130, 999)
T(sampler2DArrayShadow, 130, 300)
- T(samplerCubeArrayShadow, 400, 999)
+ T(samplerCubeArrayShadow, 400, 320)
T(sampler2DRectShadow, 140, 999)
T(struct_gl_DepthRangeParameters, 110, 100)
@@ -225,7 +225,7 @@ static const struct builtin_type_versions {
T(imageBuffer, 420, 320)
T(image1DArray, 420, 999)
T(image2DArray, 420, 310)
- T(imageCubeArray, 420, 999)
+ T(imageCubeArray, 420, 320)
T(image2DMS, 420, 999)
T(image2DMSArray, 420, 999)
T(iimage1D, 420, 999)
@@ -236,7 +236,7 @@ static const struct builtin_type_versions {
T(iimageBuffer, 420, 320)
T(iimage1DArray, 420, 999)
T(iimage2DArray, 420, 310)
- T(iimageCubeArray, 420, 999)
+ T(iimageCubeArray, 420, 320)
T(iimage2DMS, 420, 999)
T(iimage2DMSArray, 420, 999)
T(uimage1D, 420, 999)
@@ -247,7 +247,7 @@ static const struct builtin_type_versions {
T(uimageBuffer, 420, 320)
T(uimage1DArray, 420, 999)
T(uimage2DArray, 420, 310)
- T(uimageCubeArray, 420, 999)
+ T(uimageCubeArray, 420, 320)
T(uimage2DMS, 420, 999)
T(uimage2DMSArray, 420, 999)
@@ -298,7 +298,8 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
* by the version-based loop, but attempting to add them a second time
* is harmless.
*/
- if (state->ARB_texture_cube_map_array_enable) {
+ if (state->ARB_texture_cube_map_array_enable ||
+ state->OES_texture_cube_map_array_enable) {
add_type(symbols, glsl_type::samplerCubeArray_type);
add_type(symbols, glsl_type::samplerCubeArrayShadow_type);
add_type(symbols, glsl_type::isamplerCubeArray_type);
@@ -337,6 +338,13 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
add_type(symbols, glsl_type::sampler3D_type);
}
+ if (state->ARB_shader_image_load_store_enable ||
+ state->OES_texture_cube_map_array_enable) {
+ add_type(symbols, glsl_type::imageCubeArray_type);
+ add_type(symbols, glsl_type::iimageCubeArray_type);
+ add_type(symbols, glsl_type::uimageCubeArray_type);
+ }
+
if (state->ARB_shader_image_load_store_enable) {
add_type(symbols, glsl_type::image1D_type);
add_type(symbols, glsl_type::image2D_type);
@@ -346,7 +354,6 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
add_type(symbols, glsl_type::imageBuffer_type);
add_type(symbols, glsl_type::image1DArray_type);
add_type(symbols, glsl_type::image2DArray_type);
- add_type(symbols, glsl_type::imageCubeArray_type);
add_type(symbols, glsl_type::image2DMS_type);
add_type(symbols, glsl_type::image2DMSArray_type);
add_type(symbols, glsl_type::iimage1D_type);
@@ -357,7 +364,6 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
add_type(symbols, glsl_type::iimageBuffer_type);
add_type(symbols, glsl_type::iimage1DArray_type);
add_type(symbols, glsl_type::iimage2DArray_type);
- add_type(symbols, glsl_type::iimageCubeArray_type);
add_type(symbols, glsl_type::iimage2DMS_type);
add_type(symbols, glsl_type::iimage2DMSArray_type);
add_type(symbols, glsl_type::uimage1D_type);
@@ -368,7 +374,6 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
add_type(symbols, glsl_type::uimageBuffer_type);
add_type(symbols, glsl_type::uimage1DArray_type);
add_type(symbols, glsl_type::uimage2DArray_type);
- add_type(symbols, glsl_type::uimageCubeArray_type);
add_type(symbols, glsl_type::uimage2DMS_type);
add_type(symbols, glsl_type::uimage2DMSArray_type);
}