Re: [Mesa-dev] [PATCH 09/18] radeonsi: fix UNSIGNED_BYTE index buffer fallback with non-zero start
On 16.02.2017 23:06, Marek Olšák wrote: On Thu, Feb 16, 2017 at 4:10 PM, Nicolai Hähnle wrote: On 16.02.2017 13:53, Marek Olšák wrote: From: Marek Olšák start can only be non-zero with MultiDrawElements, which is unlikely to occur with UNSIGNED_BYTE indices. Do we have a test case for this? Sadly we don't. Could you add one? Nicolai Marek ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 09/18] radeonsi: fix UNSIGNED_BYTE index buffer fallback with non-zero start
On Thu, Feb 16, 2017 at 4:10 PM, Nicolai Hähnle wrote: > On 16.02.2017 13:53, Marek Olšák wrote: >> >> From: Marek Olšák >> >> start can only be non-zero with MultiDrawElements, which is unlikely >> to occur with UNSIGNED_BYTE indices. > > > Do we have a test case for this? Sadly we don't. Marek ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 09/18] radeonsi: fix UNSIGNED_BYTE index buffer fallback with non-zero start
On 16.02.2017 13:53, Marek Olšák wrote: From: Marek Olšák start can only be non-zero with MultiDrawElements, which is unlikely to occur with UNSIGNED_BYTE indices. Do we have a test case for this? Cheers, Nicolai --- src/gallium/drivers/radeonsi/si_state_draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index d453309..8f5dcbc 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -1045,21 +1045,21 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) ib.offset = sctx->index_buffer.offset; /* Translate or upload, if needed. */ /* 8-bit indices are supported on VI. */ if (sctx->b.chip_class <= CIK && ib.index_size == 1) { struct pipe_resource *out_buffer = NULL; unsigned out_offset, start, count, start_offset; void *ptr; si_get_draw_start_count(sctx, info, &start, &count); - start_offset = start * ib.index_size; + start_offset = start * 2; u_upload_alloc(ctx->stream_uploader, start_offset, count * 2, 256, &out_offset, &out_buffer, &ptr); if (!out_buffer) { pipe_resource_reference(&ib.buffer, NULL); return; } util_shorten_ubyte_elts_to_userptr(&sctx->b.b, &ib, 0, ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 09/18] radeonsi: fix UNSIGNED_BYTE index buffer fallback with non-zero start
From: Marek Olšák start can only be non-zero with MultiDrawElements, which is unlikely to occur with UNSIGNED_BYTE indices. --- src/gallium/drivers/radeonsi/si_state_draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index d453309..8f5dcbc 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -1045,21 +1045,21 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) ib.offset = sctx->index_buffer.offset; /* Translate or upload, if needed. */ /* 8-bit indices are supported on VI. */ if (sctx->b.chip_class <= CIK && ib.index_size == 1) { struct pipe_resource *out_buffer = NULL; unsigned out_offset, start, count, start_offset; void *ptr; si_get_draw_start_count(sctx, info, &start, &count); - start_offset = start * ib.index_size; + start_offset = start * 2; u_upload_alloc(ctx->stream_uploader, start_offset, count * 2, 256, &out_offset, &out_buffer, &ptr); if (!out_buffer) { pipe_resource_reference(&ib.buffer, NULL); return; } util_shorten_ubyte_elts_to_userptr(&sctx->b.b, &ib, 0, -- 2.7.4 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev