[Mesa-dev] [PATCH v2 08/12] radeonsi: Allocate chunks of CE ram.
Marek Olšák
maraeo at gmail.com
Sun Apr 17 22:32:52 UTC 2016
On Mon, Apr 18, 2016 at 12:19 AM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> On Mon, Apr 18, 2016 at 12:13 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> On Sun, Apr 17, 2016 at 1:43 AM, Bas Nieuwenhuizen
>> <bas at basnieuwenhuizen.nl> wrote:
>>> v2: Use 32 byte alignment.
>>>
>>> Signed-off-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>>> ---
>>> src/gallium/drivers/radeonsi/si_descriptors.c | 30 +++++++++++++++++++--------
>>> src/gallium/drivers/radeonsi/si_state.h | 3 +++
>>> 2 files changed, 24 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
>>> index 7fc1461..a937973 100644
>>> --- a/src/gallium/drivers/radeonsi/si_descriptors.c
>>> +++ b/src/gallium/drivers/radeonsi/si_descriptors.c
>>> @@ -98,7 +98,8 @@ static void si_init_descriptors(struct si_descriptors *desc,
>>> unsigned shader_userdata_index,
>>> unsigned element_dw_size,
>>> unsigned num_elements,
>>> - const uint32_t *null_descriptor)
>>> + const uint32_t *null_descriptor,
>>> + unsigned *ce_offset)
>>> {
>>> int i;
>>>
>>> @@ -109,6 +110,10 @@ static void si_init_descriptors(struct si_descriptors *desc,
>>> desc->num_elements = num_elements;
>>> desc->list_dirty = true; /* upload the list before the next draw */
>>> desc->shader_userdata_offset = shader_userdata_index * 4;
>>> + desc->ce_offset = *ce_offset;
>>> +
>>> + /* make sure that ce_offset stays 32 byte aligned */
>>> + *ce_offset += align(element_dw_size * num_elements * 4, 32);
>>
>> Please define SI_GLOBAL_L2_CACHE_LINE_SIZE 64 in si_pipe.h and use that.
>>
>> Aligning the offset is indeed a good idea, but aligning to the cache
>> line size should be even better.
>
> The 32-byte alignment is a restriction of the LOAD_CONST_RAM packet
> the wants size and offset to be 32 byte aligned.
>
> Note that this is alignment within the CE ram, not the aligment of the
> memory loaded and stored. Does the L2 cache line size really matter
> here? I would expect the alignment that the uploader allocation gives
> to be more important.
OK, good point. The patch is:
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
More information about the mesa-dev
mailing list