Tapani Pälli <tapani.pa...@intel.com> writes: > Dynamic indexing of sampler arrays is prohibited by GLSL ES 3.00. > Earlier versions allow 'constant-index-expression' indexing, where > index can contain a loop induction variable. > > Patch allows dynamic indexing for sampler arrays when GLSL ES < 3.00. > This change makes 'sampler-array-index.frag' parser test in Piglit > pass + fishgl.com works when running Chrome on OpenGL ES 2.0 backend > > v2: small change and some more commit message (Tapani) > v3: refactor checks to make it more readable (Ian Romanick) > v4: change warning comment in GLSL ES case (Curro) > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > Signed-off-by: Kalyan Kondapally <kalyan.kondapa...@intel.com> > Cc: "10.5" and "10.6" <mesa-sta...@lists.freedesktop.org> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84225 > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
Looks OK to me, Reviewed-by: Francisco Jerez <curroje...@riseup.net> > --- > src/glsl/ast_array_index.cpp | 36 ++++++++++++++++++------------------ > 1 file changed, 18 insertions(+), 18 deletions(-) > > diff --git a/src/glsl/ast_array_index.cpp b/src/glsl/ast_array_index.cpp > index 752d86f..2c79002 100644 > --- a/src/glsl/ast_array_index.cpp > +++ b/src/glsl/ast_array_index.cpp > @@ -226,24 +226,24 @@ _mesa_ast_array_index_to_hir(void *mem_ctx, > * dynamically uniform expression is undefined. > */ > if (array->type->without_array()->is_sampler()) { > - if (!state->is_version(130, 100)) { > - if (state->es_shader) { > - _mesa_glsl_warning(&loc, state, > - "sampler arrays indexed with non-constant " > - "expressions is optional in %s", > - state->get_version_string()); > - } else { > - _mesa_glsl_warning(&loc, state, > - "sampler arrays indexed with non-constant " > - "expressions will be forbidden in GLSL 1.30 " > - "and later"); > - } > - } else if (!state->is_version(400, 0) && > !state->ARB_gpu_shader5_enable) { > - _mesa_glsl_error(&loc, state, > - "sampler arrays indexed with non-constant " > - "expressions is forbidden in GLSL 1.30 and " > - "later"); > - } > + if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable) { > + if (state->is_version(130, 300)) > + _mesa_glsl_error(&loc, state, > + "sampler arrays indexed with non-constant " > + "expressions are forbidden in GLSL %s " > + "and later", > + state->es_shader ? "ES 3.00" : "1.30"); > + else if (state->es_shader) > + _mesa_glsl_warning(&loc, state, > + "sampler arrays indexed with non-constant " > + "expressions will be forbidden in GLSL " > + "3.00 and later"); > + else > + _mesa_glsl_warning(&loc, state, > + "sampler arrays indexed with non-constant " > + "expressions will be forbidden in GLSL " > + "1.30 and later"); > + } > } > } > > -- > 2.1.0 > > _______________________________________________ > mesa-stable mailing list > mesa-sta...@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-stable
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev