[Mesa-dev] [PATCH 0/8] EXT_transform_feedback & ARB_transform_feedback2 core support
Marek Olšák
maraeo at gmail.com
Sat Nov 19 12:44:22 PST 2011
Hi everyone,
this patch series implements all the core Mesa and Gallium support for EXT_transform_feedback and ARB_transform_feedback2. It's been tested by me on Radeons and by Christoph Bumiller on Nouveau. I have verified that all transform feedback piglit tests (except the one that requires GLSL 1.3) pass with this code.
Since we were discussing this last time, the Gallium interface has been slightly modified to make it easier to implement by drivers. The Gallium docs have been updated too.
Some streamout-related softpipe and llvmpipe code for the old interface has been disabled. I didn't look at what needs to be done to support the new one.
Please review.
Marek Olšák (8):
mesa: implement DrawTransformFeedback from ARB_transform_feedback2
gallium: disable stream output in drivers that support it
gallium: interface changes necessary to implement transform feedback (v4)
gallium: utility helper functions for stream output
noop: implement stream output
u_blitter: restore stream output targets
u_blitter: implement copy_buffer using stream output
st/mesa: implement EXT_transform_feedback and ARB_transform_feedback2
src/gallium/auxiliary/cso_cache/cso_context.c | 101 +++++++++++++++++
src/gallium/auxiliary/cso_cache/cso_context.h | 8 ++
src/gallium/auxiliary/draw/draw_context.c | 4 +-
src/gallium/auxiliary/draw/draw_context.h | 2 +-
src/gallium/auxiliary/draw/draw_private.h | 2 +-
src/gallium/auxiliary/draw/draw_pt_so_emit.c | 2 +-
src/gallium/auxiliary/tgsi/tgsi_ureg.c | 7 +-
src/gallium/auxiliary/tgsi/tgsi_ureg.h | 18 +++-
src/gallium/auxiliary/util/u_blit.c | 6 +
src/gallium/auxiliary/util/u_blitter.c | 105 +++++++++++++++++-
src/gallium/auxiliary/util/u_blitter.h | 29 +++++
src/gallium/auxiliary/util/u_debug_describe.c | 10 ++
src/gallium/auxiliary/util/u_debug_describe.h | 2 +
src/gallium/auxiliary/util/u_gen_mipmap.c | 3 +
src/gallium/auxiliary/util/u_inlines.h | 12 ++
src/gallium/auxiliary/util/u_simple_shaders.c | 14 ++-
src/gallium/auxiliary/util/u_simple_shaders.h | 8 ++
src/gallium/docs/source/context.rst | 61 +++++++----
src/gallium/docs/source/screen.rst | 3 +
src/gallium/drivers/llvmpipe/lp_state.h | 2 +-
src/gallium/drivers/llvmpipe/lp_state_so.c | 9 ++-
src/gallium/drivers/noop/noop_state.c | 35 ++++++
src/gallium/drivers/nv50/nv50_screen.c | 2 +-
src/gallium/drivers/nvc0/nvc0_screen.c | 2 +-
src/gallium/drivers/nvc0/nvc0_state.c | 9 ++-
src/gallium/drivers/r300/r300_screen.c | 2 +-
src/gallium/drivers/r600/r600_pipe.c | 2 +-
src/gallium/drivers/softpipe/sp_context.c | 2 +-
src/gallium/drivers/softpipe/sp_screen.c | 4 +-
src/gallium/drivers/softpipe/sp_state.h | 2 +-
src/gallium/drivers/softpipe/sp_state_so.c | 9 ++-
src/gallium/include/pipe/p_context.h | 38 ++++---
src/gallium/include/pipe/p_defines.h | 8 +-
src/gallium/include/pipe/p_state.h | 83 +++++++++++---
src/mesa/drivers/dri/i965/brw_draw.c | 3 +-
src/mesa/drivers/dri/i965/brw_draw.h | 3 +-
src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c | 15 ++-
src/mesa/main/api_validate.c | 34 ++++++
src/mesa/main/api_validate.h | 10 ++
src/mesa/main/dd.h | 3 +-
src/mesa/main/mtypes.h | 2 +
src/mesa/main/transformfeedback.c | 65 ++----------
src/mesa/main/transformfeedback.h | 6 +-
src/mesa/main/varray.h | 7 +
src/mesa/main/vtxfmt.c | 1 +
src/mesa/state_tracker/st_atom_rasterizer.c | 7 +-
src/mesa/state_tracker/st_cb_bitmap.c | 3 +
src/mesa/state_tracker/st_cb_clear.c | 3 +
src/mesa/state_tracker/st_cb_drawpixels.c | 3 +
src/mesa/state_tracker/st_cb_drawtex.c | 3 +
src/mesa/state_tracker/st_cb_rasterpos.c | 3 +-
src/mesa/state_tracker/st_cb_xformfb.c | 149 ++++++++++++++++++-------
src/mesa/state_tracker/st_cb_xformfb.h | 12 ++
src/mesa/state_tracker/st_draw.c | 14 ++-
src/mesa/state_tracker/st_draw.h | 6 +-
src/mesa/state_tracker/st_draw_feedback.c | 3 +-
src/mesa/state_tracker/st_extensions.c | 16 +++
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 25 ++++
src/mesa/state_tracker/st_glsl_to_tgsi.h | 6 +
src/mesa/state_tracker/st_program.c | 12 ++
src/mesa/tnl/t_draw.c | 3 +-
src/mesa/tnl/tnl.h | 3 +-
src/mesa/vbo/vbo.h | 4 +-
src/mesa/vbo/vbo_exec_array.c | 93 +++++++++++++++-
src/mesa/vbo/vbo_exec_draw.c | 3 +-
src/mesa/vbo/vbo_rebase.c | 3 +-
src/mesa/vbo/vbo_save_api.c | 11 ++
src/mesa/vbo/vbo_save_draw.c | 3 +-
src/mesa/vbo/vbo_split_copy.c | 3 +-
src/mesa/vbo/vbo_split_inplace.c | 3 +-
70 files changed, 934 insertions(+), 215 deletions(-)
--
1.7.5.4
More information about the mesa-dev
mailing list