Re: [Mesa-dev] [PATCH] glsl: add stage references for UBO uniforms

2015-05-13 Thread Tapani Pälli



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

2015-05-13 Thread Samuel Iglesias Gonsálvez


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

2015-05-12 Thread Tapani Pälli



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

2015-05-12 Thread Samuel Iglesias Gonsálvez
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

2015-05-11 Thread Tapani Pälli
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