mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 06:20:19 +01:00
radeonsi/tmz: add a tmz variant for sctx::eop_bug_scratch
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6049>
This commit is contained in:
parent
133895574c
commit
2c6643546a
3 changed files with 11 additions and 3 deletions
|
|
@ -87,7 +87,8 @@ void si_cp_release_mem(struct si_context *ctx, struct radeon_cmdbuf *cs, unsigne
|
|||
if (ctx->chip_class == GFX9 && !compute_ib && query_type != PIPE_QUERY_OCCLUSION_COUNTER &&
|
||||
query_type != PIPE_QUERY_OCCLUSION_PREDICATE &&
|
||||
query_type != PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE) {
|
||||
struct si_resource *scratch = ctx->eop_bug_scratch;
|
||||
struct si_resource *scratch = unlikely(ctx->ws->cs_is_secure(ctx->gfx_cs)) ?
|
||||
ctx->eop_bug_scratch_tmz : ctx->eop_bug_scratch;
|
||||
|
||||
assert(16 * ctx->screen->info.num_render_backends <= scratch->b.b.width0);
|
||||
radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 2, 0));
|
||||
|
|
|
|||
|
|
@ -303,6 +303,7 @@ static void si_destroy_context(struct pipe_context *context)
|
|||
sctx->ws->fence_reference(&sctx->last_sdma_fence, NULL);
|
||||
sctx->ws->fence_reference(&sctx->last_ib_barrier_fence, NULL);
|
||||
si_resource_reference(&sctx->eop_bug_scratch, NULL);
|
||||
si_resource_reference(&sctx->eop_bug_scratch_tmz, NULL);
|
||||
si_resource_reference(&sctx->index_ring, NULL);
|
||||
si_resource_reference(&sctx->barrier_buf, NULL);
|
||||
si_resource_reference(&sctx->last_ib_barrier_buf, NULL);
|
||||
|
|
@ -458,8 +459,13 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
|
|||
sctx->chip_class = sscreen->info.chip_class;
|
||||
|
||||
if (sctx->chip_class == GFX7 || sctx->chip_class == GFX8 || sctx->chip_class == GFX9) {
|
||||
sctx->eop_bug_scratch = si_resource(pipe_buffer_create(
|
||||
&sscreen->b, 0, PIPE_USAGE_DEFAULT, 16 * sscreen->info.num_render_backends));
|
||||
sctx->eop_bug_scratch = si_aligned_buffer_create(
|
||||
&sscreen->b, SI_RESOURCE_FLAG_DRIVER_INTERNAL,
|
||||
PIPE_USAGE_DEFAULT, 16 * sscreen->info.num_render_backends, 256);
|
||||
if (sctx->screen->info.has_tmz_support)
|
||||
sctx->eop_bug_scratch_tmz = si_aligned_buffer_create(
|
||||
&sscreen->b, PIPE_RESOURCE_FLAG_ENCRYPTED | SI_RESOURCE_FLAG_DRIVER_INTERNAL,
|
||||
PIPE_USAGE_DEFAULT, 16 * sscreen->info.num_render_backends, 256);
|
||||
if (!sctx->eop_bug_scratch)
|
||||
goto fail;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -908,6 +908,7 @@ struct si_context {
|
|||
struct pipe_fence_handle *last_gfx_fence;
|
||||
struct pipe_fence_handle *last_sdma_fence;
|
||||
struct si_resource *eop_bug_scratch;
|
||||
struct si_resource *eop_bug_scratch_tmz;
|
||||
struct u_upload_mgr *cached_gtt_allocator;
|
||||
struct threaded_context *tc;
|
||||
struct u_suballocator *allocator_zeroed_memory;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue