[Mesa-dev] [PATCH 3/4] i965: move brw_nir_lower_gl_images call

Jason Ekstrand jason at jlekstrand.net
Wed Sep 5 14:44:47 UTC 2018


This should be fine.  It was, effectively, happening in the back-end so
moving it later is fine.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

On Wed, Sep 5, 2018 at 9:11 AM Alejandro PiƱeiro <apinheiro at igalia.com>
wrote:

> At this moment that lowering is using info coming from the
> UniformStorage, so for the ARB_gl_spirv codepath, it needs to be done
> after calling gl_nir_link_uniforms. As for the GLSL codepath it can
> also be called later, we just move the call on both cases, to avoid
> adding several shader->spirv_data checks, and keep the patch as small
> as possible.
>
> This is the first patch needed to fix the following piglit tests:
>
> tests/spec/arb_gl_spirv/linker/uniform/multisampler.shader_test
> tests/spec/arb_gl_spirv/linker/uniform/multisampler-array.shader_test
>
> but fixes thousands of tests when borrowing the tests from other specs
> (that needs to be done manually right now).
> ---
>  src/mesa/drivers/dri/i965/brw_link.cpp  | 10 ++++++++++
>  src/mesa/drivers/dri/i965/brw_program.c |  1 -
>  2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
> b/src/mesa/drivers/dri/i965/brw_link.cpp
> index 0723255dec6..2cbb1e0b879 100644
> --- a/src/mesa/drivers/dri/i965/brw_link.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_link.cpp
> @@ -270,6 +270,16 @@ brw_link_shader(struct gl_context *ctx, struct
> gl_shader_program *shProg)
>        gl_nir_link_assign_xfb_resources(ctx, shProg);
>     }
>
> +   for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) {
> +      struct gl_linked_shader *shader = shProg->_LinkedShaders[stage];
> +      if (!shader)
> +         continue;
> +
> +      struct gl_program *prog = shader->Program;
> +
> +      NIR_PASS_V(prog->nir, brw_nir_lower_gl_images, prog);
> +   }
> +
>     /* Determine first and last stage. */
>     unsigned first = MESA_SHADER_STAGES;
>     unsigned last = 0;
> diff --git a/src/mesa/drivers/dri/i965/brw_program.c
> b/src/mesa/drivers/dri/i965/brw_program.c
> index ba418e45b85..f5ebd3c3b05 100644
> --- a/src/mesa/drivers/dri/i965/brw_program.c
> +++ b/src/mesa/drivers/dri/i965/brw_program.c
> @@ -140,7 +140,6 @@ brw_create_nir(struct brw_context *brw,
>     }
>
>     NIR_PASS_V(nir, brw_nir_lower_uniforms, is_scalar);
> -   NIR_PASS_V(nir, brw_nir_lower_gl_images, prog);
>
>     return nir;
>  }
> --
> 2.14.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180905/2e3ce478/attachment.html>


More information about the mesa-dev mailing list