[Mesa-dev] [PATCH] glsl: atomic counters are different than their uniforms
Ian Romanick
idr at freedesktop.org
Thu Jun 30 16:10:48 UTC 2016
On 06/30/2016 12:50 AM, Andres Gomez wrote:
> On Thu, 2016-06-30 at 00:29 -0700, Ian Romanick wrote:
>> On 06/29/2016 05:55 PM, Timothy Arceri wrote:
> ...
>>> <insert supporting spec quote??>
>>
>> So, I don't think there is a clear part of the spec to quote here,
>> and
>> I looked. :) While the spec doesn't come right out and say it, I
>> think
>> we can infer that this behavior is correct. It's clear how offsets
>> will be assigned for arrays:
>>
>> * Arrays of type atomic_uint are stored in memory by element
>> order,
>> with array element member zero at the lowest offset. The
>> difference
>> in offsets between each pair of elements in the array in basic
>> machine
>> units is referred to as the array stride, and is constant across
>> the
>> entire array. The stride can be queried by calling GetIntegerv
>> with
>> a <pname> of UNIFORM_ARRAY_STRIDE after a program is linked.
>>
>> From that it is clear how arrays of atomic counters will interact
>> with
>> GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE.
>>
>> For other kinds of uniforms it's also clear that each entry in an
>> array
>> counts against the relevant limits.
>>
>> I think this is correct, but you have to rely on inference.
>
> I bumped into the same problem, having to infer the expected behavior
> to know whether the related CTS test implementation was correct or it
> was mesa's implementation. I came to the same conclusion.
>
> You have put it very well into words in your answer. What about I use
> your paragraph above to include it into the commit message?
Sounds good to me.
> Thanks!
More information about the mesa-dev
mailing list