Skip to content

Commit f916316

Browse files
committed
drm/asahi: buffer: Add tags to all the buffers
Signed-off-by: Asahi Lina <[email protected]>
1 parent 40898fe commit f916316

1 file changed

Lines changed: 30 additions & 23 deletions

File tree

drivers/gpu/drm/asahi/buffer.rs

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,10 @@ impl Buffer::ver {
336336
try_init!(buffer::Info::ver {
337337
block_ctl: shared.new_default::<buffer::BlockControl>()?,
338338
counter: shared.new_default::<buffer::Counter>()?,
339-
page_list: ualloc_priv.lock().array_empty(max_pages)?,
340-
block_list: ualloc_priv.lock().array_empty(max_blocks * 2)?,
339+
page_list: ualloc_priv.lock().array_empty_tagged(max_pages, b"PLST")?,
340+
block_list: ualloc_priv
341+
.lock()
342+
.array_empty_tagged(max_blocks * 2, b"BLST")?,
341343
})
342344
},
343345
|inner, _p| {
@@ -380,7 +382,7 @@ impl Buffer::ver {
380382
)?;
381383

382384
// Technically similar to Scene below, let's play it safe.
383-
let kernel_buffer = alloc.shared.array_empty(0x40)?;
385+
let kernel_buffer = alloc.shared.array_empty_tagged(0x40, b"KBUF")?;
384386
let stats = alloc
385387
.shared
386388
.new_object(Default::default(), |_inner| buffer::raw::Stats {
@@ -535,20 +537,26 @@ impl Buffer::ver {
535537
// On M1 Ultra, it can grow and usually doesn't exceed 64 entries.
536538
// macOS allocates a whole 64K * 0x80 for this, so let's go with
537539
// that to be safe...
538-
let user_buffer = inner.ualloc.lock().array_empty(if inner.num_clusters > 1 {
539-
0x10080
540-
} else {
541-
0x80
542-
})?;
543-
544-
let tvb_heapmeta = inner.ualloc.lock().array_empty(0x200)?;
545-
let tvb_tilemap = inner.ualloc.lock().array_empty(tilemap_size)?;
540+
let user_buffer = inner.ualloc.lock().array_empty_tagged(
541+
if inner.num_clusters > 1 {
542+
0x10080
543+
} else {
544+
0x80
545+
},
546+
b"UBUF",
547+
)?;
546548

547-
mod_pr_debug!("Buffer: Allocating misc buffers\n");
548-
let preempt_buf = inner
549+
let tvb_heapmeta = inner.ualloc.lock().array_empty_tagged(0x200, b"HMTA")?;
550+
let tvb_tilemap = inner
549551
.ualloc
550552
.lock()
551-
.array_empty(inner.preempt1_size + inner.preempt2_size + inner.preempt3_size)?;
553+
.array_empty_tagged(tilemap_size, b"TMAP")?;
554+
555+
mod_pr_debug!("Buffer: Allocating misc buffers\n");
556+
let preempt_buf = inner.ualloc.lock().array_empty_tagged(
557+
inner.preempt1_size + inner.preempt2_size + inner.preempt3_size,
558+
b"PRMT",
559+
)?;
552560

553561
let tpc = match inner.tpc.as_ref() {
554562
Some(buf) if buf.len() >= tpc_size => buf.clone(),
@@ -557,12 +565,11 @@ impl Buffer::ver {
557565
// priv seems to work and might be faster?
558566
// Needs to be FW-writable anyway, so ualloc
559567
// won't work.
560-
let buf = Arc::try_new(
561-
inner
562-
.ualloc_priv
563-
.lock()
564-
.array_empty((tpc_size + mmu::UAT_PGMSK) & !mmu::UAT_PGMSK)?,
565-
)?;
568+
let buf =
569+
Arc::try_new(inner.ualloc_priv.lock().array_empty_tagged(
570+
(tpc_size + mmu::UAT_PGMSK) & !mmu::UAT_PGMSK,
571+
b"TPC ",
572+
)?)?;
566573
inner.tpc = Some(buf.clone());
567574
buf
568575
}
@@ -588,8 +595,8 @@ impl Buffer::ver {
588595
let tilemaps = inner
589596
.ualloc
590597
.lock()
591-
.array_empty(cfg.max_splits * tilemap_size)?;
592-
let meta = inner.ualloc.lock().array_empty(meta_size)?;
598+
.array_empty_tagged(cfg.max_splits * tilemap_size, b"CTMP")?;
599+
let meta = inner.ualloc.lock().array_empty_tagged(meta_size, b"CMTA")?;
593600
Some(buffer::ClusterBuffers { tilemaps, meta })
594601
} else {
595602
None
@@ -617,7 +624,7 @@ impl Buffer::ver {
617624
clustering: clustering,
618625
preempt_buf: preempt_buf,
619626
#[ver(G >= G14X)]
620-
control_word: _gpu.array_empty(1)?,
627+
control_word: _gpu.array_empty_tagged(1, b"CWRD")?,
621628
}),
622629
|inner, _p| {
623630
try_init!(buffer::raw::Scene::ver {

0 commit comments

Comments
 (0)