[Mesa-dev] [PATCH 2/2] i965: Don't force SSO layout for VS->TCS.

Timothy Arceri timothy.arceri at collabora.com
Tue Dec 6 06:31:25 UTC 2016


On Mon, 2016-12-05 at 21:13 -0800, Kenneth Graunke wrote:
> This was a hack which worked around the VS and TCS disagreeing on
> their
> shared interface due to the lack of varying packing.  In particular,
> it
> was needed by Piglit's tcs-input-read-array-interface test.
> 
> However, that was just one case where things could go awry, so the
> previous commit forcibly made interfaces match.  This hack is no
> longer
> necessary.
> 
> It also seems to be broken, though I'm not sure why.  It fixes Piglit
> regressions in spec/arb_shader_image_load_store/semantics from commit
> ec1f159ac81ed964415d102eed4a0a29be8e7937.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98893
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp | 3 ++-
>  src/mesa/drivers/dri/i965/brw_vs.c         | 4 +---
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp
> b/src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp
> index da2559c..c7278e4 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp
> @@ -461,7 +461,8 @@ brw_compile_tcs(const struct brw_compiler
> *compiler,
>     nir->info->patch_outputs_written = key->patch_outputs_written;
>  
>     struct brw_vue_map input_vue_map;
> -   brw_compute_vue_map(devinfo, &input_vue_map, nir->info-
> >inputs_read, true);
> +   brw_compute_vue_map(devinfo, &input_vue_map, nir->info-
> >inputs_read,
> +                       nir->info->separate_shader);
>     brw_compute_tess_vue_map(&vue_prog_data->vue_map,
>                              nir->info->outputs_written,
>                              nir->info->patch_outputs_written);
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.c
> b/src/mesa/drivers/dri/i965/brw_vs.c
> index dea1cf4..9a1f934 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs.c
> @@ -158,9 +158,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
>  
>     brw_compute_vue_map(devinfo,
>                         &prog_data.base.vue_map, outputs_written,
> -                       prog ? prog->SeparateShader ||
> -                              prog-
> >_LinkedShaders[MESA_SHADER_TESS_EVAL]
> -                            : false);
> +                       vp->program.nir->info->separate_shader);

Nice. I think with my recent refactors these were the only major things
stopping us from moving the brw_compute_vue_map() calls
into brw_compile_vs() etc removing some code duplication from the
various code paths. I think there is still some refactoring that would
be required for handling edgeflag.

Anyway. This series is: 

Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>

>  
>     if (0) {
>        _mesa_fprint_program_opt(stderr, &vp->program,
> PROG_PRINT_DEBUG, true);


More information about the mesa-dev mailing list