Module: Mesa Branch: main Commit: 8ac4be916ef731b830822f85879e4527fc7b5056 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ac4be916ef731b830822f85879e4527fc7b5056
Author: Mike Blumenkrantz <[email protected]> Date: Fri May 21 07:35:12 2021 -0400 zink: export 8bit index buffer support based on extension presence this is now handled by gallium, so the codepath can be dropped Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10973> --- src/gallium/drivers/zink/zink_draw.c | 19 +++++++------------ src/gallium/drivers/zink/zink_screen.c | 3 +++ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index dcdeb29922f..f228fa69542 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -478,18 +478,13 @@ zink_draw_vbo(struct pipe_context *pctx, unsigned index_offset = 0; struct pipe_resource *index_buffer = NULL; if (dinfo->index_size > 0) { - if (!screen->info.have_EXT_index_type_uint8 && dinfo->index_size == 1) { - util_translate_prim_restart_ib(pctx, dinfo, dindirect, &draws[0], &index_buffer); - need_index_buffer_unref = true; - } else { - if (dinfo->has_user_indices) { - if (!util_upload_index_buffer(pctx, dinfo, &draws[0], &index_buffer, &index_offset, 4)) { - debug_printf("util_upload_index_buffer() failed\n"); - return; - } - } else - index_buffer = dinfo->index.resource; - } + if (dinfo->has_user_indices) { + if (!util_upload_index_buffer(pctx, dinfo, &draws[0], &index_buffer, &index_offset, 4)) { + debug_printf("util_upload_index_buffer() failed\n"); + return; + } + } else + index_buffer = dinfo->index.resource; } if (ctx->xfb_barrier) zink_emit_xfb_counter_barrier(ctx); diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index ad6c9694556..bf0b30e8f72 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -849,6 +849,9 @@ zink_is_format_supported(struct pipe_screen *pscreen, vk_sample_count_flags(sample_count); if (bind & PIPE_BIND_INDEX_BUFFER) { + if (format == PIPE_FORMAT_R8_UINT && + !screen->info.have_EXT_index_type_uint8) + return false; if (format != PIPE_FORMAT_R8_UINT && format != PIPE_FORMAT_R16_UINT && format != PIPE_FORMAT_R32_UINT) _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
