On 06/05/2013 05:44 PM, [email protected] wrote:
From: Roland Scheidegger <[email protected]>Also report if a shader writes the layer semantic --- src/gallium/auxiliary/draw/draw_context.c | 2 +- src/gallium/auxiliary/tgsi/tgsi_scan.c | 5 +++++ src/gallium/auxiliary/tgsi/tgsi_scan.h | 1 + src/gallium/auxiliary/tgsi/tgsi_strings.c | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index 58ce270..35063b9 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -548,7 +548,7 @@ draw_get_shader_info(const struct draw_context *draw) * function to find those attributes. * * -1 is returned if the attribute is not found since this is - * an undefined situtation. Note, that zero is valid and can + * an undefined situation. Note, that zero is valid and can * be used by any of the attributes, because position is not * required to be attribute 0 or even at all present. */ diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index 0230267..d331257 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -217,6 +217,11 @@ tgsi_scan_shader(const struct tgsi_token *tokens, TGSI_SEMANTIC_VIEWPORT_INDEX) { info->writes_viewport_index = TRUE; } + if (procType == TGSI_PROCESSOR_GEOMETRY && + fulldecl->Semantic.Name == + TGSI_SEMANTIC_LAYER) { + info->writes_layer = TRUE; + } } } diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h index 676abf0..a5b7024 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h @@ -76,6 +76,7 @@ struct tgsi_shader_info boolean pixel_center_integer; boolean color0_writes_all_cbufs; boolean writes_viewport_index; + boolean writes_layer; unsigned num_written_clipdistance; /** diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c b/src/gallium/auxiliary/tgsi/tgsi_strings.c index 6abf927..625107c 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c @@ -80,6 +80,7 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] = "TEXCOORD", "PCOORD", "VIEWPORT_INDEX" + "LAYER" }; const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =
Hmm, there's a STATIC_ASSERT later in the file which should have detected a missing string in the array. I bet we need to remove the TGSI_SEMANTIC_COUNT from the array size declaration to make that work. Can you check into that.
I think I'd split this into two patches. But anyway: Reviewed-by: Brian Paul <[email protected]> _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
