diff options
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_compute.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_shaders.c | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 4c980668d35..0338b8a1234 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -860,7 +860,8 @@ static void si_delete_compute_state(struct pipe_context *ctx, void* state){ } if (program->ir_type == PIPE_SHADER_IR_TGSI) { - util_queue_fence_wait(&program->ready); + util_queue_drop_job(&sctx->screen->shader_compiler_queue, + &program->ready); util_queue_fence_destroy(&program->ready); } diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 8ac430975d7..62bb2212110 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -2258,7 +2258,8 @@ static void si_bind_ps_shader(struct pipe_context *ctx, void *state) static void si_delete_shader(struct si_context *sctx, struct si_shader *shader) { if (shader->is_optimized) { - util_queue_fence_wait(&shader->optimized_ready); + util_queue_drop_job(&sctx->screen->shader_compiler_queue, + &shader->optimized_ready); util_queue_fence_destroy(&shader->optimized_ready); } @@ -2315,7 +2316,7 @@ static void si_destroy_shader_selector(struct si_context *sctx, [PIPE_SHADER_FRAGMENT] = &sctx->ps_shader, }; - util_queue_fence_wait(&sel->ready); + util_queue_drop_job(&sctx->screen->shader_compiler_queue, &sel->ready); if (current_shader[sel->type]->cso == sel) { current_shader[sel->type]->cso = NULL; |