<div dir="ltr">On 14 October 2013 12:44, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 10/12/2013 10:11 AM, Paul Berry wrote:<br>
> Previously, built-in-constants looked at required_glsl_version to<br>
> determine what to include in the "#version" directive, but it looked<br>
> at glsl_version (the maximum version supported by the implementation)<br>
> to decide whether to test geometry shaders.  As a result, it when<br>
> testing a built-in constant whose required_glsl_version was less than<br>
> 150, it would try to create a geometry shader using a "#version"<br>
> directive less than 150, leading to GL errors.<br>
><br>
> This patch prevents the problem by only testing geometry shaders when<br>
> required_glsl_version >= 150.<br>
<br>
</div>It's actually even more broken than that. :(  Sorry about that.<br>
<br>
If required_glsl_version or glsl_version is 300 (for OpenGL ES 3.0), it<br>
will also try to create a geometry shader.<br>
<br>
How about<br>
<br>
    if (required_glsl_version >= 150 && required_glsl_version != 300)<br>
<br>
instead?<br></blockquote><div><br></div><div>Oops, good call.  With that fixed, do I have your r-b?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5"><br>
> ---<br>
>  tests/shaders/built-in-constants.c | 2 +-<br>
>  1 file changed, 1 insertion(+), 1 deletion(-)<br>
><br>
> diff --git a/tests/shaders/built-in-constants.c b/tests/shaders/built-in-constants.c<br>
> index 06850b5..3a2a784 100644<br>
> --- a/tests/shaders/built-in-constants.c<br>
> +++ b/tests/shaders/built-in-constants.c<br>
> @@ -350,7 +350,7 @@ piglit_init(int argc, char **argv)<br>
>       test_vs = glCreateShader(GL_VERTEX_SHADER);<br>
>       test_fs = glCreateShader(GL_FRAGMENT_SHADER);<br>
><br>
> -     if (glsl_version >= 150)<br>
> +     if (required_glsl_version >= 150)<br>
>               test_gs = glCreateShader(GL_GEOMETRY_SHADER);<br>
><br>
>       for (i = 0; i < num_tests; i++) {<br>
><br>
<br>
</div></div></blockquote></div><br></div></div>