st/mesa: relax EXT_shader_image_load_store enable
authorIlia Mirkin <imirkin@alum.mit.edu>
Wed, 7 Aug 2019 02:54:56 +0000 (22:54 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 8 Aug 2019 02:31:38 +0000 (22:31 -0400)
There's no reason to bring format-less load requirement into this
extension. It requires a size to be provided, and a compatible format is
computed from the size + data type. For example

  layout(size1x32) uniform iimage1D image;

becomes

  DCL IMAGE[0], 1D, PIPE_FORMAT_R32_SINT, WR

whereas PIPE_CAP_IMAGE_LOAD_FORMATTED is designed to allow
PIPE_FORMAT_NONE to be provided as a format and still enable LOAD
operations to be performed.

So the shader has all the information it needs about the format.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_extensions.c

index b31869e059e19eb754f2c430b993851fd4f85535..50471d63f2b928350a378623497f9888b95a97ca 100644 (file)
@@ -1182,9 +1182,6 @@ void st_init_extensions(struct pipe_screen *screen,
    extensions->OES_sample_variables = extensions->ARB_sample_shading &&
       extensions->ARB_gpu_shader5;
 
-   extensions->EXT_shader_image_load_store &=
-      screen->get_param(screen, PIPE_CAP_IMAGE_LOAD_FORMATTED);
-
    /* Maximum sample count. */
    {
       static const enum pipe_format color_formats[] = {