[Mesa-dev] [Mesa-stable] [PATCH 14/18] glsl: Don't include the array index.
Timothy Arceri
timothy.arceri at collabora.com
Tue Aug 2 01:52:59 UTC 2016
On Mon, 2016-08-01 at 18:40 -0400, Ilia Mirkin wrote:
> Fwiw I remember having trouble finding justification for the comments
> in that issue, and iirc the opposite seemed to be indicated by the
> spec text. (E.g.that array indices should be maintained.) I suspect
> there are also AoA interactions.
Yeah I find this odd also. I *believe* we discussed this with Ian a
while back but I can't find the emails, maybe I'm thinking of something
else.
> I guess my point here is to double check this, as well as what other
> drivers do in this and similar situations.
Probably a good idea.
As for AoA I think the other drivers still don't support AoA of blocks
and the specs provide nothing on the topic so who knows what we are
meant to do for them.
>
> On Aug 1, 2016 12:31 PM, "Kenneth Graunke" <kenneth at whitecape.org>
> wrote:
> Issue 16 of the ARB_program_interface_query spec gives an example:
>
> For example, in the following code:
>
> uniform Block1 {
> int member1;
> };
> uniform Block2 {
> int member2;
> } instance2;
> uniform Block3 {
> int member3;
> } instance3[2]; // uses two separate buffer bindings
>
> the three uniforms (if active) are enumerated as "member1",
> "Block2.member2", and "Block3.member3".
>
> From this it's pretty clear that the array index should not be
> included.
>
> Cc: mesa-stable at lists.freedesktop.org
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/compiler/glsl/linker.cpp | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/compiler/glsl/linker.cpp
> b/src/compiler/glsl/linker.cpp
> index 6d45a02..bf11cb4 100644
> --- a/src/compiler/glsl/linker.cpp
> +++ b/src/compiler/glsl/linker.cpp
> @@ -3800,7 +3800,8 @@ add_shader_variable(struct gl_shader_program
> *shProg, unsigned stage_mask,
> */
> const char *prefixed_name = (var->data.from_named_ifc_block &&
> !is_gl_identifier(var->name))
> - ? ralloc_asprintf(shProg, "%s.%s", var-
> >get_interface_type()->name,
> + ? ralloc_asprintf(shProg, "%s.%s",
> + var->get_interface_type()-
> >without_array()->name,
> name)
> : name;
>
> --
> 2.9.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-stable
More information about the mesa-dev
mailing list