[Mesa-dev] [PATCH 2/2] gallium/radeon: use max_alloc_size

Marek Olšák maraeo at gmail.com
Fri Jul 1 12:27:07 UTC 2016


On Fri, Jul 1, 2016 at 1:45 PM, Vedran Miletić <vedran at miletic.net> wrote:
> On 07/01/2016 11:11 AM, Marek Olšák wrote:
>>
>> On Fri, Jul 1, 2016 at 10:54 AM, Marek Olšák <maraeo at gmail.com> wrote:
>>>
>>> On Fri, Jul 1, 2016 at 2:52 AM, Vedran Miletić <vedran at miletic.net>
>>> wrote:
>>>>
>>>> On 07/01/2016 01:29 AM, Marek Olšák wrote:
>>>>>
>>>>>
>>>>> From: Marek Olšák <marek.olsak at amd.com>
>>>>>
>>>>> also fix max_global_size to take a maximum of {vram_size, gart_size}
>>>>> ---
>>>>>  src/gallium/drivers/r600/r600_pipe.c          | 2 +-
>>>>>  src/gallium/drivers/radeon/r600_pipe_common.c | 9 +++------
>>>>>  src/gallium/drivers/radeonsi/si_pipe.c        | 2 +-
>>>>>  3 files changed, 5 insertions(+), 8 deletions(-)
>>>>>
>>>>> diff --git a/src/gallium/drivers/r600/r600_pipe.c
>>>>> b/src/gallium/drivers/r600/r600_pipe.c
>>>>> index 119c76b..55bbde1 100644
>>>>> --- a/src/gallium/drivers/r600/r600_pipe.c
>>>>> +++ b/src/gallium/drivers/r600/r600_pipe.c
>>>>> @@ -301,7 +301,7 @@ static int r600_get_param(struct pipe_screen*
>>>>> pscreen,
>>>>> enum pipe_cap param)
>>>>>                 return 0;
>>>>>
>>>>>         case PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE:
>>>>> -               return MIN2(rscreen->b.info.vram_size, 0xFFFFFFFF);
>>>>> +               return MIN2(rscreen->b.info.max_alloc_size,
>>>>> 0xFFFFFFFF);
>>>>>
>>>>>          case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
>>>>>                  return R600_MAP_BUFFER_ALIGNMENT;
>>>>> diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c
>>>>> b/src/gallium/drivers/radeon/r600_pipe_common.c
>>>>> index d7f1d41..f75fa6c 100644
>>>>> --- a/src/gallium/drivers/radeon/r600_pipe_common.c
>>>>> +++ b/src/gallium/drivers/radeon/r600_pipe_common.c
>>>>> @@ -864,8 +864,8 @@ static int r600_get_compute_param(struct
>>>>> pipe_screen
>>>>> *screen,
>>>>>                          * 4 * MAX_MEM_ALLOC_SIZE.
>>>>>                          */
>>>>>                         *max_global_size = MIN2(4 * max_mem_alloc_size,
>>>>> -                               rscreen->info.gart_size +
>>>>> -                               rscreen->info.vram_size);
>>>>> +
>>>>> MAX2(rscreen->info.gart_size,
>>>>> +
>>>>> rscreen->info.vram_size));
>>>>
>>>>
>>>>
>>>> Can't you also use info.max_alloc_size here?
>>>
>>>
>>> I can do *max_global_size = max_alloc_size; Does that sound good?
>>
>>
>> Even if max_alloc_size can be 256 MB?
>>
>> Marek
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>
> How about
>
> *max_global_size = MIN2(4 * max_mem_alloc_size,
>                         rscreen->info.max_alloc_size);
>
> Would that work? That avoids calculating the same value in two distinct
> places, since rscreen->info.max_alloc_size = MAX2(rscreen->info.gart_size,
> rscreen->info.vram_size) for both radeon and amdgpu.

max_mem_alloc_size == max_alloc_size. Thus:

MIN2(4 * max_mem_alloc_size, max_alloc_size) == max_alloc_size

Marek


More information about the mesa-dev mailing list