<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div id="magicdomid80" class="ace-line"><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Hi
everybody,</span></div>
<div id="magicdomid81" class="ace-line"><br>
</div>
<div id="magicdomid5" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">recently
I have sent to the list the first series with patches for
testing ARB_gl_spirv [1]. On the cover letter I mention
"barebone tests" and "borrowed tests", and the need f</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">or</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
discussion, so here we are. And sorry if the email is somewhat
long and messy, but it is intended as a brainstorm. FWIW, this
was already introduced </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">i</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">n my
presentation at FOSDEM, as some people (specifically Mark Janes)
asked about that.</span></div>
<div id="magicdomid6" class=""><br>
</div>
<div id="magicdomid7" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">*
Barebone tests</span></div>
<div id="magicdomid8" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Basically
smoke testing for all the general shader features supported
(uniforms, UBO, SSBO, etc), plus tests for some specific
ARB_gl_spirv features (like specialization constants). Why "just
barebone"? The issue with this extension is that the
functionality it covers is basically all current GLSL
functionality, with some exceptions, so it is complex to get a
full testing coverage from scratch. So the idea would be </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">to
</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">touch
a little of everything, so any implementation of the extension
should pass, but would not provide a full coverage of the
extension for practical reasons. We would le</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">ave</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> that
for the "borrowed tests" (more about that below)</span></div>
<div id="magicdomid9" class=""><br>
</div>
<div id="magicdomid10" class=""><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">An
additional advantage of this approach is that </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">those
</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">GLSL
tests are compatible </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">with</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">
the ARB_gl_spirv/GL_KHR_vulkan_glsl and </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">would
not need an automatic conversion like the borrowed tests from
other specs (more about that below).</span></div>
<div id="magicdomid11" class=""><br>
</div>
<div id="magicdomid12" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">The
series I sent ha</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> 25
tests. On our development branch we have ~70 individual tests,
and we foresee that the final version would have a little more
tha</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">n</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> 100
tests.</span></div>
<div id="magicdomid13" class=""><br>
</div>
<div id="magicdomid14" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">We
also have some hundred generated builtin tests. Those generate
SPIR-V</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">
directly</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">. This
allows t</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">esting</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> them
without the need </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">to</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> rely
on the borrowed tests, so </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">it
</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">avoid</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> the
dependency on glslang to test them. It also reduces the number
of builtin tests needed for a SPIR-V run, as we don't bother
generating tests that doesn't make sense for SPIR-V, such as
operators with mixed types.</span></div>
<div id="magicdomid15" class=""><br>
</div>
<div id="magicdomid16" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Th</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">e</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">s</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">e</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
barebone tests only add a dependency to spirv-tools, as the
SPIR-V is included as assembly. And in any case, it is executed
as a</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">n</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
external binary, as we assumed that a runtime dependency would
be easier to be accepted tha</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">n</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> a
build dependency. But it would be easy to replace this with a
dependency </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">on</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
spirv-tools, and call the library directly. As far as we know,
adding a dependency to spirv-tools would be considered as
"fine".</span></div>
<div id="magicdomid17" class=""><br>
</div>
<div id="magicdomid18" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Some
people would argue that most of that is already tested on other
specs, so it would be redundant, and we should only test the
ARB_gl_spirv specifics, and let the full general coverage on the
borrowed tests. But there are some extra things to discuss about
that.</span></div>
<div id="magicdomid19" class=""><br>
</div>
<div id="magicdomid20" class=""><br>
</div>
<div id="magicdomid21" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">*
Borrowed tests</span></div>
<div id="magicdomid22" class=""><br>
</div>
<div id="magicdomid23" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Those
are the shader_tests that we re-use from other specification</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">. In
this case, the conversion to SPIR-V is a two pass process, done
by a custom script. I</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">n
the</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> first
</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">pass
</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">the
script checks the shader and fix</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">es</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> it in
order to be compatible with glslang shader expectations, and
then the script calls glslang to convert it to SPIR-V. Fix in
this case means things like change gl_Vertex/gl_FragColor to
generic in/outs. In addition to fix</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">ing</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> the
shaders, the script ha</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> some
features like mark</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">ing</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> the
tests to be skipped on the following piglit run, and allows </span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">storing</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> the
SPIR-V assembly </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">i</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">n a</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">n</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
external file, or include it </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">i</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">n the
shader</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">_test</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
itself. The former is mostly useful for borrowed tests, the
latter for barebone tests.</span></div>
<div id="magicdomid24" class=""><br>
</div>
<div id="magicdomid25" class=""><br>
</div>
<div id="magicdomid26" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Nicolai
started that script, that we have been using and extended for a
while. Right now we have the current conversion rate:</span></div>
<div id="magicdomid27" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
piglit/tests directory: [2028] skip: 537, excluded: 0, success:
1363, fail: 128</span></div>
<div id="magicdomid28" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
piglit/generated_tests directory: [32354] skip: 1110, excluded:
0, success: 31244, fail: 0</span></div>
<div id="magicdomid29" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">That
is a (IMHO) good conversion rate right now.</span></div>
<div id="magicdomid30" class=""><br>
</div>
<div id="magicdomid31" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Issues:</span></div>
<div id="magicdomid32" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Dependency on glslang to create the binaries: right now the
GLSL->SPIR-V pass is done using glslang. As with spirv-tools,
as a runtime binary, but again we could use the library. The
problem with this</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">
approach</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> is
that after talking with some people, they don't consider glslang
as a "fine" dependency of piglit. The library API is somewhat
unstable (although not sure if that changed lately), and there
are also some issues with the SPIR-V generated now and then. So
there is the possiblity of this dependency to be vetoed. This is
also the reason barebone tests include the assembly, and only
depend on spirv-tools to re-assemble it. The idea is that for
the barebone tests it </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">sh</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">ould
not matter how SPIR-V</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">
was generated</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">, you
could do it writing SPIR-V assembly directly without any tool,
for example. FWIW, as part of our work we created issues on
glslang and provided some patches, and we got feedback/fixes, so
the library is active and receptive to suggestions.</span></div>
<div id="magicdomid33" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span></div>
<div id="magicdomid34" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Dependency on glslang to fix the shaders: this is something new
that didn't have Nicolai</span><span
class="author-a-9z81zz76z2z81zz75zz67zz80z49z90zkz85zqhp">'s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
original script. Initially we added support for fixing uniforms
lacking explicit location</span><span
class="author-a-9jz72zz67zz65zz75zz70zhz85zz72zz81z4z70zb2s">s</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> on
the script directly. But glslang has already some limited
support for this, and other automatic fixes, so we moved to a
mixed approach of using glslang features plus some minor fixes.
The main advantage of this is that reduces how much the script
modifies GLSL, letting glslang to do that. So if finally glslang
is vetoed, we would need to reimplement those features.</span></div>
<div id="magicdomid35" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span></div>
<div id="magicdomid36" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Not other real alternative right now: if glslang is vetoed, we
would need to face that right now there is no real alternative.
There is one coming, as Ian is working on a Mesa backend for
SPIR-V [1], first suggested on a previous thread [2].
Additionally, Ian's work adds an interesting alternative. If
Mesa itself is able to do the GLSL->SPIR-V pass, then it
would be feasible to add a special debug mode configured by an
envvar, so internally it would do the GLSL->SPIR-V pass, and
then the linking would use the ARB_gl_spirv path. In that way we
would not need a custom script on piglit, </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">but
to enable</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> this
envvar. But then this backend would need to also support shader
fixing (more advanced tha</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">n</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
glslang), and this would not work for non-Mesa drivers using
piglit (although I</span><span
class="author-a-9z81zz76z2z81zz75zz67zz80z49z90zkz85zqhp"> a</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">m not
sure if this is a use case with high priority for piglit). In
any case, as I said, this alternative is still not available.</span></div>
<div id="magicdomid37" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span></div>
<div id="magicdomid38" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Slow conversion: assuming that glslang dependency is okish,
ideally we would like the GLSL->SPIR-V conversion to be done
while building piglit, as with the generated tests. But the
problem is that it is a slow process. Tests directory need 2min,
and generated_tests need 50 min on my i5. Those times are with
one process, but although we added support for forking N
processes, generated_tests conversion would be already too slow,
25 minutes on my i5.</span></div>
<div id="magicdomid39" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span></div>
<div id="magicdomid40" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Slow piglit run: with ARB_gl_spirv we would be duplicating the
tests to run on the shaders.py profile. And in practice, the
time needed would be more than the double</span></div>
<div id="magicdomid41" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span></div>
<div id="magicdomid42" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Due to
all this issues, one alternative would be</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z"> to</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> not
include/run by default the SPIR-V borrowed tests, and only
include the script and instructions to use</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z"> in
piglit</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">, so </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">that
</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">any
driver developer interested </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">in
the feature can </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">use</span><span
class="author-a-9z81zz76z2z81zz75zz67zz80z49z90zkz85zqhp"> it</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">. But
as we know, usually tools that are not used tend to rot.</span></div>
<div id="magicdomid43" class=""><br>
</div>
<div id="magicdomid44" class=""><br>
</div>
<div id="magicdomid45" class=""><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">Taking
into account the above considerations, our suggestion is the
following</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
compromise:<br>
* Go on with the barebone tests. Add a spirv-tools runtime
dependency (those tests would just fail without spirv-tools)<br>
</span></div>
<div id="magicdomid46" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Accept </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">the
use of </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">glslang,
as there is no real alternative right now.</span></div>
<div id="magicdomid47" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> * </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">Continue</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
execut</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">ing
it</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> as a
binary, so</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">
that it remains</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> a
runtime dependency. This way, platforms not </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">implementing
the </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">ARB_gl_spirv</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">
extension</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> w</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">on't
have a</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> d</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">ependency
on</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
glslang, and th</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">o</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">se
tests w</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">ill</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">simply</span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> fail</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z"> or
be </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">skip</span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">pped
.</span></div>
<div id="magicdomid48" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> * </span><span
class="author-a-z78zz79zz85zz81zz88zlcz82zajz83z9xz83z1z90z">Only
convert to SPIR-V the shaders of the test directory and not the
generated_tests</span></div>
<div id="magicdomid49" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
* Not only because of the time to convert the generated_tests. </span></div>
<div id="magicdomid50" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
* Also because as mentioned, we are adding SPIR-V generated
tests for some of the existing cases.</span></div>
<div id="magicdomid51" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
* Revisit if generated_tests got slimmed</span></div>
<div id="magicdomid52" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Get the shader.py profile to do a new run but passing a --spirv
option to the test directory (or perhaps a new
generated_spirv_tests directory)</span></div>
<div id="magicdomid53" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> *
Revisit everything when the Mesa GLSL->SPIR-V backend got in
good shape.</span></div>
<div id="magicdomid54" class=""><br>
</div>
<div id="magicdomid55" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">Opinions?</span></div>
<div id="magicdomid56" class=""><br>
</div>
<div id="magicdomid57" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">PS: if
you are curious, here the comparison of a full piglit shader.py
run using GLSL vs using SPIR-V with our really-dirty development
branch for i965 on Skylake:</span></div>
<div id="magicdomid58" class=""><br>
</div>
<div id="magicdomid59" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
name: 20180418-glsl-code-p 20180418-spirv-code-</span></div>
<div id="magicdomid60" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
---- -------------------- --------------------</span></div>
<div id="magicdomid61" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
pass: 30475 28324</span></div>
<div id="magicdomid62" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
fail: 15 287</span></div>
<div id="magicdomid63" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
crash: 5 41</span></div>
<div id="magicdomid64" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
skip: 3887 5730</span></div>
<div id="magicdomid65" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
timeout: 0 0</span></div>
<div id="magicdomid66" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
warn: 0 0</span></div>
<div id="magicdomid67" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> incomplete:
0 0</span></div>
<div id="magicdomid68" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> dmesg-warn:
0 0</span></div>
<div id="magicdomid69" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj"> dmesg-fail:
0 0</span></div>
<div id="magicdomid70" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
changes: 0 2176</span></div>
<div id="magicdomid71" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
fixes: 0 9</span></div>
<div id="magicdomid72" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">regressions:
0 324</span></div>
<div id="magicdomid73" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">
total: 34382 34382</span></div>
<div id="magicdomid74" class=""><br>
</div>
<div id="magicdomid75" class=""><br>
</div>
<div id="magicdomid76" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">[1] </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj url"><a
href="https://lists.freedesktop.org/archives/piglit/2018-April/024145.html">https://lists.freedesktop.org/archives/piglit/2018-April/024145.html</a></span></div>
<div id="magicdomid77" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">[2] </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj url"><a
href="https://lists.freedesktop.org/archives/mesa-dev/2017-November/176407.html">https://lists.freedesktop.org/archives/mesa-dev/2017-November/176407.html</a></span></div>
<div id="magicdomid78" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">[3] </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj url"><a
href="https://lists.freedesktop.org/archives/mesa-dev/2017-May/156592.html">https://lists.freedesktop.org/archives/mesa-dev/2017-May/156592.html</a></span></div>
<div id="magicdomid79" class=""><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj">[4] </span><span
class="author-a-z70zz78zz71zo47z85zvz69zrmz67ztz72zz67zj url"><a
href="https://fosdem.org/2018/schedule/event/spirv/">https://fosdem.org/2018/schedule/event/spirv/</a></span></div>
</body>
</html>