mesa: add EXT_texture_cube_map_array support
This is identical to OES_texture_cube_map_array support. dEQP has tests which use this extension. Also it is part of AEP. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
4ec1c2bb7f
commit
d49a231c33
6 changed files with 16 additions and 7 deletions
|
|
@ -249,6 +249,7 @@ gpu_shader5_or_OES_texture_cube_map_array(const _mesa_glsl_parse_state *state)
|
||||||
{
|
{
|
||||||
return state->is_version(400, 320) ||
|
return state->is_version(400, 320) ||
|
||||||
state->ARB_gpu_shader5_enable ||
|
state->ARB_gpu_shader5_enable ||
|
||||||
|
state->EXT_texture_cube_map_array_enable ||
|
||||||
state->OES_texture_cube_map_array_enable;
|
state->OES_texture_cube_map_array_enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -371,6 +372,7 @@ texture_gather_cube_map_array(const _mesa_glsl_parse_state *state)
|
||||||
return state->is_version(400, 320) ||
|
return state->is_version(400, 320) ||
|
||||||
state->ARB_texture_gather_enable ||
|
state->ARB_texture_gather_enable ||
|
||||||
state->ARB_gpu_shader5_enable ||
|
state->ARB_gpu_shader5_enable ||
|
||||||
|
state->EXT_texture_cube_map_array_enable ||
|
||||||
state->OES_texture_cube_map_array_enable;
|
state->OES_texture_cube_map_array_enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -299,6 +299,7 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
|
||||||
* is harmless.
|
* is harmless.
|
||||||
*/
|
*/
|
||||||
if (state->ARB_texture_cube_map_array_enable ||
|
if (state->ARB_texture_cube_map_array_enable ||
|
||||||
|
state->EXT_texture_cube_map_array_enable ||
|
||||||
state->OES_texture_cube_map_array_enable) {
|
state->OES_texture_cube_map_array_enable) {
|
||||||
add_type(symbols, glsl_type::samplerCubeArray_type);
|
add_type(symbols, glsl_type::samplerCubeArray_type);
|
||||||
add_type(symbols, glsl_type::samplerCubeArrayShadow_type);
|
add_type(symbols, glsl_type::samplerCubeArrayShadow_type);
|
||||||
|
|
@ -339,6 +340,7 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state->ARB_shader_image_load_store_enable ||
|
if (state->ARB_shader_image_load_store_enable ||
|
||||||
|
state->EXT_texture_cube_map_array_enable ||
|
||||||
state->OES_texture_cube_map_array_enable) {
|
state->OES_texture_cube_map_array_enable) {
|
||||||
add_type(symbols, glsl_type::imageCubeArray_type);
|
add_type(symbols, glsl_type::imageCubeArray_type);
|
||||||
add_type(symbols, glsl_type::iimageCubeArray_type);
|
add_type(symbols, glsl_type::iimageCubeArray_type);
|
||||||
|
|
|
||||||
|
|
@ -348,10 +348,10 @@ isampler2DMSArray KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_mul
|
||||||
usampler2DMSArray KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, USAMPLER2DMSARRAY);
|
usampler2DMSArray KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, USAMPLER2DMSARRAY);
|
||||||
|
|
||||||
/* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
|
/* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
|
||||||
samplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
|
samplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
|
||||||
isamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable, ISAMPLERCUBEARRAY);
|
isamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, ISAMPLERCUBEARRAY);
|
||||||
usamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable, USAMPLERCUBEARRAY);
|
usamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, USAMPLERCUBEARRAY);
|
||||||
samplerCubeArrayShadow KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable, SAMPLERCUBEARRAYSHADOW);
|
samplerCubeArrayShadow KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAYSHADOW);
|
||||||
|
|
||||||
samplerExternalOES {
|
samplerExternalOES {
|
||||||
if (yyextra->OES_EGL_image_external_enable)
|
if (yyextra->OES_EGL_image_external_enable)
|
||||||
|
|
@ -372,7 +372,7 @@ imageCube KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_l
|
||||||
imageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IMAGEBUFFER);
|
imageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IMAGEBUFFER);
|
||||||
image1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1DARRAY);
|
image1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1DARRAY);
|
||||||
image2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2DARRAY);
|
image2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2DARRAY);
|
||||||
imageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable, IMAGECUBEARRAY);
|
imageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IMAGECUBEARRAY);
|
||||||
image2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMS);
|
image2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMS);
|
||||||
image2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMSARRAY);
|
image2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMSARRAY);
|
||||||
iimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1D);
|
iimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1D);
|
||||||
|
|
@ -383,7 +383,7 @@ iimageCube KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_l
|
||||||
iimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IIMAGEBUFFER);
|
iimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IIMAGEBUFFER);
|
||||||
iimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1DARRAY);
|
iimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1DARRAY);
|
||||||
iimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DARRAY);
|
iimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DARRAY);
|
||||||
iimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable, IIMAGECUBEARRAY);
|
iimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IIMAGECUBEARRAY);
|
||||||
iimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMS);
|
iimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMS);
|
||||||
iimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMSARRAY);
|
iimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMSARRAY);
|
||||||
uimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1D);
|
uimage1D KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1D);
|
||||||
|
|
@ -394,7 +394,7 @@ uimageCube KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_l
|
||||||
uimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, UIMAGEBUFFER);
|
uimageBuffer KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, UIMAGEBUFFER);
|
||||||
uimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1DARRAY);
|
uimage1DArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1DARRAY);
|
||||||
uimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DARRAY);
|
uimage2DArray KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DARRAY);
|
||||||
uimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable, UIMAGECUBEARRAY);
|
uimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, UIMAGECUBEARRAY);
|
||||||
uimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMS);
|
uimage2DMS KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMS);
|
||||||
uimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMSARRAY);
|
uimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMSARRAY);
|
||||||
image1DShadow KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
|
image1DShadow KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
|
||||||
|
|
|
||||||
|
|
@ -665,6 +665,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||||
EXT(EXT_tessellation_shader),
|
EXT(EXT_tessellation_shader),
|
||||||
EXT(EXT_texture_array),
|
EXT(EXT_texture_array),
|
||||||
EXT(EXT_texture_buffer),
|
EXT(EXT_texture_buffer),
|
||||||
|
EXT(EXT_texture_cube_map_array),
|
||||||
EXT(MESA_shader_integer_functions),
|
EXT(MESA_shader_integer_functions),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -320,6 +320,7 @@ struct _mesa_glsl_parse_state {
|
||||||
bool has_texture_cube_map_array() const
|
bool has_texture_cube_map_array() const
|
||||||
{
|
{
|
||||||
return ARB_texture_cube_map_array_enable ||
|
return ARB_texture_cube_map_array_enable ||
|
||||||
|
EXT_texture_cube_map_array_enable ||
|
||||||
OES_texture_cube_map_array_enable ||
|
OES_texture_cube_map_array_enable ||
|
||||||
is_version(400, 320);
|
is_version(400, 320);
|
||||||
}
|
}
|
||||||
|
|
@ -736,6 +737,8 @@ struct _mesa_glsl_parse_state {
|
||||||
bool EXT_texture_array_warn;
|
bool EXT_texture_array_warn;
|
||||||
bool EXT_texture_buffer_enable;
|
bool EXT_texture_buffer_enable;
|
||||||
bool EXT_texture_buffer_warn;
|
bool EXT_texture_buffer_warn;
|
||||||
|
bool EXT_texture_cube_map_array_enable;
|
||||||
|
bool EXT_texture_cube_map_array_warn;
|
||||||
bool MESA_shader_framebuffer_fetch_enable;
|
bool MESA_shader_framebuffer_fetch_enable;
|
||||||
bool MESA_shader_framebuffer_fetch_warn;
|
bool MESA_shader_framebuffer_fetch_warn;
|
||||||
bool MESA_shader_framebuffer_fetch_non_coherent_enable;
|
bool MESA_shader_framebuffer_fetch_non_coherent_enable;
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,7 @@ EXT(EXT_texture_compression_latc , EXT_texture_compression_latc
|
||||||
EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004)
|
EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004)
|
||||||
EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , x , 2000)
|
EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , x , 2000)
|
||||||
EXT(EXT_texture_cube_map , ARB_texture_cube_map , GLL, x , x , x , 2001)
|
EXT(EXT_texture_cube_map , ARB_texture_cube_map , GLL, x , x , x , 2001)
|
||||||
|
EXT(EXT_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014)
|
||||||
EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997)
|
EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997)
|
||||||
EXT(EXT_texture_env_add , dummy_true , GLL, x , x , x , 1999)
|
EXT(EXT_texture_env_add , dummy_true , GLL, x , x , x , 1999)
|
||||||
EXT(EXT_texture_env_combine , dummy_true , GLL, x , x , x , 2000)
|
EXT(EXT_texture_env_combine , dummy_true , GLL, x , x , x , 2000)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue