<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Tom,<br>
<br>
<div class="moz-cite-prefix">On 6/10/2014 12:03 PM, Tom Stellard
wrote:<br>
</div>
<blockquote cite="mid:20140610180338.GI4829@yyz" type="cite">
<pre wrap="">On Sat, Jun 07, 2014 at 01:24:39PM -0700, Greg Fischer wrote:
</pre>
<blockquote type="cite">
<pre wrap="">LunarG, with support from Valve, announces the GlassyMesa project, an
effort to bring the LLVM compiler infrastructure to Mesa.
</pre>
</blockquote>
<pre wrap="">
This is very interesting. Have you done any testing with any of the
Gallium drivers?</pre>
</blockquote>
<br>
No, we have not yet tested other paths, but we are interested in
ensuring they work.<br>
<br>
<blockquote cite="mid:20140610180338.GI4829@yyz" type="cite">
<pre wrap="">How difficult would it be to bypass the LLVM IR -> GLSL IR -> TGSI
conversion and pass LLVM IR directly to drivers like radeonsi which
already use LLVM?</pre>
</blockquote>
<br>
Ideally (from a technical perspective), we'd like to skip going
through GLSL IR; it's a higher-level language than LLVM IR and we
suspect it's more efficient in the long run to push LLVM IR lower
into the stack. The conventions for LLVM-IR usage are a bit
different between LunarGLASS and radeonsi, but the worst case of
transforming LunarGLASS-LLVM-IR -> radeonsi-LLVM-IR should be far
more efficient than going through lots of different
representations. We'll look deeper at radeonsi and get a more
concrete answer.<br>
<br>
Our current use of GLSL IR has two key advantages: it allows more
expedient comparison of the middle ends by leveraging the existing
back end, and ongoing it makes the Glassy middle end available to
the other back ends.<br>
<br>
<blockquote cite="mid:20140610180338.GI4829@yyz" type="cite">
<pre wrap="">What are you plans for getting this upstream into Mesa?</pre>
</blockquote>
<br>
We're proceeding with getting a fuller technical characterization of
GlassyMesa, as well as discussing broadly in the community, to help
decide what's best for Mesa, and form recommendations from there.<br>
<br>
Thanks for you interest,<br>
JohnK<br>
<br>
<br>
<blockquote cite="mid:20140610180338.GI4829@yyz" type="cite">
<pre wrap="">-Tom
</pre>
<blockquote type="cite">
<pre wrap="">What is GlassyMesa?
GlassyMesa utilizes LunarGLASS, the LLVM compiler stack with modifications
allowing it to represent and optimize 3D shaders and target GPUs. This
also includes use of glslang, the Khronos GLSL reference parser. It also
includes a translation pass from LLVM IR to GLSL IR, the IR used by Mesa
compiler backends. A slide deck with a block diagram is available at
lunarg.com/wp-content/uploads/2014/06/GlassyMesaSlides-05Jun2014.pdf
Why create GlassyMesa?
LLVM brings state-of-the-art compiler optimizations to Mesa immediately. As
importantly, it brings a modern Intermediate Representation (IR) which can
be the basis for rapid development of new optimizations as shaders and
shader languages evolve as well as enable multiple teams to develop
components independently more efficiently than current IRs.
Furthermore, this capability can be used as a basis for development
of compiler backends using the LLVM backend infrastructure.
What is the current state of GlassyMesa?
GlassyMesa is in very early development. It is a proof-of-concept to
demonstrate this approach can deliver shader runtime improvements and will
continue to evolve in capability. Much functionality remains to be
developed. No effort has been made yet to tune shader runtime or compile
time performance. It is running only a handful of traces to our knowledge.
Initial performance results are promising.
Why announce GlassyMesa now?
LunarG invites the feedback and cooperation of the Mesa community to this
effort. It believes that an effort like this requires early and frequent
input and support from the community.
What are the plans for GlassyMesa?
LunarG is planning to actively improve GlassyMesa functionality and
performance over the coming months.
Where can I find GlassyMesa?
GlassyMesa is available at: *github.com*:LunarG/steamos_mesa.git, at branch
2014ww23.2_i965-LunarGlass_drop1
What is the licensing?
LunarGLASS is released under a BSD-style license. See
<a class="moz-txt-link-freetext" href="http://www.lunarglass.org">http://www.lunarglass.org</a> <a class="moz-txt-link-rfc2396E" href="http://www.lunarglass.org/faq"><http://www.lunarglass.org/faq></a>.
</pre>
</blockquote>
<pre wrap="">
</pre>
<blockquote type="cite">
<pre wrap="">_______________________________________________
mesa-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a>
</pre>
</blockquote>
<pre wrap="">
_______________________________________________
mesa-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>