mesa/src/gallium/auxiliary/driver_rbug
Emma Anholt 17332ceb0f mesa/st: Add an optional GLSL link fail msg to finalize_nir.
GLES2 drivers are allowed to reject some GLSL constructs, like dynamic
loop bounds (which neither i915g nor vc4 can fully support), but gallium
hasn't had any way to trigger a link failure.  Add a return msg to the
finalize_nir hook, which is called at the end of GLSL linking, and use
that.  This means that some other callers of finalize need to do something
with the msg, and we (for now) just throw it away.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12218>
2021-09-06 18:09:25 +00:00
..
README
rbug_context.c gallium: add take_ownership into set_sampler_views to skip reference counting 2021-08-20 15:04:20 +00:00
rbug_context.h
rbug_core.c gallium: split transfer_(un)map into buffer_(un)map and texture_(un)map 2021-05-21 17:38:04 +00:00
rbug_objects.c gallium: split transfer_(un)map into buffer_(un)map and texture_(un)map 2021-05-21 17:38:04 +00:00
rbug_objects.h
rbug_public.h
rbug_screen.c mesa/st: Add an optional GLSL link fail msg to finalize_nir. 2021-09-06 18:09:25 +00:00
rbug_screen.h

README

                              RBUG PIPE DRIVER


= About =

This directory contains a Gallium3D remote debugger pipe driver.
It provides remote debugging functionality.


= Usage =

Do

   GALLIUM_RBUG=true progs/trivial/tri

which should open gallium remote debugging session. While the program is running
you can launch the small remote debugging application from progs/rbug. More
information is in that directory. Also for a gui see:

   http://cgit.freedesktop.org/mesa/rbug-gui


= Integrating =

You can integrate the rbug pipe driver either inside the gallium frontend or the 
target. The procedure on both cases is the same. Let's assume you have a 
pipe_screen obtained by the usual means (variable and function names are just
for illustration purposes):

  real_screen = real_screen_create(...);

The rbug screen is then created by doing

  rbug_screen = rbug_screen_create(real_screen);

You can then simply use rbug_screen instead of real_screen.

You can create as many contexts you wish from rbug_screen::context_create they
are automatically wrapped by rbug_screen.


--
Jose Fonseca <jfonseca@vmware.com>
Jakob Bornecrantz <jakob@vmware.com>