Mesa (main): zink: export 8bit index buffer support based on extension presence
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jun 23 03:52:35 UTC 2021
Module: Mesa
Branch: main
Commit: 8ac4be916ef731b830822f85879e4527fc7b5056
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ac4be916ef731b830822f85879e4527fc7b5056
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
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 <airlied at redhat.com>
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)
More information about the mesa-commit
mailing list