mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-20 00:28:08 +02:00
This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <brianp@vmware.com> |
||
|---|---|---|
| .. | ||
| Makefile | ||
| rbug_context.c | ||
| rbug_context.h | ||
| rbug_core.c | ||
| rbug_objects.c | ||
| rbug_objects.h | ||
| rbug_public.h | ||
| rbug_screen.c | ||
| rbug_screen.h | ||
| README | ||
| SConscript | ||
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 state tracker 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 <jrfonseca@tungstengraphics.com> Jakob Bornecrantz <jakob@vmware.com>