nvk: Set base vertex state in sequential mme draw
authorGeorge Ouzounoudis <geothrock@gmail.com>
Wed, 9 Nov 2022 18:28:39 +0000 (20:28 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:32:02 +0000 (21:32 +0000)
We need to set base vertex state to zero before emitting a sequential
draw call, if we have already emitted an indexed draw call that changed
that state.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/vulkan/nvk_cmd_draw.c

index bcb3d94..de535d4 100644 (file)
@@ -1433,6 +1433,12 @@ nvk_build_mme_draw(struct mme_builder *b, struct mme_value begin)
    struct mme_value first_vertex = mme_load(b);
    struct mme_value first_instance = mme_load(b);
 
+   mme_mthd(b, NV9097_SET_GLOBAL_BASE_VERTEX_INDEX);
+   mme_emit(b, mme_zero());
+
+   mme_mthd(b, NV9097_SET_VERTEX_ID_BASE);
+   mme_emit(b, mme_zero());
+
    mme_mthd(b, NV9097_SET_GLOBAL_BASE_INSTANCE_INDEX);
    mme_emit(b, first_instance);