Hi Tom/Blaz/Piglit,<br><br>Recently, when I've been working on changes to the piglit CL tests, I've usually had to run with a modified version of piglit-framework-cl-program.c<br><br>In general, I've had to comment out all of the following code in order to get the Nvidia and Apple implementations to run things for many tests.<br>
<br>Around line 225:<br>    if(env.clc_version <= 10) {<br>        char* template = "-D CL_VERSION_1_0=100 ";<br>        char* old = build_options;<br>        build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));<br>
        strcpy(build_options, old);<br>        sprintf(build_options+strlen(old), template);<br>        free(old);<br>    }<br>    if(env.clc_version <= 11) {<br>        char* template = "-D __OPENCL_C_VERSION__=1%d0 ";<br>
        char* old = build_options;<br>        build_options = malloc((strlen(old) + strlen(template) + 1) * sizeof(char));<br>        strcpy(build_options, old);<br>        sprintf(build_options+strlen(old), template, env.clc_version%10);<br>
        free(old);<br>    }<br><br><br>I'm of the opinion that we should remove these two IF blocks altogether. When the CL version is 1.0, these macros are not required to be defined (at least they weren't in CL 1.0). Also, by defining CL_VERSION_1_0 here, we actually redefine the existing macro on the Apple implementation, which makes ALL tests fail to build with an error.  Part of me says that we should only be overriding the version declarations through "-cl-std<span class="sewn3nudcc46lg6"></span><span class="sewn3nudcc46lg6"></span>=" in the test's build options.<br>
<br>At that point, we can add tests to make sure that the implementation respects the requested version, and we can stop assuming that redefining those macros actually does what we want.<br><br>Additionally, I've attached a patch to the piglit-framework-cl-program.c which only inserts " -cl-std=CL%d.%d" when the test's build_options configuration hasn't explicitly overridden the -cl-std value already.  Without this, it is possible to have a build_options line that looks like "-cl-std=CL1.1 -cl-std=CL1.2", which is very likely wrong.<br>
<br>Anyway, let me know what you think.  I'd like to come to some sort of conclusion on whether Apple/Nvidia are wrong, or whether piglit needs some tweaks.<span class="sewn3nudcc46lg6"></span><span class="sewn3nudcc46lg6"></span><br>
<br>--Aaron<br>