On 04/22/2013 08:15 AM, Jordan Justen wrote:
On Sun, Apr 21, 2013 at 12:30 PM, Kenneth Graunke <kenn...@whitecape.org> wrote:
On 04/19/2013 12:35 PM, Jordan Justen wrote:

For interface blocks, there are three separate namespaces for
uniform, input and output blocks.


http://knowyourmeme.com/photos/2109

There are?

Similarly, for your next patch:
"Uniform/interface blocks are a separate namespace from types."

They are?

I should definitely add some spec references to this commit.

Anyway, this is tested by my proposed piglit test:
glsl-1.50: allow the same name for uniform and varying interface
And, I actually properly referenced the spec there. :)

GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
"A block name is allowed to have different definitions in different
  interfaces."

Which kind of confused me until I read:
GLSLangSpec.4.30.8, 4.3.9 Interface Blocks:
"A block name is allowed to have different definitions in different
  interfaces within the same shader, allowing, for example, an input
  block and output block to have the same name."

Did I misinterpreted this text?

Thanks,

-Jordan

I had only been looking in 1.50. The 4.30 text does indeed clarify that input/output blocks should be able to have the same name.

It does seem to me that block names should conflict with variables/functions/structure types, though, due to this text:

"it is a compile-time error to use a block name at global scope for anything other than as a block name (e.g. use of a block name for a global variable name or function name is currently reserved)." (4.30, page 50 aka 56 in the PDF).

As long as es3conform's uniform_buffer_object_block_name_conflict test, and piglit block-name-clashes-with-{variable,function,struct}.vert pass, I'm OK with it.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to