[Mesa-dev] [PATCH 3/3] gallium/radeon: pass LLVM processor to the disk shader cache

Timothy Arceri tarceri at itsqueeze.com
Sat Aug 19 03:01:48 UTC 2017


On 18/08/17 20:49, Nicolai Hähnle wrote:
> On 11.08.2017 20:37, Marek Olšák wrote:
>> On Fri, Aug 11, 2017 at 6:00 PM, Nicolai Hähnle <nhaehnle at gmail.com> 
>> wrote:
>>> On 10.08.2017 21:57, Marek Olšák wrote:
>>>>
>>>> From: Marek Olšák <marek.olsak at amd.com>
>>>>
>>>> ---
>>>>    src/gallium/drivers/radeon/r600_pipe_common.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c
>>>> b/src/gallium/drivers/radeon/r600_pipe_common.c
>>>> index 95458d2e..0038c9a 100644
>>>> --- a/src/gallium/drivers/radeon/r600_pipe_common.c
>>>> +++ b/src/gallium/drivers/radeon/r600_pipe_common.c
>>>> @@ -878,21 +878,21 @@ static void r600_disk_cache_create(struct
>>>> r600_common_screen *rscreen)
>>>>    #endif
>>>>                  if (res != -1) {
>>>>                          /* These flags affect shader compilation. */
>>>>                          uint64_t shader_debug_flags =
>>>>                                  rscreen->debug_flags &
>>>>                                  (DBG_FS_CORRECT_DERIVS_AFTER_KILL |
>>>>                                   DBG_SI_SCHED |
>>>>                                   DBG_UNSAFE_MATH);
>>>>                          rscreen->disk_shader_cache =
>>>> -
>>>> disk_cache_create(r600_get_family_name(rscreen),
>>>> +
>>>> disk_cache_create(r600_get_llvm_processor_name(rscreen->family),
>>>
>>>
>>> What's the advantage of this?
>>
>> It's added to the shader cache key. It allows shaders cached for
>> Vega10 to be used by Raven and vice versa. Same for Polaris11 and
>> Polaris12. It makes things nicer for some multi-GPU setups or when
>> swapping GPUs.
> 
> I'm not a huge fan of this since the shader code does have access to the 
> family, and there might be a need for family-specific workarounds. I'm 
> actually not a huge fan of this overall, because the debug_flags thing 
> seems flaky as well.
> 
> There's currently some corruption in Unigine demos which seems related 
> to the shader cache, which just goes to show how difficult it is to 
> really get this stuff right. I'd rather be on the safe side.

I'm not sure if its related, but I noticed recently that there was at 
least 1 piglit test that seems to have regressed for the shader cache.

Should be reproducible by running piglit twice in a row, I haven't 
looked into it any further and can't recall what it was testing.


> 
> Cheers,
> Nicolai
> 
>>
>> Marek
>>
> 
> 


More information about the mesa-dev mailing list