Hi Tom,

On 6/10/2014 12:03 PM, Tom Stellard wrote:
On Sat, Jun 07, 2014 at 01:24:39PM -0700, Greg Fischer wrote:
LunarG, with support from Valve, announces the GlassyMesa project, an
effort to bring the LLVM compiler infrastructure to Mesa.
This is very interesting.  Have you done any testing with any of the
Gallium drivers?

No, we have not yet tested other paths, but we are interested in ensuring they work.

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?

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.

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.

What are you plans for getting this upstream into Mesa?

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.

Thanks for you interest,
JohnK


-Tom

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
http://www.lunarglass.org <http://www.lunarglass.org/faq>.
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to