This patch is still unreviewed. Sam
On 30/01/18 08:50, Samuel Iglesias Gonsálvez wrote: > According to GLSL ES 3.2 spec, see table in 9.2.1 "Linked Shaders" > section, the precision qualifier should match for uniform variables. > This also applies to previous GLSL ES 3.x specs. > > This 'if' checks the condition for uniform variables, while for UBOs > it is checked in link_interface_blocks.cpp. > > Fixes: b50b82b8a553 > ("glsl/es31: precision qualifier doesn't need to match in shader interface > block members") > > Signed-off-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> > --- > src/compiler/glsl/linker.cpp | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp > index ce101935b01..050b2906f6b 100644 > --- a/src/compiler/glsl/linker.cpp > +++ b/src/compiler/glsl/linker.cpp > @@ -1134,15 +1134,11 @@ cross_validate_globals(struct gl_shader_program *prog, > > return; > } > - /* Only in GLSL ES 3.10, the precision qualifier should not match > - * between block members defined in matched block names within a > - * shader interface. > - * > - * In GLSL ES 3.00 and ES 3.20, precision qualifier for each block > - * member should match. > + > + /* Check the precision qualifier matches for uniform variables. For > UBOs, > + * it is checked in link_interface_blocks.cpp. > */ > - if (prog->IsES && (prog->data->Version != 310 || > - !var->get_interface_type()) && > + if (prog->IsES && !var->get_interface_type() && > existing->data.precision != var->data.precision) { > if ((existing->data.used && var->data.used) || > prog->data->Version >= 300) { > linker_error(prog, "declarations for %s `%s` have "
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev