Module: Mesa Branch: staging/20.1 Commit: 1ad6d99778eaa477df1922edb69ecd1b3c142e89 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ad6d99778eaa477df1922edb69ecd1b3c142e89
Author: Pierre-Eric Pelloux-Prayer <[email protected]> Date: Fri Jun 19 18:29:19 2020 +0200 glsl: reject size1x8 for image variable with floating-point data types Fixes: 8d07d66180b ("glsl,nir: Switch the enum representing shader image formats to PIPE_FORMAT.") Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5688> (cherry picked from commit 0c8873d85db371dea9ec34fefc6fec531aa404b9) --- .pick_status.json | 2 +- src/compiler/glsl/ast_to_hir.cpp | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 636ca66f137..ae84460e908 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -373,7 +373,7 @@ "description": "glsl: reject size1x8 for image variable with floating-point data types", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "8d07d66180b1523d7e70681ca142955f896ebda9" }, diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index 1201c11b778..5c1fae4d277 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -4981,12 +4981,14 @@ ast_declarator_list::hir(exec_list *instructions, if (strncmp(this->type->specifier->type_name, "image", strlen("image")) == 0) { switch (this->type->qualifier.image_format) { case PIPE_FORMAT_R8_SINT: - /* No valid qualifier in this case, driver will need to look at - * the underlying image's format (just like no qualifier being - * present). + /* The GL_EXT_shader_image_load_store spec says: + * A layout of "size1x8" is illegal for image variables associated + * with floating-point data types. */ - this->type->qualifier.image_format = PIPE_FORMAT_NONE; - break; + _mesa_glsl_error(& loc, state, + "size1x8 is illegal for image variables " + "with floating-point data types."); + return NULL; case PIPE_FORMAT_R16_SINT: this->type->qualifier.image_format = PIPE_FORMAT_R16_FLOAT; break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
