anv: use the device size of CS prefetch to pad secondary buffer calls
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 18 Mar 2021 09:05:17 +0000 (11:05 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 18 Mar 2021 20:08:45 +0000 (20:08 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ĺšlusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9679>

src/intel/vulkan/anv_batch_chain.c

index 7977eb8..7be15e1 100644 (file)
@@ -996,10 +996,13 @@ anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer)
           * prefetch.
           */
          if (cmd_buffer->batch_bos.next == cmd_buffer->batch_bos.prev) {
+            const struct gen_device_info *devinfo = &cmd_buffer->device->info;
+            /* Careful to have everything in signed integer. */
+            int32_t prefetch_len = devinfo->cs_prefetch_size;
             int32_t batch_len =
                cmd_buffer->batch.next - cmd_buffer->batch.start;
 
-            for (int32_t i = 0; i < (512 - batch_len); i += 4)
+            for (int32_t i = 0; i < (prefetch_len - batch_len); i += 4)
                anv_batch_emit(&cmd_buffer->batch, GEN8_MI_NOOP, noop);
          }