[Mesa-dev] Summer of Code ideas (maybe just an idea wishlist?)

Kenneth Graunke kenneth at whitecape.org
Mon Mar 23 21:16:20 PDT 2015


On Monday, March 23, 2015 05:02:51 PM Aaron Watry wrote:
> On a related note,
> 
> Has anyone ported shader-db over to working on R600/RadeonSI/<anything
> non-intel>?  I've been meaning to take a look at the NIR->TGSI pass and see
> if there's an easy way to hook it up to the radeon drivers, but I wanted to
> be able to get shader-db up and running on that hardware first so that we
> could get some before/after numbers (I'm assuming that R600 w/o SB will be
> the main radeon driver that benefits, but I'd love to be proven wrong).
> 
> --Aaron

It shouldn't be hard to get working.

The shader-db runner doesn't actually draw anything, so you need to
precompile assembly code at glLinkProgram time, making some assumptions
about the GL state that will be used.  We manage to guess correctly
most of the time on modern Intel hardware.

Beyond that, you just need to have the driver emit a few messages via
KHR_debug:

   static GLuint msg_id = 0;
   _mesa_gl_debug(ctx, &msg_id,
                  MESA_DEBUG_SOURCE_SHADER_COMPILER,
                  MESA_DEBUG_TYPE_OTHER,
                  MESA_DEBUG_SEVERITY_NOTIFICATION,
                  "%s shader: %d",
                  type_of_shader, /* "FS", "VS" and the like */
                  num_instructions);

That should be all you need for the original shader-db which most of
the Intel folks use (git://anongit.freedesktop.org/mesa/shader-db).

Eric has a new reboot of the project that uses apitraces of files rather
than Piglit shader_test files.  The Broadcom vc4 apparently has so much
non-orthagonal state that it's impractical to guess the state during a
precompile, so he wanted to use the actual state from the trace.

Everyone else has kept using the original version because it's *much*
faster - on my Haswell, it only takes about 2-3 minutes to process
~24,000 shaders from ~290 applications.

I assume Radeon and Nouveau can probably guess most state correctly,
so using the original shader-db would make more sense.  Freedreno
might have to use Eric's apitrace based solution.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150323/9d56a938/attachment.sig>


More information about the mesa-dev mailing list