[Mesa-dev] [PATCH 12/17] glsl/ast: Allow redeclaration of gl_LastFragData with different precision qualifier.

Francisco Jerez currojerez at riseup.net
Fri Jul 29 00:46:23 UTC 2016


Kenneth Graunke <kenneth at whitecape.org> writes:

> On Wednesday, July 20, 2016 9:49:42 PM PDT Francisco Jerez wrote:
>> ---
>>  src/compiler/glsl/ast_to_hir.cpp | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>> 
>> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
>> index c050a3f..ac651a9 100644
>> --- a/src/compiler/glsl/ast_to_hir.cpp
>> +++ b/src/compiler/glsl/ast_to_hir.cpp
>> @@ -3948,6 +3948,19 @@ get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
>>  
>>        earlier->data.depth_layout = var->data.depth_layout;
>>  
>> +   } else if (state->has_framebuffer_fetch() &&
>> +              !state->is_version(420, 300) &&
>
> I think you can drop the is_version check - there won't be an
> gl_LastFragData to redeclare in the other case, so earlier == NULL
> and we would have bailed out earlier.
>
Good point, dropped locally.

> With the caveat that I haven't seen the specs, and am just assuming
> they work like I think they should, the series looks good to me.
>
> For the series:
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>
Thanks.

>> +              strcmp(var->name, "gl_LastFragData") == 0 &&
>> +              var->type == earlier->type &&
>> +              var->data.mode == ir_var_auto) {
>> +      /* According to the EXT_shader_framebuffer_fetch spec:
>> +       *
>> +       *   "By default, gl_LastFragData is declared with the mediump precision
>> +       *    qualifier. This can be changed by redeclaring the corresponding
>> +       *    variables with the desired precision qualifier."
>> +       */
>> +      earlier->data.precision = var->data.precision;
>> +
>>     } else if (allow_all_redeclarations) {
>>        if (earlier->data.mode != var->data.mode) {
>>           _mesa_glsl_error(&loc, state,
>> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160728/f462c40c/attachment.sig>


More information about the mesa-dev mailing list