On Thu, Nov 05, 2015 at 06:31:37PM -0500, Ilia Mirkin wrote: > On Wed, Nov 4, 2015 at 4:35 PM, <[email protected]> wrote: > > From: Dylan Baker <[email protected]> > > > > I noticed during my fast-skip work that one test[1] changed status (from > > fail -> skip), what I realized is that glslparsertest doesn't know how > > to handle gles3.1 or gles3.2. > > > > This patch adds support for checking 3.1 and 3.2 glsl versions, both in > > setting the config information, and in checking for > > ARB_ES3_x_compatibility extensions when running on a non-GLES or mixed > > piglit build. > > > > [1] [email protected]@[email protected] > > > > This fixes [1] on the i965 driver (fail -> skip), since it now requests > > ARB_ES3_1_compatibility > > > > Signed-off-by: Dylan Baker <[email protected]> > > --- > > > > This was tested with i965 on HSW, and only the mentioned test changes. > > > > tests/glslparsertest/glslparsertest.c | 37 > > +++++++++++++++++++++++++++++++++-- > > 1 file changed, 35 insertions(+), 2 deletions(-) > > > > diff --git a/tests/glslparsertest/glslparsertest.c > > b/tests/glslparsertest/glslparsertest.c > > index e9a2cb3..ca66b4b 100644 > > --- a/tests/glslparsertest/glslparsertest.c > > +++ b/tests/glslparsertest/glslparsertest.c > > @@ -45,6 +45,12 @@ PIGLIT_GL_TEST_CONFIG_BEGIN > > const unsigned int int_version > > = parse_glsl_version_number(argv[3]); > > switch (int_version) { > > + /* This is a hack to support es > > + * > > + * This works because version 1.00, 3.00, 3.10, 3.20 (even > > + * though 3.x should include "es") are unique to GLES, > > there is > > + * no desktop OpenGL shader language 1.00, 3.00, 3.10, or > > 3.20 > > + */ > > case 100: > > config.supports_gl_compat_version = 10; > > config.supports_gl_es_version = 20; > > @@ -53,6 +59,14 @@ PIGLIT_GL_TEST_CONFIG_BEGIN > > config.supports_gl_compat_version = 10; > > config.supports_gl_es_version = 30; > > break; > > + case 310: > > + config.supports_gl_compat_version = 10; > > + config.supports_gl_es_version = 31; > > + break; > > + case 320: > > + config.supports_gl_compat_version = 10; > > + config.supports_gl_es_version = 32; > > + break; > > default: { > > const unsigned int gl_version > > = > > required_gl_version_from_glsl_version(int_version); > > @@ -145,6 +159,15 @@ get_shader_name(GLenum type) > > return NULL; > > } > > > > +static bool > > +glsl_is_es(int version) > > +{ > > + if (version == 100 || version == 300 || version == 310 || version > > == 320) { > > + return true; > > + } > > + return false; > > +} > > + > > /** > > * Attach a dumy shader of the given type. > > */ > > @@ -154,6 +177,8 @@ attach_dummy_shader(GLuint shader_prog, GLenum type) > > const char *shader_template; > > char shader_text[4096]; > > GLint shader; > > + /* this sets the 'es' string at the end of the version, 1.00 > > doesn't have that */ > > + bool es_flag = (glsl_is_es(requested_version) && requested_version > > != 100); > > > > switch (type) { > > case GL_VERTEX_SHADER: > > @@ -183,7 +208,7 @@ attach_dummy_shader(GLuint shader_prog, GLenum type) > > snprintf(shader_text, sizeof(shader_text), > > shader_template, > > requested_version, > > - (requested_version == 300) ? "es" : ""); > > + es_flag ? "es" : ""); > > shader = piglit_compile_shader_text(type, shader_text); > > glAttachShader(shader_prog, shader); > > } > > @@ -228,6 +253,7 @@ test(void) > > GLint size; > > GLenum type; > > char *failing_stage = NULL; > > + bool is_es = glsl_is_es(requested_version); > > > > if (strcmp(filename + strlen(filename) - 4, "frag") == 0) > > type = GL_FRAGMENT_SHADER; > > @@ -302,8 +328,9 @@ test(void) > > > > shader_prog = glCreateProgram(); > > glAttachShader(shader_prog, prog); > > - if (requested_version == 100 || requested_version == 300) > > + if (is_es) { > > why create the separate variable? also i'm a bit conflicted on what > attach_complementary_shader is doing. among other things, it will fail > for non-frag/vertex shaders (and compute is "core" in 3.1 now, along > with optional geom/tess stages with exts). > > otoh, probably not a problem for you to fix. > > With the above done as > > if (glsl_is_es(requested_version)) { > > and the var dropped, this is Reviewed-by: Ilia Mirkin <[email protected]>
Thanks Ilia, I've made the changes locally, I'll hold off pushing this
till tomorrowish in case anyone else has input.
>
> > attach_complementary_shader(shader_prog, type);
> > + }
> > #if PIGLIT_USE_OPENGL
> > if (type == GL_GEOMETRY_SHADER ||
> > type == GL_TESS_CONTROL_SHADER ||
> > @@ -450,6 +477,12 @@ check_version(unsigned glsl_version)
> > } else if (requested_version == 300) {
> >
> > piglit_require_extension("GL_ARB_ES3_compatibility");
> > return;
> > + } else if (requested_version == 310) {
> > +
> > piglit_require_extension("GL_ARB_ES3_1_compatibility");
> > + return;
> > + } else if (requested_version == 320) {
> > +
> > piglit_require_extension("GL_ARB_ES3_2_compatibility");
> > + return;
> > }
> > }
> >
> > --
> > 2.6.2
> >
> > _______________________________________________
> > Piglit mailing list
> > [email protected]
> > http://lists.freedesktop.org/mailman/listinfo/piglit
signature.asc
Description: PGP signature
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
