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

Dave Airlie airlied at gmail.com
Tue Aug 26 23:05:04 PDT 2014


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


More information about the mesa-dev mailing list