[Mesa-dev] [RFC PATCH 14/26] glsl: do not make bindless image read-only variables
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Apr 12 10:21:55 UTC 2017
On 04/12/2017 12:21 PM, Samuel Pitoiset wrote:
>
>
> On 04/12/2017 02:18 AM, Timothy Arceri wrote:
>> On 12/04/17 02:48, Samuel Pitoiset wrote:
>>> Bindless images can be explicitely converted to and from uvec2
>>> using scalar constructors.
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>> ---
>>> src/compiler/glsl/ast_to_hir.cpp | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/compiler/glsl/ast_to_hir.cpp
>>> b/src/compiler/glsl/ast_to_hir.cpp
>>> index f52ba8181a..bcdf212497 100644
>>> --- a/src/compiler/glsl/ast_to_hir.cpp
>>> +++ b/src/compiler/glsl/ast_to_hir.cpp
>>> @@ -3411,7 +3411,7 @@ apply_image_qualifier_to_variable(const struct
>>> ast_type_qualifier *qual,
>>> var->data.image_coherent |= qual->flags.q.coherent;
>>> var->data.image_volatile |= qual->flags.q._volatile;
>>> var->data.image_restrict |= qual->flags.q.restrict_flag;
>>> - var->data.read_only = true;
>>> + var->data.read_only = base_type->is_image();
>>>
>>> if (qual->flags.q.explicit_image_format) {
>>> if (var->data.mode == ir_var_function_in) {
>>>
>>
>> Just curious. If we remove this what stops values being directly
>> assigned to images when not using the constructors?
>
> do_assignment() doesn't allow image types to be assigned. For example,
> this valid VS code doesn't pass without that patch.
>
> layout (bindless_sampler) writeonly uniform image2D img;
> flat out writeonly image2D image_vs;
>
> void main()
> {
> image_vs = img;
> }
>
> because the spec allows to declare image types as shader inputs/outputs,
> I guess they can be assigned.
However, the commit description *should* be updated.
More information about the mesa-dev
mailing list