[Mesa-dev] [PATCH v2 30/31] glsl: disable tree grafting optimization for bindless images

Timothy Arceri tarceri at itsqueeze.com
Fri Apr 28 01:15:58 UTC 2017


On 26/04/17 18:27, Samuel Pitoiset wrote:
> On 04/26/2017 10:05 AM, Nicolai Hähnle wrote:
>> On 24.04.2017 12:36, Samuel Pitoiset wrote:
>>> Because the variable declaration holds more information than
>>> the dereference. Note that an image is considered bindless either
>>> if it has been declared in the default uniform block with the
>>> bindless_sampler layout qualifier, or when its storage is not
>>> uniform because this is not allowed without ARB_bindless_texture.
>>
>> It seems unfortunate that we have to do this. Can you explain what 
>> goes wrong without this change?
> 
> We lost the variable and all information contained in ir_variable for 
> images.

Can you give an example of a shader where this becomes an issue? And why?

> 
>>
>> Thanks,
>> Nicolai
>>
>>
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>> ---
>>>  src/compiler/glsl/opt_tree_grafting.cpp | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/src/compiler/glsl/opt_tree_grafting.cpp 
>>> b/src/compiler/glsl/opt_tree_grafting.cpp
>>> index 28b6e1856e..d4a1ec5675 100644
>>> --- a/src/compiler/glsl/opt_tree_grafting.cpp
>>> +++ b/src/compiler/glsl/opt_tree_grafting.cpp
>>> @@ -371,6 +371,15 @@ tree_grafting_basic_block(ir_instruction *bb_first,
>>>        if (lhs_var->data.precise)
>>>           continue;
>>>
>>> +      if (lhs_var->type->is_image() &&
>>> +          (lhs_var->data.bindless || lhs_var->data.mode != 
>>> ir_var_uniform)) {
>>> +         /* Disable tree grafting optimization for bindless image 
>>> types because
>>> +          * the variable declaration holds more information than the
>>> +          * dereference.
>>> +          */
>>> +         continue;
>>> +      }
>>> +
>>>        ir_variable_refcount_entry *entry = 
>>> info->refs->get_variable_entry(lhs_var);
>>>
>>>        if (!entry->declaration ||
>>>
>>
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list