<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>