radeonsi: make si_initialize_compute reusable

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák
2018-08-15 21:36:14 -04:00
parent c44c6951d4
commit 49a016ec5d
2 changed files with 8 additions and 7 deletions
+7 -7
View File
@@ -317,9 +317,8 @@ static void si_set_global_binding(
}
}
static void si_initialize_compute(struct si_context *sctx)
void si_emit_initial_compute_regs(struct si_context *sctx, struct radeon_cmdbuf *cs)
{
struct radeon_cmdbuf *cs = sctx->gfx_cs;
uint64_t bc_va;
radeon_set_sh_reg_seq(cs, R_00B858_COMPUTE_STATIC_THREAD_MGMT_SE0, 2);
@@ -363,9 +362,6 @@ static void si_initialize_compute(struct si_context *sctx)
bc_va >> 8);
}
}
sctx->cs_shader_state.emitted_program = NULL;
sctx->cs_shader_state.initialized = true;
}
static bool si_setup_compute_scratch_buffer(struct si_context *sctx,
@@ -914,8 +910,12 @@ static void si_launch_grid(
if (sctx->bo_list_add_all_compute_resources)
si_compute_resources_add_all_to_bo_list(sctx);
if (!sctx->cs_shader_state.initialized)
si_initialize_compute(sctx);
if (!sctx->cs_shader_state.initialized) {
si_emit_initial_compute_regs(sctx, sctx->gfx_cs);
sctx->cs_shader_state.emitted_program = NULL;
sctx->cs_shader_state.initialized = true;
}
if (sctx->flags)
si_emit_cache_flush(sctx);
+1
View File
@@ -1304,6 +1304,7 @@ unsigned si_end_counter(struct si_screen *sscreen, unsigned type,
uint64_t begin);
/* si_compute.c */
void si_emit_initial_compute_regs(struct si_context *sctx, struct radeon_cmdbuf *cs);
unsigned si_get_compute_resource_limits(struct si_screen *sscreen,
unsigned waves_per_threadgroup,
unsigned max_waves_per_sh);