Module: Mesa
Branch: main
Commit: 616aa3f1386c121e2517fc35a565524c2d0e9adf
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=616aa3f1386c121e2517fc35a565524c2d0e9adf

Author: Tomeu Vizoso <[email protected]>
Date:   Tue Jul  6 11:45:56 2021 +0200

panvk: Start a new batch when the job index gets above the limit

Signed-off-by: Tomeu Vizoso <[email protected]>
Reviewed-by: Boris Brezillon <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12019>

---

 src/panfrost/vulkan/panvk_cmd_buffer.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/panfrost/vulkan/panvk_cmd_buffer.c 
b/src/panfrost/vulkan/panvk_cmd_buffer.c
index 3da978b4837..fc48e79338a 100644
--- a/src/panfrost/vulkan/panvk_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_cmd_buffer.c
@@ -1340,6 +1340,15 @@ panvk_CmdDraw(VkCommandBuffer commandBuffer,
 
    struct panvk_batch *batch = cmdbuf->state.batch;
 
+   /* There are only 16 bits in the descriptor for the job ID, make sure all
+    * the 3 (2 in Bifrost) jobs in this draw are in the same batch.
+    */
+   if (batch->scoreboard.job_index >= (UINT16_MAX - 3)) {
+      panvk_cmd_close_batch(cmdbuf);
+      panvk_cmd_open_batch(cmdbuf);
+      batch = cmdbuf->state.batch;
+   }
+
    panvk_cmd_alloc_fb_desc(cmdbuf);
    panvk_cmd_alloc_tls_desc(cmdbuf);
    panvk_cmd_prepare_ubos(cmdbuf);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to