static uint32_t
get_autotune_fence(struct tu_autotune *at)
{
- const struct tu6_global *global = at->device->global_bo->map;
- return global->autotune_fence;
+ return at->device->global_bo_map->autotune_fence;
}
static struct tu_submission_data *
ir3_finalize_nir(dev->compiler, nir);
+ const struct ir3_shader_options options = {
+ .reserved_user_consts = align(consts, 4),
+ .api_wavesize = IR3_SINGLE_OR_DOUBLE,
+ .real_wavesize = IR3_SINGLE_OR_DOUBLE,
+ };
struct ir3_shader *sh =
- ir3_shader_from_nir(dev->compiler, nir, &(struct ir3_shader_options) {
- .reserved_user_consts = align(consts, 4),
- .api_wavesize = IR3_SINGLE_OR_DOUBLE,
- .real_wavesize = IR3_SINGLE_OR_DOUBLE,
- }, NULL);
+ ir3_shader_from_nir(dev->compiler, nir, &options, NULL);
struct ir3_shader_key key = {};
bool created;
struct ir3_shader_variant *so =
ir3_shader_get_variant(sh, &key, false, false, &created);
- struct tu6_global *global = dev->global_bo->map;
+ struct tu6_global *global = dev->global_bo_map;
assert(*offset + so->info.sizedwords <= ARRAY_SIZE(global->shaders));
dev->global_shaders[idx] = sh;
*/
mtx_lock(&dev->mutex);
- struct tu6_global *global = dev->global_bo->map;
+ struct tu6_global *global = dev->global_bo_map;
uint32_t vsc_draw_overflow = global->vsc_draw_overflow;
uint32_t vsc_prim_overflow = global->vsc_prim_overflow;
sync_gpu_with_cpu(void *_job)
{
struct breadcrumbs_context *ctx = (struct breadcrumbs_context *) _job;
- struct tu6_global *global =
- (struct tu6_global *) ctx->device->global_bo->map;
+ struct tu6_global *global = ctx->device->global_bo_map;
uint32_t last_breadcrumb = 0;
uint32_t breakpoint_hits = 0;
device->breadcrumbs_ctx = ctx;
- struct tu6_global *global = device->global_bo->map;
+ struct tu6_global *global = device->global_bo_map;
global->breadcrumb_cpu_sync_seqno = 0;
global->breadcrumb_gpu_sync_seqno = 0;
}
global = (struct tu6_global *)device->global_bo->map;
+ device->global_bo_map = global;
tu_init_clear_blit_shaders(device);
+
global->predicate = 0;
global->vtx_stats_query_not_running = 1;
global->dbg_one = (uint32_t)-1;
}
tu6_pack_border_color(
- device->global_bo->map +
- offsetof_arr(struct tu6_global, bcolor, border_color),
- &color, pCreateInfo->borderColor == VK_BORDER_COLOR_INT_CUSTOM_EXT);
+ &device->global_bo_map->bcolor[border_color], &color,
+ pCreateInfo->borderColor == VK_BORDER_COLOR_INT_CUSTOM_EXT);
border_color += TU_BORDER_COLOR_BUILTIN;
}
} fiber_pvtmem_bo, wave_pvtmem_bo;
struct tu_bo *global_bo;
+ struct tu6_global *global_bo_map;
uint32_t implicit_sync_bo_count;
static VkResult
get_cmd_buffer(struct tu_device *dev, struct tu_cmd_buffer **cmd_buffer_out)
{
- struct tu6_global *global = dev->global_bo->map;
+ struct tu6_global *global = dev->global_bo_map;
/* Note: because QueueSubmit is serialized, we don't need any locks here.
*/
return;
}
- struct tu6_global *global = device->global_bo->map;
+ struct tu6_global *global = device->global_bo_map;
uint32_t current_taken_loads = global->dbg_gmem_taken_loads;
uint32_t current_taken_stores = global->dbg_gmem_taken_stores;