diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c index c41c4be1147..da0c209e62e 100644 --- a/src/gallium/drivers/radeonsi/si_buffer.c +++ b/src/gallium/drivers/radeonsi/si_buffer.c @@ -191,12 +191,14 @@ bool si_alloc_resource(struct si_screen *sscreen, struct si_resource *res) } if (res->b.b.flags & SI_RESOURCE_FLAG_CLEAR) { - struct si_context *ctx = si_get_aux_context(&sscreen->aux_context.compute_resource_init); + struct si_aux_context *auxctx = res->flags & RADEON_FLAG_ENCRYPTED ? + &sscreen->aux_context.general : &sscreen->aux_context.compute_resource_init; + struct si_context *ctx = si_get_aux_context(auxctx); uint32_t value = 0; si_clear_buffer(ctx, &res->b.b, 0, res->bo_size, &value, 4, SI_AUTO_SELECT_CLEAR_METHOD, false); - si_put_aux_context_flush(&sscreen->aux_context.compute_resource_init); + si_put_aux_context_flush(auxctx); } return true; diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index 5fa695fe122..545ad8fdd2f 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -1304,10 +1304,12 @@ static struct si_texture *si_texture_create_object(struct pipe_screen *screen, /* Execute the clears. */ if (num_clears) { - struct si_context *sctx = si_get_aux_context(&sscreen->aux_context.compute_resource_init); + struct si_aux_context *auxctx = tex->buffer.flags & RADEON_FLAG_ENCRYPTED ? + &sscreen->aux_context.general : &sscreen->aux_context.compute_resource_init; + struct si_context *sctx = si_get_aux_context(auxctx); si_execute_clears(sctx, clears, num_clears, false); - si_put_aux_context_flush(&sscreen->aux_context.compute_resource_init); + si_put_aux_context_flush(auxctx); } /* Initialize the CMASK base register value. */