[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