I believe I've addressed all the feedback from last time (except Marek's suggestion to use clear_buffer instead of an inline write for QUERY_TARGET support as I don't think that's an improvement), as well as adding an nvc0 implementation. It passes the test that Glenn wrote a while back:
http://patchwork.freedesktop.org/patch/63921/ I haven't heard at all from the Intel folk to see if this interface will be sufficient for them, but since it works for Gallium, I guess it ought to be. Ilia Mirkin (7): mesa: add driver interface for writing query results to buffers mesa: add core implementation of ARB_query_buffer_object gallium: add a way to store query result into buffer gallium: add PIPE_CAP_QUERY_BUFFER_OBJECT st/mesa: use the occlusion predicate query for GL_ANY_SAMPLES st/mesa: add query buffer support nvc0: add support for ARB_query_buffer_object Rafal Mielniczuk (4): glapi: Add xml infrastructure for ARB_query_buffer_object mesa: Add ARB_query_buffer_object extension flag mesa: Add QueryBuffer to context mesa: Handle QUERY_BUFFER_BINDING in GetIntegerv docs/GL3.txt | 2 +- docs/relnotes/11.2.0.html | 1 + src/gallium/docs/source/context.rst | 5 + src/gallium/docs/source/screen.rst | 2 + src/gallium/drivers/freedreno/freedreno_screen.c | 1 + src/gallium/drivers/ilo/ilo_screen.c | 1 + src/gallium/drivers/llvmpipe/lp_screen.c | 1 + src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 + src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 + src/gallium/drivers/nouveau/nvc0/mme/com9097.mme | 50 ++++ src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h | 34 +++ src/gallium/drivers/nouveau/nvc0/nvc0_macros.h | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_query.c | 19 ++ src/gallium/drivers/nouveau/nvc0/nvc0_query.h | 7 + src/gallium/drivers/nouveau/nvc0/nvc0_query_hw.c | 106 ++++++++ src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 + src/gallium/drivers/r300/r300_screen.c | 1 + src/gallium/drivers/r600/r600_pipe.c | 1 + src/gallium/drivers/radeonsi/si_pipe.c | 1 + src/gallium/drivers/softpipe/sp_screen.c | 1 + src/gallium/drivers/svga/svga_screen.c | 1 + src/gallium/drivers/vc4/vc4_screen.c | 1 + src/gallium/drivers/virgl/virgl_screen.c | 1 + src/gallium/include/pipe/p_context.h | 22 ++ src/gallium/include/pipe/p_defines.h | 11 + src/mapi/glapi/gen/gl_API.xml | 9 +- src/mesa/main/bufferobj.c | 14 ++ src/mesa/main/dd.h | 9 + src/mesa/main/extensions_table.h | 1 + src/mesa/main/get.c | 5 + src/mesa/main/get_hash_params.py | 3 + src/mesa/main/mtypes.h | 3 + src/mesa/main/queryobj.c | 280 ++++++++++----------- src/mesa/state_tracker/st_cb_bufferobjects.c | 3 + src/mesa/state_tracker/st_cb_queryobj.c | 100 +++++++- src/mesa/state_tracker/st_cb_texturebarrier.c | 3 + src/mesa/state_tracker/st_extensions.c | 1 + 37 files changed, 555 insertions(+), 151 deletions(-) -- 2.4.10 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev