[Mesa-dev] [PATCH] compiler/glsl: Allow the sequence operator to be a constant expression

Lars Hamre chemecse at gmail.com
Wed Mar 23 01:50:35 UTC 2016


You are correct, it should be state->is_version(120, 300).
I will submit an updated patch.

On Tue, Mar 22, 2016 at 3:32 PM, Eduardo Lima Mitev <elima at igalia.com>
wrote:

> On 03/22/2016 02:48 PM, Lars Hamre wrote:
>
>> Resending this patch because it received no response last week.
>>
>> Allow the sequence operator to be a constant expression in GLSL ES
>> versions prior
>> to GLSL ES 3.0
>>
>> Fixes the following piglit test:
>>
>> /all/spec/glsl-es-1.0/compiler/array-sized-by-sequence-in-parenthesis.vert
>>
>>
> I confirm this fixes the above test, but it also regresses test:
>
>
> /all/spec/glsl-1.20/compiler/structure-and-array-operations/array-size-sequence-in-parenthesis.vert.
>
> Maybe you are missing a version check?
>
> Eduardo
>
> This mirrors the logic from process_initializer() which performs the
>> same check for constant variable initialization with sequence operators.
>>
>> Section 4.3.3 (Constant Expressions) of the GLSL 4.30.9 spec and of the
>> GLSL ES 3.00.4 spec say that the result of a sequence operator is not a
>> constant expression; however, we should not mandate that for lower GLSL
>> versions.
>>
>> Signed-off-by: Lars Hamre <chemecse at gmail.com>
>>
>> ---
>>   src/compiler/glsl/ast_to_hir.cpp | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/compiler/glsl/ast_to_hir.cpp
>> b/src/compiler/glsl/ast_to_hir.cpp
>> index 5262bd8..4037468 100644
>> --- a/src/compiler/glsl/ast_to_hir.cpp
>> +++ b/src/compiler/glsl/ast_to_hir.cpp
>> @@ -2125,7 +2125,9 @@ process_array_size(exec_node *node,
>>      }
>>
>>      ir_constant *const size = ir->constant_expression_value();
>> -   if (size == NULL || array_size->has_sequence_subexpression()) {
>> +   if (size == NULL ||
>> +       (state->is_version(430, 300) &&
>> +        array_size->has_sequence_subexpression())) {
>>         _mesa_glsl_error(& loc, state, "array size must be a "
>>                          "constant valued expression");
>>         return 0;
>> --
>> 2.5.0
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160322/af6a7507/attachment-0001.html>


More information about the mesa-dev mailing list