Implement GL_OES_texture_cube_map_array.
authorJohn Kessenich <cepheus@frii.com>
Sun, 16 Aug 2015 20:21:20 +0000 (14:21 -0600)
committerJohn Kessenich <cepheus@frii.com>
Sun, 16 Aug 2015 20:21:20 +0000 (14:21 -0600)
Test/310.frag
Test/310.vert
Test/baseResults/310.frag.out
Test/baseResults/310.vert.out
glslang/MachineIndependent/Initialize.cpp
glslang/MachineIndependent/Scan.cpp
glslang/MachineIndependent/Versions.cpp

index 83aa8b0..f12d75f 100644 (file)
@@ -222,3 +222,32 @@ void pfoo()
     textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);\r
     textureGatherOffsets(sArray[0], vec2(0.1), offsets);       // ERROR, offset not constant\r
 }\r
+\r
+#extension GL_EXT_texture_cube_map_array : enable\r
+\r
+precision highp imageCubeArray        ;\r
+precision highp iimageCubeArray       ;\r
+precision highp uimageCubeArray       ;\r
+\r
+precision highp samplerCubeArray      ;\r
+precision highp samplerCubeArrayShadow;\r
+precision highp isamplerCubeArray     ;\r
+precision highp usamplerCubeArray     ;\r
+\r
+uniform writeonly imageCubeArray  CA1;\r
+uniform writeonly iimageCubeArray CA2;\r
+uniform writeonly uimageCubeArray CA3;\r
+\r
+#ifdef GL_EXT_texture_cube_map_array\r
+uniform samplerCubeArray          CA4;\r
+uniform samplerCubeArrayShadow    CA5;\r
+uniform isamplerCubeArray         CA6;\r
+uniform usamplerCubeArray         CA7;\r
+#endif\r
+\r
+void CAT()\r
+{\r
+    highp vec4 b4 = texture(CA4, vec4(0.5), 0.24);\r
+    highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26);\r
+    highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27);\r
+}\r
index 0c37fe0..53f5461 100644 (file)
@@ -231,3 +231,77 @@ void bufferT()
     highp ivec4 f2 = texelFetch(bufSamp2, s2);\r
     highp uvec4 f3 = texelFetch(bufSamp3, s3);\r
 }\r
+\r
+uniform writeonly imageCubeArray  badCA1;  // ERROR, reserved\r
+uniform writeonly iimageCubeArray badCA2;  // ERROR, reserved\r
+uniform writeonly uimageCubeArray badCA3;  // ERROR, reserved\r
+\r
+uniform samplerCubeArray          badCA4;  // ERROR, reserved\r
+uniform samplerCubeArrayShadow    badCA5;  // ERROR, reserved\r
+uniform isamplerCubeArray         badCA6;  // ERROR, reserved\r
+uniform usamplerCubeArray         badCA7;  // ERROR, reserved\r
+\r
+#extension GL_OES_texture_cube_map_array : enable\r
+\r
+uniform writeonly imageCubeArray  noPreCA1;   // ERROR, no default precision\r
+uniform writeonly iimageCubeArray noPreCA2;   // ERROR, no default precision\r
+uniform writeonly uimageCubeArray noPreCA3;   // ERROR, no default precision\r
+\r
+uniform samplerCubeArray          noPreCA4;   // ERROR, no default precision\r
+uniform samplerCubeArrayShadow    noPreCA5;   // ERROR, no default precision\r
+uniform isamplerCubeArray         noPreCA6;   // ERROR, no default precision\r
+uniform usamplerCubeArray         noPreCA7;   // ERROR, no default precision\r
+\r
+precision highp imageCubeArray        ;\r
+precision highp iimageCubeArray       ;\r
+precision highp uimageCubeArray       ;\r
+\r
+precision highp samplerCubeArray      ;\r
+precision highp samplerCubeArrayShadow;\r
+precision highp isamplerCubeArray     ;\r
+precision highp usamplerCubeArray     ;\r
+\r
+uniform writeonly imageCubeArray  CA1;\r
+uniform writeonly iimageCubeArray CA2;\r
+uniform writeonly uimageCubeArray CA3;\r
+\r
+#ifdef GL_OES_texture_cube_map_array\r
+uniform samplerCubeArray          CA4;\r
+uniform samplerCubeArrayShadow    CA5;\r
+uniform isamplerCubeArray         CA6;\r
+uniform usamplerCubeArray         CA7;\r
+#endif\r
+\r
+void CAT()\r
+{\r
+    highp ivec3 s4 = textureSize(CA4, 1);\r
+    highp ivec3 s5 = textureSize(CA5, 1);\r
+    highp ivec3 s6 = textureSize(CA6, 1);\r
+    highp ivec3 s7 = textureSize(CA7, 1);\r
+    \r
+    highp vec4 t4 = texture(CA4, vec4(0.5));\r
+    highp float t5 = texture(CA5, vec4(0.5), 3.0);\r
+    highp ivec4 t6 = texture(CA6, vec4(0.5));\r
+    highp uvec4 t7 = texture(CA7, vec4(0.5));\r
+\r
+    highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24);\r
+    highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26);\r
+    highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27);\r
+\r
+    highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2));\r
+    highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2));\r
+    highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2));\r
+\r
+    highp vec4 gath4 = textureGather(CA4, vec4(0.5));\r
+    highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2);\r
+    highp ivec4 gath6 = textureGather(CA6, vec4(0.5));\r
+    highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1);\r
+    highp uvec4 gath7 = textureGather(CA7, vec4(0.5));\r
+    highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0);\r
+\r
+    highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5);\r
+\r
+    highp ivec3 s1 = imageSize(CA1);\r
+    highp ivec3 s2 = imageSize(CA2);\r
+    highp ivec3 s3 = imageSize(CA3);\r
+}\r
index c74b9f0..b33a044 100644 (file)
@@ -75,6 +75,7 @@ ERROR: 62 compilation errors.  No code generated.
 \r
 Shader version: 310\r
 Requested GL_EXT_shader_io_blocks\r
+Requested GL_EXT_texture_cube_map_array\r
 Requested GL_OES_geometry_shader\r
 Requested GL_OES_gpu_shader5\r
 Requested GL_OES_shader_io_blocks\r
@@ -443,6 +444,45 @@ ERROR: node is still EOpNull!
 0:223          0.100000\r
 0:223          0.100000\r
 0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)\r
+0:248  Function Definition: CAT( (global void)\r
+0:248    Function Parameters: \r
+0:250    Sequence\r
+0:250      Sequence\r
+0:250        move second child to first child (temp highp 4-component vector of float)\r
+0:250          'b4' (temp highp 4-component vector of float)\r
+0:250          Function Call: texture(sAC1;vf4;f1; (global highp 4-component vector of float)\r
+0:250            'CA4' (uniform highp samplerCubeArray)\r
+0:250            Constant:\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250            Constant:\r
+0:250              0.240000\r
+0:251      Sequence\r
+0:251        move second child to first child (temp highp 4-component vector of int)\r
+0:251          'b6' (temp highp 4-component vector of int)\r
+0:251          Function Call: texture(isAC1;vf4;f1; (global mediump 4-component vector of int)\r
+0:251            'CA6' (uniform highp isamplerCubeArray)\r
+0:251            Constant:\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251            Constant:\r
+0:251              0.260000\r
+0:252      Sequence\r
+0:252        move second child to first child (temp highp 4-component vector of uint)\r
+0:252          'b7' (temp highp 4-component vector of uint)\r
+0:252          Function Call: texture(usAC1;vf4;f1; (global mediump 4-component vector of uint)\r
+0:252            'CA7' (uniform highp usamplerCubeArray)\r
+0:252            Constant:\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252            Constant:\r
+0:252              0.270000\r
 0:?   Linker Objects\r
 0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)\r
 0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)\r
@@ -509,6 +549,13 @@ ERROR: node is still EOpNull!
 0:?       0 (const int)\r
 0:?       0 (const int)\r
 0:?       0 (const int)\r
+0:?     'CA1' (writeonly uniform highp imageCubeArray)\r
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)\r
+0:?     'CA4' (uniform highp samplerCubeArray)\r
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:?     'CA6' (uniform highp isamplerCubeArray)\r
+0:?     'CA7' (uniform highp usamplerCubeArray)\r
 \r
 \r
 Linked fragment stage:\r
@@ -517,6 +564,7 @@ ERROR: Linking fragment stage: when more than one fragment shader output, all mu
 \r
 Shader version: 310\r
 Requested GL_EXT_shader_io_blocks\r
+Requested GL_EXT_texture_cube_map_array\r
 Requested GL_OES_geometry_shader\r
 Requested GL_OES_gpu_shader5\r
 Requested GL_OES_shader_io_blocks\r
@@ -885,6 +933,45 @@ ERROR: node is still EOpNull!
 0:223          0.100000\r
 0:223          0.100000\r
 0:223        'offsets' (uniform 4-element array of mediump 2-component vector of int)\r
+0:248  Function Definition: CAT( (global void)\r
+0:248    Function Parameters: \r
+0:250    Sequence\r
+0:250      Sequence\r
+0:250        move second child to first child (temp highp 4-component vector of float)\r
+0:250          'b4' (temp highp 4-component vector of float)\r
+0:250          Function Call: texture(sAC1;vf4;f1; (global highp 4-component vector of float)\r
+0:250            'CA4' (uniform highp samplerCubeArray)\r
+0:250            Constant:\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250              0.500000\r
+0:250            Constant:\r
+0:250              0.240000\r
+0:251      Sequence\r
+0:251        move second child to first child (temp highp 4-component vector of int)\r
+0:251          'b6' (temp highp 4-component vector of int)\r
+0:251          Function Call: texture(isAC1;vf4;f1; (global mediump 4-component vector of int)\r
+0:251            'CA6' (uniform highp isamplerCubeArray)\r
+0:251            Constant:\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251              0.500000\r
+0:251            Constant:\r
+0:251              0.260000\r
+0:252      Sequence\r
+0:252        move second child to first child (temp highp 4-component vector of uint)\r
+0:252          'b7' (temp highp 4-component vector of uint)\r
+0:252          Function Call: texture(usAC1;vf4;f1; (global mediump 4-component vector of uint)\r
+0:252            'CA7' (uniform highp usamplerCubeArray)\r
+0:252            Constant:\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252              0.500000\r
+0:252            Constant:\r
+0:252              0.270000\r
 0:?   Linker Objects\r
 0:?     'gl_FragCoord' (smooth in mediump 4-component vector of float)\r
 0:?     'v3' (layout(location=2 ) smooth in mediump 3-component vector of float)\r
@@ -951,4 +1038,11 @@ ERROR: node is still EOpNull!
 0:?       0 (const int)\r
 0:?       0 (const int)\r
 0:?       0 (const int)\r
+0:?     'CA1' (writeonly uniform highp imageCubeArray)\r
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)\r
+0:?     'CA4' (uniform highp samplerCubeArray)\r
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:?     'CA6' (uniform highp isamplerCubeArray)\r
+0:?     'CA7' (uniform highp usamplerCubeArray)\r
 \r
index bc1e17e..dee5d71 100644 (file)
@@ -58,7 +58,28 @@ ERROR: 0:197: 'sampler/image' : type requires declaration of default precision q
 ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier \r
 ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier \r
 ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier \r
-ERROR: 54 compilation errors.  No code generated.\r
+ERROR: 0:235: 'imageCubeArray' : Reserved word. \r
+ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:236: 'iimageCubeArray' : Reserved word. \r
+ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:237: 'uimageCubeArray' : Reserved word. \r
+ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:239: 'samplerCubeArray' : Reserved word. \r
+ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word. \r
+ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:241: 'isamplerCubeArray' : Reserved word. \r
+ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:242: 'usamplerCubeArray' : Reserved word. \r
+ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier \r
+ERROR: 75 compilation errors.  No code generated.\r
 \r
 \r
 Shader version: 310\r
@@ -66,6 +87,7 @@ Requested GL_EXT_texture_buffer
 Requested GL_OES_gpu_shader5\r
 Requested GL_OES_shader_io_blocks\r
 Requested GL_OES_texture_buffer\r
+Requested GL_OES_texture_cube_map_array\r
 ERROR: node is still EOpNull!\r
 0:12  Function Definition: main( (global void)\r
 0:12    Function Parameters: \r
@@ -435,6 +457,262 @@ ERROR: node is still EOpNull!
 0:232          Function Call: texelFetch(usB1;i1; (global highp 4-component vector of uint)\r
 0:232            'bufSamp3' (uniform highp usamplerBuffer)\r
 0:232            's3' (temp highp int)\r
+0:275  Function Definition: CAT( (global void)\r
+0:275    Function Parameters: \r
+0:277    Sequence\r
+0:277      Sequence\r
+0:277        move second child to first child (temp highp 3-component vector of int)\r
+0:277          's4' (temp highp 3-component vector of int)\r
+0:277          Function Call: textureSize(sAC1;i1; (global highp 3-component vector of int)\r
+0:277            'CA4' (uniform highp samplerCubeArray)\r
+0:277            Constant:\r
+0:277              1 (const int)\r
+0:278      Sequence\r
+0:278        move second child to first child (temp highp 3-component vector of int)\r
+0:278          's5' (temp highp 3-component vector of int)\r
+0:278          Function Call: textureSize(sASC1;i1; (global highp 3-component vector of int)\r
+0:278            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:278            Constant:\r
+0:278              1 (const int)\r
+0:279      Sequence\r
+0:279        move second child to first child (temp highp 3-component vector of int)\r
+0:279          's6' (temp highp 3-component vector of int)\r
+0:279          Function Call: textureSize(isAC1;i1; (global highp 3-component vector of int)\r
+0:279            'CA6' (uniform highp isamplerCubeArray)\r
+0:279            Constant:\r
+0:279              1 (const int)\r
+0:280      Sequence\r
+0:280        move second child to first child (temp highp 3-component vector of int)\r
+0:280          's7' (temp highp 3-component vector of int)\r
+0:280          Function Call: textureSize(usAC1;i1; (global highp 3-component vector of int)\r
+0:280            'CA7' (uniform highp usamplerCubeArray)\r
+0:280            Constant:\r
+0:280              1 (const int)\r
+0:282      Sequence\r
+0:282        move second child to first child (temp highp 4-component vector of float)\r
+0:282          't4' (temp highp 4-component vector of float)\r
+0:282          Function Call: texture(sAC1;vf4; (global highp 4-component vector of float)\r
+0:282            'CA4' (uniform highp samplerCubeArray)\r
+0:282            Constant:\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:283      Sequence\r
+0:283        move second child to first child (temp highp float)\r
+0:283          't5' (temp highp float)\r
+0:283          Function Call: texture(sASC1;vf4;f1; (global highp float)\r
+0:283            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:283            Constant:\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283            Constant:\r
+0:283              3.000000\r
+0:284      Sequence\r
+0:284        move second child to first child (temp highp 4-component vector of int)\r
+0:284          't6' (temp highp 4-component vector of int)\r
+0:284          Function Call: texture(isAC1;vf4; (global highp 4-component vector of int)\r
+0:284            'CA6' (uniform highp isamplerCubeArray)\r
+0:284            Constant:\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:285      Sequence\r
+0:285        move second child to first child (temp highp 4-component vector of uint)\r
+0:285          't7' (temp highp 4-component vector of uint)\r
+0:285          Function Call: texture(usAC1;vf4; (global highp 4-component vector of uint)\r
+0:285            'CA7' (uniform highp usamplerCubeArray)\r
+0:285            Constant:\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:287      Sequence\r
+0:287        move second child to first child (temp highp 4-component vector of float)\r
+0:287          'L4' (temp highp 4-component vector of float)\r
+0:287          Function Call: textureLod(sAC1;vf4;f1; (global highp 4-component vector of float)\r
+0:287            'CA4' (uniform highp samplerCubeArray)\r
+0:287            Constant:\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287            Constant:\r
+0:287              0.240000\r
+0:288      Sequence\r
+0:288        move second child to first child (temp highp 4-component vector of int)\r
+0:288          'L6' (temp highp 4-component vector of int)\r
+0:288          Function Call: textureLod(isAC1;vf4;f1; (global highp 4-component vector of int)\r
+0:288            'CA6' (uniform highp isamplerCubeArray)\r
+0:288            Constant:\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288            Constant:\r
+0:288              0.260000\r
+0:289      Sequence\r
+0:289        move second child to first child (temp highp 4-component vector of uint)\r
+0:289          'L7' (temp highp 4-component vector of uint)\r
+0:289          Function Call: textureLod(usAC1;vf4;f1; (global highp 4-component vector of uint)\r
+0:289            'CA7' (uniform highp usamplerCubeArray)\r
+0:289            Constant:\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289            Constant:\r
+0:289              0.270000\r
+0:291      Sequence\r
+0:291        move second child to first child (temp highp 4-component vector of float)\r
+0:291          'g4' (temp highp 4-component vector of float)\r
+0:291          Function Call: textureGrad(sAC1;vf4;vf3;vf3; (global highp 4-component vector of float)\r
+0:291            'CA4' (uniform highp samplerCubeArray)\r
+0:291            Constant:\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291            Constant:\r
+0:291              0.100000\r
+0:291              0.100000\r
+0:291              0.100000\r
+0:291            Constant:\r
+0:291              0.200000\r
+0:291              0.200000\r
+0:291              0.200000\r
+0:292      Sequence\r
+0:292        move second child to first child (temp highp 4-component vector of int)\r
+0:292          'g6' (temp highp 4-component vector of int)\r
+0:292          Function Call: textureGrad(isAC1;vf4;vf3;vf3; (global highp 4-component vector of int)\r
+0:292            'CA6' (uniform highp isamplerCubeArray)\r
+0:292            Constant:\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292            Constant:\r
+0:292              0.100000\r
+0:292              0.100000\r
+0:292              0.100000\r
+0:292            Constant:\r
+0:292              0.200000\r
+0:292              0.200000\r
+0:292              0.200000\r
+0:293      Sequence\r
+0:293        move second child to first child (temp highp 4-component vector of uint)\r
+0:293          'g7' (temp highp 4-component vector of uint)\r
+0:293          Function Call: textureGrad(usAC1;vf4;vf3;vf3; (global highp 4-component vector of uint)\r
+0:293            'CA7' (uniform highp usamplerCubeArray)\r
+0:293            Constant:\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293            Constant:\r
+0:293              0.100000\r
+0:293              0.100000\r
+0:293              0.100000\r
+0:293            Constant:\r
+0:293              0.200000\r
+0:293              0.200000\r
+0:293              0.200000\r
+0:295      Sequence\r
+0:295        move second child to first child (temp highp 4-component vector of float)\r
+0:295          'gath4' (temp highp 4-component vector of float)\r
+0:295          Function Call: textureGather(sAC1;vf4; (global highp 4-component vector of float)\r
+0:295            'CA4' (uniform highp samplerCubeArray)\r
+0:295            Constant:\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:296      Sequence\r
+0:296        move second child to first child (temp highp 4-component vector of float)\r
+0:296          'gathC4' (temp highp 4-component vector of float)\r
+0:296          Function Call: textureGather(sAC1;vf4;i1; (global highp 4-component vector of float)\r
+0:296            'CA4' (uniform highp samplerCubeArray)\r
+0:296            Constant:\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296            Constant:\r
+0:296              2 (const int)\r
+0:297      Sequence\r
+0:297        move second child to first child (temp highp 4-component vector of int)\r
+0:297          'gath6' (temp highp 4-component vector of int)\r
+0:297          Function Call: textureGather(isAC1;vf4; (global highp 4-component vector of int)\r
+0:297            'CA6' (uniform highp isamplerCubeArray)\r
+0:297            Constant:\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:298      Sequence\r
+0:298        move second child to first child (temp highp 4-component vector of int)\r
+0:298          'gathC6' (temp highp 4-component vector of int)\r
+0:298          Function Call: textureGather(isAC1;vf4;i1; (global highp 4-component vector of int)\r
+0:298            'CA6' (uniform highp isamplerCubeArray)\r
+0:298            Constant:\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298            Constant:\r
+0:298              1 (const int)\r
+0:299      Sequence\r
+0:299        move second child to first child (temp highp 4-component vector of uint)\r
+0:299          'gath7' (temp highp 4-component vector of uint)\r
+0:299          Function Call: textureGather(usAC1;vf4; (global highp 4-component vector of uint)\r
+0:299            'CA7' (uniform highp usamplerCubeArray)\r
+0:299            Constant:\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:300      Sequence\r
+0:300        move second child to first child (temp highp 4-component vector of uint)\r
+0:300          'gathC7' (temp highp 4-component vector of uint)\r
+0:300          Function Call: textureGather(usAC1;vf4;i1; (global highp 4-component vector of uint)\r
+0:300            'CA7' (uniform highp usamplerCubeArray)\r
+0:300            Constant:\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300            Constant:\r
+0:300              0 (const int)\r
+0:302      Sequence\r
+0:302        move second child to first child (temp highp 4-component vector of float)\r
+0:302          'gath5' (temp highp 4-component vector of float)\r
+0:302          Function Call: textureGather(sASC1;vf4;f1; (global highp 4-component vector of float)\r
+0:302            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:302            Constant:\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302            Constant:\r
+0:302              2.500000\r
+0:304      Sequence\r
+0:304        move second child to first child (temp highp 3-component vector of int)\r
+0:304          's1' (temp highp 3-component vector of int)\r
+0:304          Function Call: imageSize(IAC1; (global highp 3-component vector of int)\r
+0:304            'CA1' (writeonly uniform highp imageCubeArray)\r
+0:305      Sequence\r
+0:305        move second child to first child (temp highp 3-component vector of int)\r
+0:305          's2' (temp highp 3-component vector of int)\r
+0:305          Function Call: imageSize(iIAC1; (global highp 3-component vector of int)\r
+0:305            'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:306      Sequence\r
+0:306        move second child to first child (temp highp 3-component vector of int)\r
+0:306          's3' (temp highp 3-component vector of int)\r
+0:306          Function Call: imageSize(uIAC1; (global highp 3-component vector of int)\r
+0:306            'CA3' (writeonly uniform highp uimageCubeArray)\r
 0:?   Linker Objects\r
 0:?     's' (shared highp 4-component vector of float)\r
 0:?     'v' (buffer highp 4-component vector of float)\r
@@ -502,6 +780,27 @@ ERROR: node is still EOpNull!
 0:?     'bufSamp4' (writeonly uniform highp imageBuffer)\r
 0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)\r
 0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)\r
+0:?     'badCA1' (writeonly uniform mediump imageCubeArray)\r
+0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)\r
+0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)\r
+0:?     'badCA4' (uniform mediump samplerCubeArray)\r
+0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)\r
+0:?     'badCA6' (uniform mediump isamplerCubeArray)\r
+0:?     'badCA7' (uniform mediump usamplerCubeArray)\r
+0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)\r
+0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)\r
+0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)\r
+0:?     'noPreCA4' (uniform mediump samplerCubeArray)\r
+0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)\r
+0:?     'noPreCA6' (uniform mediump isamplerCubeArray)\r
+0:?     'noPreCA7' (uniform mediump usamplerCubeArray)\r
+0:?     'CA1' (writeonly uniform highp imageCubeArray)\r
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)\r
+0:?     'CA4' (uniform highp samplerCubeArray)\r
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:?     'CA6' (uniform highp isamplerCubeArray)\r
+0:?     'CA7' (uniform highp usamplerCubeArray)\r
 0:?     'gl_VertexID' (gl_VertexId highp int VertexId)\r
 0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)\r
 \r
@@ -514,6 +813,7 @@ Requested GL_EXT_texture_buffer
 Requested GL_OES_gpu_shader5\r
 Requested GL_OES_shader_io_blocks\r
 Requested GL_OES_texture_buffer\r
+Requested GL_OES_texture_cube_map_array\r
 ERROR: node is still EOpNull!\r
 0:12  Function Definition: main( (global void)\r
 0:12    Function Parameters: \r
@@ -883,6 +1183,262 @@ ERROR: node is still EOpNull!
 0:232          Function Call: texelFetch(usB1;i1; (global highp 4-component vector of uint)\r
 0:232            'bufSamp3' (uniform highp usamplerBuffer)\r
 0:232            's3' (temp highp int)\r
+0:275  Function Definition: CAT( (global void)\r
+0:275    Function Parameters: \r
+0:277    Sequence\r
+0:277      Sequence\r
+0:277        move second child to first child (temp highp 3-component vector of int)\r
+0:277          's4' (temp highp 3-component vector of int)\r
+0:277          Function Call: textureSize(sAC1;i1; (global highp 3-component vector of int)\r
+0:277            'CA4' (uniform highp samplerCubeArray)\r
+0:277            Constant:\r
+0:277              1 (const int)\r
+0:278      Sequence\r
+0:278        move second child to first child (temp highp 3-component vector of int)\r
+0:278          's5' (temp highp 3-component vector of int)\r
+0:278          Function Call: textureSize(sASC1;i1; (global highp 3-component vector of int)\r
+0:278            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:278            Constant:\r
+0:278              1 (const int)\r
+0:279      Sequence\r
+0:279        move second child to first child (temp highp 3-component vector of int)\r
+0:279          's6' (temp highp 3-component vector of int)\r
+0:279          Function Call: textureSize(isAC1;i1; (global highp 3-component vector of int)\r
+0:279            'CA6' (uniform highp isamplerCubeArray)\r
+0:279            Constant:\r
+0:279              1 (const int)\r
+0:280      Sequence\r
+0:280        move second child to first child (temp highp 3-component vector of int)\r
+0:280          's7' (temp highp 3-component vector of int)\r
+0:280          Function Call: textureSize(usAC1;i1; (global highp 3-component vector of int)\r
+0:280            'CA7' (uniform highp usamplerCubeArray)\r
+0:280            Constant:\r
+0:280              1 (const int)\r
+0:282      Sequence\r
+0:282        move second child to first child (temp highp 4-component vector of float)\r
+0:282          't4' (temp highp 4-component vector of float)\r
+0:282          Function Call: texture(sAC1;vf4; (global highp 4-component vector of float)\r
+0:282            'CA4' (uniform highp samplerCubeArray)\r
+0:282            Constant:\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:282              0.500000\r
+0:283      Sequence\r
+0:283        move second child to first child (temp highp float)\r
+0:283          't5' (temp highp float)\r
+0:283          Function Call: texture(sASC1;vf4;f1; (global highp float)\r
+0:283            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:283            Constant:\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283              0.500000\r
+0:283            Constant:\r
+0:283              3.000000\r
+0:284      Sequence\r
+0:284        move second child to first child (temp highp 4-component vector of int)\r
+0:284          't6' (temp highp 4-component vector of int)\r
+0:284          Function Call: texture(isAC1;vf4; (global highp 4-component vector of int)\r
+0:284            'CA6' (uniform highp isamplerCubeArray)\r
+0:284            Constant:\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:284              0.500000\r
+0:285      Sequence\r
+0:285        move second child to first child (temp highp 4-component vector of uint)\r
+0:285          't7' (temp highp 4-component vector of uint)\r
+0:285          Function Call: texture(usAC1;vf4; (global highp 4-component vector of uint)\r
+0:285            'CA7' (uniform highp usamplerCubeArray)\r
+0:285            Constant:\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:285              0.500000\r
+0:287      Sequence\r
+0:287        move second child to first child (temp highp 4-component vector of float)\r
+0:287          'L4' (temp highp 4-component vector of float)\r
+0:287          Function Call: textureLod(sAC1;vf4;f1; (global highp 4-component vector of float)\r
+0:287            'CA4' (uniform highp samplerCubeArray)\r
+0:287            Constant:\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287              0.500000\r
+0:287            Constant:\r
+0:287              0.240000\r
+0:288      Sequence\r
+0:288        move second child to first child (temp highp 4-component vector of int)\r
+0:288          'L6' (temp highp 4-component vector of int)\r
+0:288          Function Call: textureLod(isAC1;vf4;f1; (global highp 4-component vector of int)\r
+0:288            'CA6' (uniform highp isamplerCubeArray)\r
+0:288            Constant:\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288              0.500000\r
+0:288            Constant:\r
+0:288              0.260000\r
+0:289      Sequence\r
+0:289        move second child to first child (temp highp 4-component vector of uint)\r
+0:289          'L7' (temp highp 4-component vector of uint)\r
+0:289          Function Call: textureLod(usAC1;vf4;f1; (global highp 4-component vector of uint)\r
+0:289            'CA7' (uniform highp usamplerCubeArray)\r
+0:289            Constant:\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289              0.500000\r
+0:289            Constant:\r
+0:289              0.270000\r
+0:291      Sequence\r
+0:291        move second child to first child (temp highp 4-component vector of float)\r
+0:291          'g4' (temp highp 4-component vector of float)\r
+0:291          Function Call: textureGrad(sAC1;vf4;vf3;vf3; (global highp 4-component vector of float)\r
+0:291            'CA4' (uniform highp samplerCubeArray)\r
+0:291            Constant:\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291              0.500000\r
+0:291            Constant:\r
+0:291              0.100000\r
+0:291              0.100000\r
+0:291              0.100000\r
+0:291            Constant:\r
+0:291              0.200000\r
+0:291              0.200000\r
+0:291              0.200000\r
+0:292      Sequence\r
+0:292        move second child to first child (temp highp 4-component vector of int)\r
+0:292          'g6' (temp highp 4-component vector of int)\r
+0:292          Function Call: textureGrad(isAC1;vf4;vf3;vf3; (global highp 4-component vector of int)\r
+0:292            'CA6' (uniform highp isamplerCubeArray)\r
+0:292            Constant:\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292              0.500000\r
+0:292            Constant:\r
+0:292              0.100000\r
+0:292              0.100000\r
+0:292              0.100000\r
+0:292            Constant:\r
+0:292              0.200000\r
+0:292              0.200000\r
+0:292              0.200000\r
+0:293      Sequence\r
+0:293        move second child to first child (temp highp 4-component vector of uint)\r
+0:293          'g7' (temp highp 4-component vector of uint)\r
+0:293          Function Call: textureGrad(usAC1;vf4;vf3;vf3; (global highp 4-component vector of uint)\r
+0:293            'CA7' (uniform highp usamplerCubeArray)\r
+0:293            Constant:\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293              0.500000\r
+0:293            Constant:\r
+0:293              0.100000\r
+0:293              0.100000\r
+0:293              0.100000\r
+0:293            Constant:\r
+0:293              0.200000\r
+0:293              0.200000\r
+0:293              0.200000\r
+0:295      Sequence\r
+0:295        move second child to first child (temp highp 4-component vector of float)\r
+0:295          'gath4' (temp highp 4-component vector of float)\r
+0:295          Function Call: textureGather(sAC1;vf4; (global highp 4-component vector of float)\r
+0:295            'CA4' (uniform highp samplerCubeArray)\r
+0:295            Constant:\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:295              0.500000\r
+0:296      Sequence\r
+0:296        move second child to first child (temp highp 4-component vector of float)\r
+0:296          'gathC4' (temp highp 4-component vector of float)\r
+0:296          Function Call: textureGather(sAC1;vf4;i1; (global highp 4-component vector of float)\r
+0:296            'CA4' (uniform highp samplerCubeArray)\r
+0:296            Constant:\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296              0.500000\r
+0:296            Constant:\r
+0:296              2 (const int)\r
+0:297      Sequence\r
+0:297        move second child to first child (temp highp 4-component vector of int)\r
+0:297          'gath6' (temp highp 4-component vector of int)\r
+0:297          Function Call: textureGather(isAC1;vf4; (global highp 4-component vector of int)\r
+0:297            'CA6' (uniform highp isamplerCubeArray)\r
+0:297            Constant:\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:297              0.500000\r
+0:298      Sequence\r
+0:298        move second child to first child (temp highp 4-component vector of int)\r
+0:298          'gathC6' (temp highp 4-component vector of int)\r
+0:298          Function Call: textureGather(isAC1;vf4;i1; (global highp 4-component vector of int)\r
+0:298            'CA6' (uniform highp isamplerCubeArray)\r
+0:298            Constant:\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298              0.500000\r
+0:298            Constant:\r
+0:298              1 (const int)\r
+0:299      Sequence\r
+0:299        move second child to first child (temp highp 4-component vector of uint)\r
+0:299          'gath7' (temp highp 4-component vector of uint)\r
+0:299          Function Call: textureGather(usAC1;vf4; (global highp 4-component vector of uint)\r
+0:299            'CA7' (uniform highp usamplerCubeArray)\r
+0:299            Constant:\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:299              0.500000\r
+0:300      Sequence\r
+0:300        move second child to first child (temp highp 4-component vector of uint)\r
+0:300          'gathC7' (temp highp 4-component vector of uint)\r
+0:300          Function Call: textureGather(usAC1;vf4;i1; (global highp 4-component vector of uint)\r
+0:300            'CA7' (uniform highp usamplerCubeArray)\r
+0:300            Constant:\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300              0.500000\r
+0:300            Constant:\r
+0:300              0 (const int)\r
+0:302      Sequence\r
+0:302        move second child to first child (temp highp 4-component vector of float)\r
+0:302          'gath5' (temp highp 4-component vector of float)\r
+0:302          Function Call: textureGather(sASC1;vf4;f1; (global highp 4-component vector of float)\r
+0:302            'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:302            Constant:\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302              0.500000\r
+0:302            Constant:\r
+0:302              2.500000\r
+0:304      Sequence\r
+0:304        move second child to first child (temp highp 3-component vector of int)\r
+0:304          's1' (temp highp 3-component vector of int)\r
+0:304          Function Call: imageSize(IAC1; (global highp 3-component vector of int)\r
+0:304            'CA1' (writeonly uniform highp imageCubeArray)\r
+0:305      Sequence\r
+0:305        move second child to first child (temp highp 3-component vector of int)\r
+0:305          's2' (temp highp 3-component vector of int)\r
+0:305          Function Call: imageSize(iIAC1; (global highp 3-component vector of int)\r
+0:305            'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:306      Sequence\r
+0:306        move second child to first child (temp highp 3-component vector of int)\r
+0:306          's3' (temp highp 3-component vector of int)\r
+0:306          Function Call: imageSize(uIAC1; (global highp 3-component vector of int)\r
+0:306            'CA3' (writeonly uniform highp uimageCubeArray)\r
 0:?   Linker Objects\r
 0:?     's' (shared highp 4-component vector of float)\r
 0:?     'v' (buffer highp 4-component vector of float)\r
@@ -950,6 +1506,27 @@ ERROR: node is still EOpNull!
 0:?     'bufSamp4' (writeonly uniform highp imageBuffer)\r
 0:?     'bufSamp5' (writeonly uniform highp iimageBuffer)\r
 0:?     'bufSamp6' (writeonly uniform highp uimageBuffer)\r
+0:?     'badCA1' (writeonly uniform mediump imageCubeArray)\r
+0:?     'badCA2' (writeonly uniform mediump iimageCubeArray)\r
+0:?     'badCA3' (writeonly uniform mediump uimageCubeArray)\r
+0:?     'badCA4' (uniform mediump samplerCubeArray)\r
+0:?     'badCA5' (uniform mediump samplerCubeArrayShadow)\r
+0:?     'badCA6' (uniform mediump isamplerCubeArray)\r
+0:?     'badCA7' (uniform mediump usamplerCubeArray)\r
+0:?     'noPreCA1' (writeonly uniform mediump imageCubeArray)\r
+0:?     'noPreCA2' (writeonly uniform mediump iimageCubeArray)\r
+0:?     'noPreCA3' (writeonly uniform mediump uimageCubeArray)\r
+0:?     'noPreCA4' (uniform mediump samplerCubeArray)\r
+0:?     'noPreCA5' (uniform mediump samplerCubeArrayShadow)\r
+0:?     'noPreCA6' (uniform mediump isamplerCubeArray)\r
+0:?     'noPreCA7' (uniform mediump usamplerCubeArray)\r
+0:?     'CA1' (writeonly uniform highp imageCubeArray)\r
+0:?     'CA2' (writeonly uniform highp iimageCubeArray)\r
+0:?     'CA3' (writeonly uniform highp uimageCubeArray)\r
+0:?     'CA4' (uniform highp samplerCubeArray)\r
+0:?     'CA5' (uniform highp samplerCubeArrayShadow)\r
+0:?     'CA6' (uniform highp isamplerCubeArray)\r
+0:?     'CA7' (uniform highp usamplerCubeArray)\r
 0:?     'gl_VertexID' (gl_VertexId highp int VertexId)\r
 0:?     'gl_InstanceID' (gl_InstanceId highp int InstanceId)\r
 \r
index 42e5217..0ec183c 100644 (file)
@@ -1828,7 +1828,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile)
 
     TBasicType bTypes[3] = { EbtFloat, EbtInt, EbtUint };
     bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140);
-    bool skipCubeArrayed = (profile == EEsProfile || version < 130);
+    bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130);
 
     // enumerate all the types
     for (int image = 0; image <= 1; ++image) { // loop over "bool" image vs sampler
index f47f12e..3c26155 100644 (file)
@@ -781,11 +781,13 @@ int TScanContext::tokenizeIdentifier()
     case IMAGE2DRECT:
     case IIMAGE2DRECT:
     case UIMAGE2DRECT:
+        afterType = true;
         return firstGenerationImage(false);
 
     case IMAGEBUFFER:
     case IIMAGEBUFFER:
     case UIMAGEBUFFER:
+        afterType = true;
         if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
             return keyword;
         return firstGenerationImage(false);
@@ -802,17 +804,24 @@ int TScanContext::tokenizeIdentifier()
     case IMAGE2DARRAY:
     case IIMAGE2DARRAY:
     case UIMAGE2DARRAY:
+        afterType = true;
         return firstGenerationImage(true);
 
     case IMAGECUBEARRAY:
     case IIMAGECUBEARRAY:
-    case UIMAGECUBEARRAY:        
+    case UIMAGECUBEARRAY:
+        afterType = true;
+        if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
+            return keyword;
+        return secondGenerationImage();
+
     case IMAGE2DMS:
     case IIMAGE2DMS:
     case UIMAGE2DMS:
     case IMAGE2DMSARRAY:
     case IIMAGE2DMSARRAY:
     case UIMAGE2DMSARRAY:
+        afterType = true;
         return secondGenerationImage();
 
     case DOUBLE:
@@ -829,6 +838,8 @@ int TScanContext::tokenizeIdentifier()
     case ISAMPLERCUBEARRAY:
     case USAMPLERCUBEARRAY:
         afterType = true;
+        if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
+            return keyword;
         if (parseContext.profile == EEsProfile || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array)))
             reservedWord();
         return keyword;
@@ -1127,8 +1138,6 @@ int TScanContext::dMat()
 
 int TScanContext::firstGenerationImage(bool inEs310)
 {
-    afterType = true;
-
     if (parseContext.symbolTable.atBuiltInLevel() || 
         (parseContext.profile != EEsProfile && (parseContext.version >= 420 || parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) ||
         (inEs310 && parseContext.profile == EEsProfile && parseContext.version >= 310))
@@ -1149,8 +1158,6 @@ int TScanContext::firstGenerationImage(bool inEs310)
 
 int TScanContext::secondGenerationImage()
 {
-    afterType = true;
-
     if (parseContext.profile == EEsProfile && parseContext.version >= 310) {
         reservedWord();
         return keyword;
index 40f0fd7..504110b 100644 (file)
@@ -193,7 +193,7 @@ void TParseContext::initializeExtensionBehavior()
     extensionBehavior[E_GL_EXT_tessellation_shader]                  = EBhDisable;
     extensionBehavior[E_GL_EXT_tessellation_point_size]              = EBhDisable;
     extensionBehavior[E_GL_EXT_texture_buffer]                       = EBhDisable;
-    extensionBehavior[E_GL_EXT_texture_cube_map_array]               = EBhDisablePartial;
+    extensionBehavior[E_GL_EXT_texture_cube_map_array]               = EBhDisable;
 
     // OES matching AEP
     extensionBehavior[E_GL_OES_geometry_shader]          = EBhDisable;
@@ -204,7 +204,7 @@ void TParseContext::initializeExtensionBehavior()
     extensionBehavior[E_GL_OES_tessellation_shader]      = EBhDisable;
     extensionBehavior[E_GL_OES_tessellation_point_size]  = EBhDisable;
     extensionBehavior[E_GL_OES_texture_buffer]           = EBhDisable;
-    extensionBehavior[E_GL_OES_texture_cube_map_array]   = EBhDisablePartial;
+    extensionBehavior[E_GL_OES_texture_cube_map_array]   = EBhDisable;
 }
 
 // Get code that is not part of a shared symbol table, is specific to this shader,