[Mesa-dev] [PATCH 2/7] radeon/compute: Report a value for PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE

Marek Olšák maraeo at gmail.com
Mon Sep 1 03:11:47 PDT 2014


PIPE_SHADER_MAX_CONST_BUFFER_SIZE replaced MAX_CONSTS. The former is
in bytes, while the latter was in vec4s (16 bytes).

Marek

On Wed, Aug 27, 2014 at 8:05 AM, Dave Airlie <airlied at gmail.com> wrote:
> I think Tom cc'ed the wrong stable maybe, not sure,
>
> 10.2 doesn't have PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE, so this
> doesn't even build.
>
> You might want to get a build system that builds all the drivers
> before applying and fixing up patches.
>
> Dave.
>
> On 27 August 2014 06:24, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 08/08/14 15:16, Tom Stellard wrote:
>>> CC: "10.2" <mesa-stable at lists.freedesktop.org>
>>> ---
>>>  src/gallium/drivers/r600/r600_pipe.c   | 11 ++++++++++-
>>>  src/gallium/drivers/radeonsi/si_pipe.c |  7 +++++++
>>>  2 files changed, 17 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
>>> index a08e70e..7ace671 100644
>>> --- a/src/gallium/drivers/r600/r600_pipe.c
>>> +++ b/src/gallium/drivers/r600/r600_pipe.c
>>> @@ -421,7 +421,16 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
>>>               /* XXX Isn't this equal to TEMPS? */
>>>               return 1; /* Max native address registers */
>>>       case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
>>> -             return R600_MAX_CONST_BUFFER_SIZE;
>>> +             if (shader == PIPE_SHADER_COMPUTE) {
>>> +                     uint64_t max_const_buffer_size;
>>> +                     pscreen->get_compute_param(pscreen,
>>> +                             PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE,
>>> +                             &max_const_buffer_size);
>>> +                     return max_const_buffer_size;
>>> +
>>> +             } else {
>>> +                     return R600_MAX_CONST_BUFFER_SIZE;
>>> +             }
>>>       case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
>>>               return R600_MAX_USER_CONST_BUFFERS;
>>>       case PIPE_SHADER_CAP_MAX_PREDS:
>>> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
>>> index 635b37d..791838f 100644
>>> --- a/src/gallium/drivers/radeonsi/si_pipe.c
>>> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
>>> @@ -327,6 +327,13 @@ static int si_get_shader_param(struct pipe_screen* pscreen, unsigned shader, enu
>>>               case PIPE_SHADER_CAP_DOUBLES:
>>>                       return 0; /* XXX: Enable doubles once the compiler can
>>>                                    handle them. */
>>> +             case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE: {
>>> +                     uint64_t max_const_buffer_size;
>>> +                     pscreen->get_compute_param(pscreen,
>>> +                             PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE,
>>> +                             &max_const_buffer_size);
>>> +                     return max_const_buffer_size;
>>> +             }
>>>               default:
>>>                       return 0;
>>>               }
>>>
>>
>> Hello Tom,
>>
>> This patch does not apply cleanly to the 10.2 branch. I have resolved the
>> conflicts as below. Kindly let me know if I missed anything.
>>
>> -Emil
>>
>>
>> commit f40a0750a4fcd2c7f233b962a5e74166e12456ad
>> Author: Tom Stellard <thomas.stellard at amd.com>
>> Date:   Thu Aug 7 15:31:17 2014 -0400
>>
>>     radeon/compute: Report a value for PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE
>>
>>     CC: "10.2" <mesa-stable at lists.freedesktop.org>
>>     (cherry picked from commit 72969e0efb7a5a011629c1001e81aa2329ede6b1)
>>
>>     Conflicts:
>>         src/gallium/drivers/r600/r600_pipe.c
>>         src/gallium/drivers/radeonsi/si_pipe.c
>>
>> diff --git a/src/gallium/drivers/r600/r600_pipe.c
>> b/src/gallium/drivers/r600/r600_pipe.c
>> index 0668b27..6ee4484 100644
>> --- a/src/gallium/drivers/r600/r600_pipe.c
>> +++ b/src/gallium/drivers/r600/r600_pipe.c
>> @@ -416,6 +416,17 @@ static int r600_get_shader_param(struct pipe_screen*
>> pscreen, unsigned shader, e
>>                 return 1; /* Max native address registers */
>>         case PIPE_SHADER_CAP_MAX_CONSTS:
>>                 return R600_MAX_CONST_BUFFER_SIZE;
>> +       case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
>> +               if (shader == PIPE_SHADER_COMPUTE) {
>> +                       uint64_t max_const_buffer_size;
>> +                       pscreen->get_compute_param(pscreen,
>> +                               PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE,
>> +                               &max_const_buffer_size);
>> +                       return max_const_buffer_size;
>> +
>> +               } else {
>> +                       return R600_MAX_CONST_BUFFER_SIZE;
>> +               }
>>         case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
>>                 return R600_MAX_USER_CONST_BUFFERS;
>>         case PIPE_SHADER_CAP_MAX_PREDS:
>> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c
>> b/src/gallium/drivers/radeonsi/si_pipe.c
>> index ca8cea3..afb9bcb 100644
>> --- a/src/gallium/drivers/radeonsi/si_pipe.c
>> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
>> @@ -317,6 +317,13 @@ static int si_get_shader_param(struct pipe_screen*
>> pscreen, unsigned shader, enu
>>                 switch (param) {
>>                 case PIPE_SHADER_CAP_PREFERRED_IR:
>>                         return PIPE_SHADER_IR_LLVM;
>> +               case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE: {
>> +                       uint64_t max_const_buffer_size;
>> +                       pscreen->get_compute_param(pscreen,
>> +                               PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE,
>> +                               &max_const_buffer_size);
>> +                       return max_const_buffer_size;
>> +               }
>>                 default:
>>                         return 0;
>>                 }
>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list