anv: use the anv_state_pool address helper more
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 23 Nov 2022 10:02:41 +0000 (12:02 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Nov 2022 10:29:56 +0000 (10:29 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19983>

src/intel/vulkan/anv_batch_chain.c
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/genX_cmd_buffer.c

index 8c0bf57..a1516b0 100644 (file)
@@ -711,10 +711,9 @@ anv_cmd_buffer_alloc_space(struct anv_cmd_buffer *cmd_buffer,
                                 size, alignment);
 
       return (struct anv_cmd_alloc) {
-         .address = (struct anv_address) {
-            .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-            .offset = state.offset,
-         },
+         .address = anv_state_pool_state_address(
+            &cmd_buffer->device->dynamic_state_pool,
+            state),
          .map = state.map,
          .size = size,
       };
index 220c771..70eab29 100644 (file)
@@ -338,10 +338,9 @@ anv_cmd_buffer_set_ray_query_buffer(struct anv_cmd_buffer *cmd_buffer,
    struct anv_state ray_query_global_state =
       anv_genX(device->info, cmd_buffer_ray_query_globals)(cmd_buffer);
 
-   struct anv_address ray_query_globals_addr = (struct anv_address) {
-      .bo = device->dynamic_state_pool.block_pool.bo,
-      .offset = ray_query_global_state.offset,
-   };
+   struct anv_address ray_query_globals_addr =
+      anv_state_pool_state_address(&device->dynamic_state_pool,
+                                   ray_query_global_state);
    pipeline_state->push_constants.ray_query_globals =
       anv_address_physical(ray_query_globals_addr);
    cmd_buffer->state.push_constants_dirty |= stages;
index 2dd9945..ff3e478 100644 (file)
@@ -2787,10 +2787,9 @@ get_push_range_address(struct anv_cmd_buffer *cmd_buffer,
          gfx_state->base.push_constants_state =
             anv_cmd_buffer_gfx_push_constants(cmd_buffer);
       }
-      return (struct anv_address) {
-         .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-         .offset = gfx_state->base.push_constants_state.offset,
-      };
+      return anv_state_pool_state_address(
+         &cmd_buffer->device->dynamic_state_pool,
+         gfx_state->base.push_constants_state);
    }
 
    default: {
@@ -3794,10 +3793,9 @@ emit_base_vertex_instance(struct anv_cmd_buffer *cmd_buffer,
       ((uint32_t *)id_state.map)[0] = base_vertex;
       ((uint32_t *)id_state.map)[1] = base_instance;
 
-      struct anv_address addr = {
-         .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-         .offset = id_state.offset,
-      };
+      struct anv_address addr =
+         anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
+                                      id_state);
 
       emit_base_vertex_instance_bo(cmd_buffer, addr);
    }
@@ -3811,10 +3809,9 @@ emit_draw_index(struct anv_cmd_buffer *cmd_buffer, uint32_t draw_index)
 
    ((uint32_t *)state.map)[0] = draw_index;
 
-   struct anv_address addr = {
-      .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-      .offset = state.offset,
-   };
+   struct anv_address addr =
+      anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
+                                   state);
 
    emit_vertex_bo(cmd_buffer, addr, 4, ANV_DRAWID_VB_INDEX);
 }
@@ -5346,10 +5343,9 @@ void genX(CmdDispatchBase)(
       sizes[0] = groupCountX;
       sizes[1] = groupCountY;
       sizes[2] = groupCountZ;
-      cmd_buffer->state.compute.num_workgroups = (struct anv_address) {
-         .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-         .offset = state.offset,
-      };
+      cmd_buffer->state.compute.num_workgroups =
+         anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
+                                      state);
 
       /* The num_workgroups buffer goes in the binding table */
       cmd_buffer->state.descriptors_dirty |= VK_SHADER_STAGE_COMPUTE_BIT;
@@ -5698,10 +5694,9 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
           &cmd_buffer->state.rt.base.push_constants,
           sizeof(struct anv_push_constants));
 
-   struct anv_address rtdg_addr = {
-      .bo = cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-      .offset = rtdg_state.offset,
-   };
+   struct anv_address rtdg_addr =
+      anv_state_pool_state_address(&cmd_buffer->device->dynamic_state_pool,
+                                   rtdg_state);
 
    uint8_t local_size_log2[3];
    uint32_t global_size[3] = {};
@@ -7229,10 +7224,9 @@ void genX(CmdSetEvent2)(
 
       pc.DestinationAddressType  = DAT_PPGTT,
       pc.PostSyncOperation       = WriteImmediateData,
-      pc.Address = (struct anv_address) {
-         cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-         event->state.offset
-      };
+         pc.Address = anv_state_pool_state_address(
+            &cmd_buffer->device->dynamic_state_pool,
+            event->state);
       pc.ImmediateData           = VK_EVENT_SET;
       anv_debug_dump_pc(pc);
    }
@@ -7257,10 +7251,9 @@ void genX(CmdResetEvent2)(
 
       pc.DestinationAddressType  = DAT_PPGTT;
       pc.PostSyncOperation       = WriteImmediateData;
-      pc.Address = (struct anv_address) {
-         cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-         event->state.offset
-      };
+      pc.Address = anv_state_pool_state_address(
+         &cmd_buffer->device->dynamic_state_pool,
+         event->state);
       pc.ImmediateData           = VK_EVENT_RESET;
       anv_debug_dump_pc(pc);
    }
@@ -7278,13 +7271,12 @@ void genX(CmdWaitEvents2)(
       ANV_FROM_HANDLE(anv_event, event, pEvents[i]);
 
       anv_batch_emit(&cmd_buffer->batch, GENX(MI_SEMAPHORE_WAIT), sem) {
-         sem.WaitMode            = PollingMode,
-         sem.CompareOperation    = COMPARE_SAD_EQUAL_SDD,
-         sem.SemaphoreDataDword  = VK_EVENT_SET,
-         sem.SemaphoreAddress = (struct anv_address) {
-            cmd_buffer->device->dynamic_state_pool.block_pool.bo,
-            event->state.offset
-         };
+         sem.WaitMode            = PollingMode;
+         sem.CompareOperation    = COMPARE_SAD_EQUAL_SDD;
+         sem.SemaphoreDataDword  = VK_EVENT_SET;
+         sem.SemaphoreAddress    = anv_state_pool_state_address(
+            &cmd_buffer->device->dynamic_state_pool,
+            event->state);
       }
    }