[Mesa-dev] [PATCH 1/3] u_format: implement fetch_rgba_uint and fetch_rgba_sint for integer formats

Dave Airlie airlied at gmail.com
Mon Jan 2 08:56:28 PST 2012


On Mon, Jan 2, 2012 at 4:40 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Mon, Jan 2, 2012 at 3:31 PM, Dave Airlie <airlied at gmail.com> wrote:
>> On Mon, Jan 2, 2012 at 1:07 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>> Fetching int as float and vice versa is not allowed.
>>> Fetching unsigned int as signed int and vice versa is not allowed either.
>>
>> The first is true, the second isn't, otherwise I'd have implemented
>> this that way.
>>
>>> Doing conversions like that isn't allowed in OpenGL.
>>
>> I don't have chapter/verse but EXT_texture_integer doesn't seem to
>> disallow this.
>
> EXT_texture_integer doesn't, but that extension doesn't define the new
> GLSL samplers, it only requires EXT_gpu_shader4.
>
> See this part from EXT_gpu_shader4 (modifications to section 8.7 of
> the GLSL spec):
>
> Table 8.xxx lists the supported combinations of sampler types and
> texture internal formats.
>
>      texture
>      internal      default (float) integer     unsigned integer
>      format        sampler         sampler     sampler
>      float         vec4            n/a          n/a
>      normalized    vec4            n/a          n/a
>      signed int    n/a             ivec4        n/a
>      unsigned int  n/a             n/a          uvec4
>
> That is, no conversions are allowed. The pack/unpack stuff is
> different, because it doesn't involve shaders. I have no opinion on
> whether we should be that strict in u_format or not. Being strict may
> later prevent making programming mistakes though.

Did you mean samplers instead of shaders in that sentence? if so I
probably agree that its fine then.

Also I'd agree with starting simple and only enabling the conversions
if something comes up later, so with that,

Reviewed-by: Dave Airlie <airlied at redhat.com>

Dave.


More information about the mesa-dev mailing list