mesa/src/gallium/auxiliary/driver_rbug
Yonggang Luo a9e2c699aa util/c11: Update function u_thread_create to be c11 conformance
Do not assume thrd_t to be a pointer or integer, as the C11 standard tells us:
  thrd_t: implementation-defined complete object type identifying a thread
At https://en.cppreference.com/w/c/thread
So we always return the thread creation return code instead of thrd_t value, and judge the return
code properly.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15087>
2022-06-15 17:37:17 +00:00
..
README
rbug_context.c gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00
rbug_context.h gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00
rbug_core.c util/c11: Update function u_thread_create to be c11 conformance 2022-06-15 17:37:17 +00:00
rbug_objects.c gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00
rbug_objects.h gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00
rbug_public.h
rbug_screen.c gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00
rbug_screen.h gallium/rbug: replace simple_list.h with list.h 2022-04-22 09:39:43 -07:00

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>