Re: [Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms
On 05/13/2015 10:35 AM, Samuel Iglesias Gonsálvez wrote: On 13/05/15 07:28, Tapani Pälli wrote: On 05/13/2015 08:02 AM, Samuel Iglesias Gonsálvez wrote: Thanks Tapani! Reviewed-by: Samuel Iglesias Gonsalvez Can you add a test to piglit to check this case? I was hoping you had some test that hit this? :) I'll take a look if existing tests can be modified easily to cover this case. I have one test for SSBOs which also hit this. If you are busy, just let me know and I will modify an existing test. Check if following test could be extended to cover the case: arb_program_interface_query-getprogramresourceiv I believe you might need to touch other cases as they all use the same shaders. Or maybe additionally add a new shader with case that hits this path. Thanks, Sam Sam On 11/05/15 12:24, Tapani Pälli wrote: Patch marks uniforms inside UBO properly referenced by stages. Signed-off-by: Tapani Pälli Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90397 --- src/glsl/linker.cpp | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index ea73c6f..ecdc025 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -2700,6 +2700,16 @@ build_program_resource_list(struct gl_context *ctx, uint8_t stageref = build_stageref(shProg, shProg->UniformStorage[i].name); + + /* Add stagereferences for uniforms in a uniform block. */ + int block_index = shProg->UniformStorage[i].block_index; + if (block_index != -1) { + for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) { + if (shProg->UniformBlockStageIndex[j][block_index] != -1) +stageref |= (1 << j); + } + } + if (!add_program_resource(shProg, GL_UNIFORM, &shProg->UniformStorage[i], stageref)) return; ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms
On 13/05/15 07:28, Tapani Pälli wrote: > > > On 05/13/2015 08:02 AM, Samuel Iglesias Gonsálvez wrote: >> Thanks Tapani! >> >> Reviewed-by: Samuel Iglesias Gonsalvez >> >> Can you add a test to piglit to check this case? > > I was hoping you had some test that hit this? :) I'll take a look if > existing tests can be modified easily to cover this case. > I have one test for SSBOs which also hit this. If you are busy, just let me know and I will modify an existing test. Thanks, Sam > >> Sam >> >> On 11/05/15 12:24, Tapani Pälli wrote: >>> Patch marks uniforms inside UBO properly referenced by stages. >>> >>> Signed-off-by: Tapani Pälli >>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90397 >>> --- >>> src/glsl/linker.cpp | 10 ++ >>> 1 file changed, 10 insertions(+) >>> >>> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp >>> index ea73c6f..ecdc025 100644 >>> --- a/src/glsl/linker.cpp >>> +++ b/src/glsl/linker.cpp >>> @@ -2700,6 +2700,16 @@ build_program_resource_list(struct gl_context >>> *ctx, >>> >>> uint8_t stageref = >>>build_stageref(shProg, shProg->UniformStorage[i].name); >>> + >>> + /* Add stagereferences for uniforms in a uniform block. */ >>> + int block_index = shProg->UniformStorage[i].block_index; >>> + if (block_index != -1) { >>> + for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) { >>> + if (shProg->UniformBlockStageIndex[j][block_index] != -1) >>> +stageref |= (1 << j); >>> + } >>> + } >>> + >>> if (!add_program_resource(shProg, GL_UNIFORM, >>> &shProg->UniformStorage[i], stageref)) >>>return; >>> > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms
On 05/13/2015 08:02 AM, Samuel Iglesias Gonsálvez wrote: Thanks Tapani! Reviewed-by: Samuel Iglesias Gonsalvez Can you add a test to piglit to check this case? I was hoping you had some test that hit this? :) I'll take a look if existing tests can be modified easily to cover this case. Sam On 11/05/15 12:24, Tapani Pälli wrote: Patch marks uniforms inside UBO properly referenced by stages. Signed-off-by: Tapani Pälli Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90397 --- src/glsl/linker.cpp | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index ea73c6f..ecdc025 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -2700,6 +2700,16 @@ build_program_resource_list(struct gl_context *ctx, uint8_t stageref = build_stageref(shProg, shProg->UniformStorage[i].name); + + /* Add stagereferences for uniforms in a uniform block. */ + int block_index = shProg->UniformStorage[i].block_index; + if (block_index != -1) { + for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) { + if (shProg->UniformBlockStageIndex[j][block_index] != -1) +stageref |= (1 << j); + } + } + if (!add_program_resource(shProg, GL_UNIFORM, &shProg->UniformStorage[i], stageref)) return; ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms
Thanks Tapani! Reviewed-by: Samuel Iglesias Gonsalvez Can you add a test to piglit to check this case? Sam On 11/05/15 12:24, Tapani Pälli wrote: > Patch marks uniforms inside UBO properly referenced by stages. > > Signed-off-by: Tapani Pälli > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90397 > --- > src/glsl/linker.cpp | 10 ++ > 1 file changed, 10 insertions(+) > > diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp > index ea73c6f..ecdc025 100644 > --- a/src/glsl/linker.cpp > +++ b/src/glsl/linker.cpp > @@ -2700,6 +2700,16 @@ build_program_resource_list(struct gl_context *ctx, > >uint8_t stageref = > build_stageref(shProg, shProg->UniformStorage[i].name); > + > + /* Add stagereferences for uniforms in a uniform block. */ > + int block_index = shProg->UniformStorage[i].block_index; > + if (block_index != -1) { > + for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) { > + if (shProg->UniformBlockStageIndex[j][block_index] != -1) > +stageref |= (1 << j); > + } > + } > + >if (!add_program_resource(shProg, GL_UNIFORM, > &shProg->UniformStorage[i], stageref)) > return; > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms
Patch marks uniforms inside UBO properly referenced by stages. Signed-off-by: Tapani Pälli Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90397 --- src/glsl/linker.cpp | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index ea73c6f..ecdc025 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -2700,6 +2700,16 @@ build_program_resource_list(struct gl_context *ctx, uint8_t stageref = build_stageref(shProg, shProg->UniformStorage[i].name); + + /* Add stagereferences for uniforms in a uniform block. */ + int block_index = shProg->UniformStorage[i].block_index; + if (block_index != -1) { + for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) { + if (shProg->UniformBlockStageIndex[j][block_index] != -1) +stageref |= (1 << j); + } + } + if (!add_program_resource(shProg, GL_UNIFORM, &shProg->UniformStorage[i], stageref)) return; -- 2.1.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev