[Mesa-dev] [PATCH] nvc0: increase alignment to 256 for texture buffers on fermi

Ilia Mirkin imirkin at alum.mit.edu
Wed Mar 1 17:29:38 UTC 2017


On Wed, Mar 1, 2017 at 11:54 AM, Roland Scheidegger <sroland at vmware.com> wrote:
> Am 01.03.2017 um 17:09 schrieb Ilia Mirkin:
>> When binding as textures, the alignment can be 16. However when binding
>> as an image, the address has to be aligned to 256. (Also when binding as
>> an RT, but that can't happen with GL or current gallium APIs.)
> FWIW binding buffers as rt is fully supported with gallium (it's a dx10
> feature). But I guess outside of llvmpipe and our internal state tracker
> it's unused...

Noted. I'll remove the bit about gallium before pushing.

>
>>
>> Reported-by: Roy Spliet <nouveau at spliet.org>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
>> index 25c60f9..643eb43 100644
>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
>> @@ -147,7 +147,9 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>>     case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
>>        return 256;
>>     case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:
>> -      return 16; /* 256 for binding as RT, but that's not possible in GL */
>> +      if (class_3d < NVE4_3D_CLASS)
>> +         return 256; /* IMAGE bindings require alignment to 256 */
>> +      return 16;
>>     case PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT:
>>        return 16;
>>     case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
>>
>


More information about the mesa-dev mailing list