And how about the attached patch?

Marek

On Fri, May 27, 2016 at 10:08 AM, Bas Nieuwenhuizen
<b...@basnieuwenhuizen.nl> wrote:
> Those are always read for writing to the TF ring.
>
> Should fix CTS test
> GL45-CTS.shader_image_load_store.multiple-uniforms
> after a regression due to the new tessellation code.
>
> Signed-off-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
> ---
>
> I have no CTS, so it actually is not tested whether it fixes
> this test.
>
>
>  src/gallium/drivers/radeonsi/si_state_draw.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
> b/src/gallium/drivers/radeonsi/si_state_draw.c
> index 788869e..40592d0 100644
> --- a/src/gallium/drivers/radeonsi/si_state_draw.c
> +++ b/src/gallium/drivers/radeonsi/si_state_draw.c
> @@ -125,6 +125,9 @@ static void si_emit_derived_tess_state(struct si_context 
> *sctx,
>                 num_tcs_patch_outputs = 2; /* TESSINNER + TESSOUTER */
>         }
>
> +       /* We always load TESSINNER and TESSOUTER to write to the tf ring. */
> +       num_tcs_patch_outputs = MAX2(num_tcs_patch_outputs, 2);
> +
>         input_vertex_size = num_tcs_inputs * 16;
>         output_vertex_size = num_tcs_outputs * 16;
>
> --
> 2.8.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
From f49301767300e98fb293f4e5d800410a0015143b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com>
Date: Fri, 27 May 2016 12:39:30 +0200
Subject: [PATCH] radeonsi: always reserve output space for tess factors

---
 src/gallium/drivers/radeonsi/si_state_shaders.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index c6f51ea..8ec0470 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -1104,8 +1104,13 @@ static void *si_create_shader_selector(struct pipe_context *ctx,
 			u_vertices_per_prim(sel->info.properties[TGSI_PROPERTY_GS_INPUT_PRIM]);
 		break;
 
-	case PIPE_SHADER_VERTEX:
 	case PIPE_SHADER_TESS_CTRL:
+		/* Always reserve space for these. */
+		sel->patch_outputs_written |=
+			(1llu << si_shader_io_get_unique_index(TGSI_SEMANTIC_TESSINNER, 0)) |
+			(1llu << si_shader_io_get_unique_index(TGSI_SEMANTIC_TESSOUTER, 0));
+		/* fall through */
+	case PIPE_SHADER_VERTEX:
 	case PIPE_SHADER_TESS_EVAL:
 		for (i = 0; i < sel->info.num_outputs; i++) {
 			unsigned name = sel->info.output_semantic_name[i];
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to