From 46734a02fc916c46156262c3a47a92796ed59934 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 8 Dec 2020 15:06:17 +1000 Subject: [PATCH] gallium: add an api to retrieve pipe offsets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is needed to implement the vulkan transform feedback pause resume functionality Acked-by: Marek Olšák Reviewed-by: Roland Scheidegger Part-of: --- docs/gallium/context.rst | 4 ++++ src/gallium/include/pipe/p_context.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/docs/gallium/context.rst b/docs/gallium/context.rst index 81a6da4fb88..17e5af0a74b 100644 --- a/docs/gallium/context.rst +++ b/docs/gallium/context.rst @@ -251,6 +251,10 @@ discussed above. for the purposes of the draw_auto stage. -1 means the buffer should be appended to, and everything else sets the internal offset. +* ``stream_output_target_offset`` Retrieve the internal stream offset from + an streamout target. This is used to implement Vulkan pause/resume support + which needs to pass the internal offset to the API. + NOTE: The currently-bound vertex or geometry shader must be compiled with the properly-filled-in structure pipe_stream_output_info describing which outputs should be written to buffers and how. The structure is part of diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 74a3d49d2dd..7322bc5f5c1 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -517,6 +517,8 @@ struct pipe_context { struct pipe_stream_output_target **targets, const unsigned *offsets); + uint32_t (*stream_output_target_offset)(struct pipe_stream_output_target *target); + /*@}*/