Re: [Mesa-dev] [PATCH] st/nine: make use of common uploaders v4
On 21.02.2017 23:28, Axel Davy wrote: > This looks fine to me. > > Reviewed-by: Axel Davy> > I think the patch requires your Signed-off-by though. > > Axel > v2: fixed formatting, broken due to thunderbird configuration v3: per Axel comment: added a comment into NineDevice9_DrawPrimitiveUP v4: per Axel comment: changed style of the comment Signed-off-by: Constantine Charlamov --- src/gallium/state_trackers/nine/device9.c| 50 +--- src/gallium/state_trackers/nine/device9.h| 5 --- src/gallium/state_trackers/nine/nine_ff.c| 8 ++--- src/gallium/state_trackers/nine/nine_state.c | 48 +- 4 files changed, 37 insertions(+), 74 deletions(-) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index b9b7a637d7..86c8e38535 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -477,31 +477,8 @@ NineDevice9_ctor( struct NineDevice9 *This, This->driver_caps.user_cbufs = GET_PCAP(USER_CONSTANT_BUFFERS); This->driver_caps.user_sw_vbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_VERTEX_BUFFERS); This->driver_caps.user_sw_cbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_CONSTANT_BUFFERS); - -/* Implicit use of context pipe for vertex and index uploaded when - * csmt is not active. Does not need to sync since csmt is unactive, - * thus no need to call NineDevice9_GetPipe at each upload. */ -if (!This->driver_caps.user_vbufs) -This->vertex_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, -65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -This->vertex_sw_uploader = u_upload_create(This->pipe_sw, 65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_ibufs) -This->index_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, - 128 * 1024, - PIPE_BIND_INDEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_cbufs) { +if (!This->driver_caps.user_cbufs) This->constbuf_alignment = GET_PCAP(CONSTANT_BUFFER_OFFSET_ALIGNMENT); -This->constbuf_uploader = u_upload_create(This->context.pipe, This->vs_const_size, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); -} - -This->constbuf_sw_uploader = u_upload_create(This->pipe_sw, 128 * 1024, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); - This->driver_caps.window_space_position_support = GET_PCAP(TGSI_VS_WINDOW_SPACE_POSITION); This->driver_caps.vs_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_VERTEX, PIPE_SHADER_CAP_INTEGERS); This->driver_caps.ps_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS); @@ -552,17 +529,6 @@ NineDevice9_dtor( struct NineDevice9 *This ) nine_state_clear(>state, TRUE); nine_context_clear(This); -if (This->vertex_uploader) -u_upload_destroy(This->vertex_uploader); -if (This->index_uploader) -u_upload_destroy(This->index_uploader); -if (This->constbuf_uploader) -u_upload_destroy(This->constbuf_uploader); -if (This->vertex_sw_uploader) -u_upload_destroy(This->vertex_sw_uploader); -if (This->constbuf_sw_uploader) -u_upload_destroy(This->constbuf_sw_uploader); - nine_bind(>record, NULL); pipe_sampler_view_reference(>dummy_sampler_view, NULL); @@ -2852,15 +2818,17 @@ NineDevice9_DrawPrimitiveUP( struct NineDevice9 *This, vtxbuf.buffer = NULL; vtxbuf.user_buffer = pVertexStreamZeroData; +/* csmt is unactive when user vertex or index buffers are used, thus no + * need to call NineDevice9_GetPipe. */ if (!This->driver_caps.user_vbufs) { -u_upload_data(This->vertex_uploader, +u_upload_data(This->context.pipe->stream_uploader, 0, (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * VertexStreamZeroStride, /* XXX */ 4, vtxbuf.user_buffer, _offset, ); -u_upload_unmap(This->vertex_uploader); +u_upload_unmap(This->context.pipe->stream_uploader); vtxbuf.user_buffer = NULL; } @@ -2916,27 +2884,27 @@ NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, if (!This->driver_caps.user_vbufs) { const unsigned base =
Re: [Mesa-dev] [PATCH] st/nine: make use of common uploaders v4
This looks fine to me. Reviewed-by: Axel DavyI think the patch requires your Signed-off-by though. Axel On 21/02/2017 05:31, Constantine Charlamov wrote: Make use of common uploaders that landed recently to Mesa v2: fixed formatting, broken due to thunderbird configuration v3: per Axel comment: added a comment into NineDevice9_DrawPrimitiveUP v4: per Axel comment: changed style of the comment --- src/gallium/state_trackers/nine/device9.c| 50 +--- src/gallium/state_trackers/nine/device9.h| 5 --- src/gallium/state_trackers/nine/nine_ff.c| 8 ++--- src/gallium/state_trackers/nine/nine_state.c | 48 +- 4 files changed, 37 insertions(+), 74 deletions(-) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index b9b7a637d7..86c8e38535 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -477,31 +477,8 @@ NineDevice9_ctor( struct NineDevice9 *This, This->driver_caps.user_cbufs = GET_PCAP(USER_CONSTANT_BUFFERS); This->driver_caps.user_sw_vbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_VERTEX_BUFFERS); This->driver_caps.user_sw_cbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_CONSTANT_BUFFERS); - -/* Implicit use of context pipe for vertex and index uploaded when - * csmt is not active. Does not need to sync since csmt is unactive, - * thus no need to call NineDevice9_GetPipe at each upload. */ -if (!This->driver_caps.user_vbufs) -This->vertex_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, -65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -This->vertex_sw_uploader = u_upload_create(This->pipe_sw, 65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_ibufs) -This->index_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, - 128 * 1024, - PIPE_BIND_INDEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_cbufs) { +if (!This->driver_caps.user_cbufs) This->constbuf_alignment = GET_PCAP(CONSTANT_BUFFER_OFFSET_ALIGNMENT); -This->constbuf_uploader = u_upload_create(This->context.pipe, This->vs_const_size, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); -} - -This->constbuf_sw_uploader = u_upload_create(This->pipe_sw, 128 * 1024, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); - This->driver_caps.window_space_position_support = GET_PCAP(TGSI_VS_WINDOW_SPACE_POSITION); This->driver_caps.vs_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_VERTEX, PIPE_SHADER_CAP_INTEGERS); This->driver_caps.ps_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS); @@ -552,17 +529,6 @@ NineDevice9_dtor( struct NineDevice9 *This ) nine_state_clear(>state, TRUE); nine_context_clear(This); -if (This->vertex_uploader) -u_upload_destroy(This->vertex_uploader); -if (This->index_uploader) -u_upload_destroy(This->index_uploader); -if (This->constbuf_uploader) -u_upload_destroy(This->constbuf_uploader); -if (This->vertex_sw_uploader) -u_upload_destroy(This->vertex_sw_uploader); -if (This->constbuf_sw_uploader) -u_upload_destroy(This->constbuf_sw_uploader); - nine_bind(>record, NULL); pipe_sampler_view_reference(>dummy_sampler_view, NULL); @@ -2852,15 +2818,17 @@ NineDevice9_DrawPrimitiveUP( struct NineDevice9 *This, vtxbuf.buffer = NULL; vtxbuf.user_buffer = pVertexStreamZeroData; +/* csmt is unactive when user vertex or index buffers are used, thus no + * need to call NineDevice9_GetPipe. */ if (!This->driver_caps.user_vbufs) { -u_upload_data(This->vertex_uploader, +u_upload_data(This->context.pipe->stream_uploader, 0, (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * VertexStreamZeroStride, /* XXX */ 4, vtxbuf.user_buffer, _offset, ); -u_upload_unmap(This->vertex_uploader); +u_upload_unmap(This->context.pipe->stream_uploader); vtxbuf.user_buffer = NULL; } @@ -2916,27 +2884,27 @@ NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, if (!This->driver_caps.user_vbufs)
[Mesa-dev] [PATCH] st/nine: make use of common uploaders v4
Make use of common uploaders that landed recently to Mesa v2: fixed formatting, broken due to thunderbird configuration v3: per Axel comment: added a comment into NineDevice9_DrawPrimitiveUP v4: per Axel comment: changed style of the comment --- src/gallium/state_trackers/nine/device9.c| 50 +--- src/gallium/state_trackers/nine/device9.h| 5 --- src/gallium/state_trackers/nine/nine_ff.c| 8 ++--- src/gallium/state_trackers/nine/nine_state.c | 48 +- 4 files changed, 37 insertions(+), 74 deletions(-) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index b9b7a637d7..86c8e38535 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -477,31 +477,8 @@ NineDevice9_ctor( struct NineDevice9 *This, This->driver_caps.user_cbufs = GET_PCAP(USER_CONSTANT_BUFFERS); This->driver_caps.user_sw_vbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_VERTEX_BUFFERS); This->driver_caps.user_sw_cbufs = This->screen_sw->get_param(This->screen_sw, PIPE_CAP_USER_CONSTANT_BUFFERS); - -/* Implicit use of context pipe for vertex and index uploaded when - * csmt is not active. Does not need to sync since csmt is unactive, - * thus no need to call NineDevice9_GetPipe at each upload. */ -if (!This->driver_caps.user_vbufs) -This->vertex_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, -65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -This->vertex_sw_uploader = u_upload_create(This->pipe_sw, 65536, -PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_ibufs) -This->index_uploader = u_upload_create(This->csmt_active ? -This->pipe_secondary : This->context.pipe, - 128 * 1024, - PIPE_BIND_INDEX_BUFFER, PIPE_USAGE_STREAM); -if (!This->driver_caps.user_cbufs) { +if (!This->driver_caps.user_cbufs) This->constbuf_alignment = GET_PCAP(CONSTANT_BUFFER_OFFSET_ALIGNMENT); -This->constbuf_uploader = u_upload_create(This->context.pipe, This->vs_const_size, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); -} - -This->constbuf_sw_uploader = u_upload_create(This->pipe_sw, 128 * 1024, - PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); - This->driver_caps.window_space_position_support = GET_PCAP(TGSI_VS_WINDOW_SPACE_POSITION); This->driver_caps.vs_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_VERTEX, PIPE_SHADER_CAP_INTEGERS); This->driver_caps.ps_integer = pScreen->get_shader_param(pScreen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS); @@ -552,17 +529,6 @@ NineDevice9_dtor( struct NineDevice9 *This ) nine_state_clear(>state, TRUE); nine_context_clear(This); -if (This->vertex_uploader) -u_upload_destroy(This->vertex_uploader); -if (This->index_uploader) -u_upload_destroy(This->index_uploader); -if (This->constbuf_uploader) -u_upload_destroy(This->constbuf_uploader); -if (This->vertex_sw_uploader) -u_upload_destroy(This->vertex_sw_uploader); -if (This->constbuf_sw_uploader) -u_upload_destroy(This->constbuf_sw_uploader); - nine_bind(>record, NULL); pipe_sampler_view_reference(>dummy_sampler_view, NULL); @@ -2852,15 +2818,17 @@ NineDevice9_DrawPrimitiveUP( struct NineDevice9 *This, vtxbuf.buffer = NULL; vtxbuf.user_buffer = pVertexStreamZeroData; +/* csmt is unactive when user vertex or index buffers are used, thus no + * need to call NineDevice9_GetPipe. */ if (!This->driver_caps.user_vbufs) { -u_upload_data(This->vertex_uploader, +u_upload_data(This->context.pipe->stream_uploader, 0, (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * VertexStreamZeroStride, /* XXX */ 4, vtxbuf.user_buffer, _offset, ); -u_upload_unmap(This->vertex_uploader); +u_upload_unmap(This->context.pipe->stream_uploader); vtxbuf.user_buffer = NULL; } @@ -2916,27 +2884,27 @@ NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, if (!This->driver_caps.user_vbufs) { const unsigned base = MinVertexIndex * VertexStreamZeroStride; -u_upload_data(This->vertex_uploader, +u_upload_data(This->context.pipe->stream_uploader, base,