Am 27.01.2017 um 12:02 schrieb Marek Olšák: > From: Marek Olšák <marek.ol...@amd.com> > > For lower memory usage and more efficient updates of the buffer residency > list. (e.g. if drivers keep seeing the same buffer for many consecutive > "add" calls, the calls can be turned into no-ops trivially) > --- > src/gallium/include/pipe/p_context.h | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/src/gallium/include/pipe/p_context.h > b/src/gallium/include/pipe/p_context.h > index 45098c9..5876968 100644 > --- a/src/gallium/include/pipe/p_context.h > +++ b/src/gallium/include/pipe/p_context.h > @@ -69,33 +69,40 @@ struct pipe_stream_output_target; > struct pipe_surface; > struct pipe_transfer; > struct pipe_vertex_buffer; > struct pipe_vertex_element; > struct pipe_video_buffer; > struct pipe_video_codec; > struct pipe_viewport_state; > struct pipe_compute_state; > union pipe_color_union; > union pipe_query_result; > +struct u_upload_mgr; > > /** > * Gallium rendering context. Basically: > * - state setting functions > * - VBO drawing functions > * - surface functions > */ > struct pipe_context { > struct pipe_screen *screen; > > void *priv; /**< context private data (for DRI for example) */ > void *draw; /**< private, for draw module (temporary?) */ > > + /** > + * Stream uploader created by the driver. All drivers, state trackers, and > + * modules should use it. > + */ > + struct u_upload_mgr *stream_uploader; > + > void (*destroy)( struct pipe_context * ); > > /** > * VBO drawing > */ > /*@{*/ > void (*draw_vbo)( struct pipe_context *pipe, > const struct pipe_draw_info *info ); > /*@}*/ > >
I suppose this makes sense. However, this makes util interfaces effectively part of the gallium interface, not sure how I feel about that as this seems to violate the contract that util code is optional. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev