[Mesa-dev] [PATCH v2 1/3] st/glsl_to_tgsi: move nir detection earlier - bisected

Timothy Arceri tarceri at itsqueeze.com
Fri Feb 9 00:57:14 UTC 2018



On 09/02/18 11:53, Marek Olšák wrote:
> On Fri, Feb 9, 2018 at 1:45 AM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
>> On 09/02/18 10:49, Marek Olšák wrote:
>>>
>>> Does this fix the cache/no cache conflict?
>>>
>>> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c
>>> b/src/gallium/drivers/radeonsi/si_pipe.c
>>> index 26835d6..97f11ea 100644
>>> --- a/src/gallium/drivers/radeonsi/si_pipe.c
>>> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
>>> @@ -642,7 +642,8 @@ static void si_disk_cache_create(struct si_screen
>>> *sscreen)
>>>                                   sscreen->debug_flags &
>>>                                   (DBG(FS_CORRECT_DERIVS_AFTER_KILL) |
>>>                                    DBG(SI_SCHED) |
>>> -                                DBG(UNSAFE_MATH));
>>> +                                DBG(UNSAFE_MATH) |
>>> +                                DBG(NIR));
>>>
>>>                           sscreen->disk_shader_cache =
>>>
>>> disk_cache_create(si_get_family_name(sscreen),
>>>
>>>
>>> Marek
>>
>>
>> That should do it thanks. Feel free to add my r-b and push.
> 
> Well, I'm not sure. Would you explain to me why this fixes the hangs?
> If it's a conflict between TGSI and NIR caching in st/mesa, the driver
> shouldn't contain workarounds for it. Even when NIR is enabled, TGSI
> shaders can still come from non-GLSL sources.

I don't think this fixes any hangs just crashes e.g. when you run a 
shader on the tgsi backend then try to run the same shader on the nir 
backend. In this case the nir cache will try to load the tgsi cache from 
disk as it produces the same key without this flag.

> 
> Thanks,
> Marek
> 


More information about the mesa-dev mailing list