From cec481b4b1a223c4dd8430d079bd27ca66da3303 Mon Sep 17 00:00:00 2001 From: "Baraldi, Giovanni" Date: Thu, 24 Jul 2025 19:44:32 +0200 Subject: [PATCH] Fix 32bit wrap to att buffer size (#176) Co-authored-by: Giovanni Baraldi Everything but PSDB passed. I'm force merging because 1) this is a minor change and 2) PSDBs seem broken now, they are stuck and pointing to the wrong location: http://rocm-ci.amd.com/job/compute-psdb-staging-profiler-emu/435/ --- gfxip/gfx10/gfx10_primitives.h | 2 +- gfxip/gfx11/gfx11_primitives.h | 2 +- gfxip/gfx12/gfx12_primitives.h | 2 +- gfxip/gfx9/gfx9_primitives.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gfxip/gfx10/gfx10_primitives.h b/gfxip/gfx10/gfx10_primitives.h index 60ba550428..d33cb0ba39 100644 --- a/gfxip/gfx10/gfx10_primitives.h +++ b/gfxip/gfx10/gfx10_primitives.h @@ -618,7 +618,7 @@ class gfx10_cntx_prim { // Indicates the size of buffer to use per Shader Engine instance. // The size is specified in terms of 4KB blocks - static uint32_t sqtt_buffer_size_value(uint32_t size_val, uint32_t base_hi) { + static uint32_t sqtt_buffer_size_value(uint64_t size_val, uint32_t base_hi) { #if SQTT_PRIM_ENABLED uint32_t size{0}; size = SET_REG_FIELD_BITS(SQ_THREAD_TRACE_BUF0_SIZE, SIZE, size_val >> TT_BUFF_ALIGN_SHIFT) | diff --git a/gfxip/gfx11/gfx11_primitives.h b/gfxip/gfx11/gfx11_primitives.h index 89167a31fe..07e0212f4b 100644 --- a/gfxip/gfx11/gfx11_primitives.h +++ b/gfxip/gfx11/gfx11_primitives.h @@ -639,7 +639,7 @@ class gfx11_cntx_prim { // Indicates the size of buffer to use per Shader Engine instance. // The size is specified in terms of 4KB blocks - static uint32_t sqtt_buffer_size_value(uint32_t size_val, uint32_t base_hi) { + static uint32_t sqtt_buffer_size_value(uint64_t size_val, uint32_t base_hi) { #if SQTT_PRIM_ENABLED uint32_t sq_thread_trace_buf0_size = SET_REG_FIELD_BITS(SQ_THREAD_TRACE_BUF0_SIZE, SIZE, size_val >> TT_BUFF_ALIGN_SHIFT) | diff --git a/gfxip/gfx12/gfx12_primitives.h b/gfxip/gfx12/gfx12_primitives.h index 13ebdfff22..a039facc7d 100644 --- a/gfxip/gfx12/gfx12_primitives.h +++ b/gfxip/gfx12/gfx12_primitives.h @@ -560,7 +560,7 @@ class gfx12_cntx_prim { // Indicates the size of buffer to use per Shader Engine instance. // The size is specified in terms of 4KB blocks - static uint32_t sqtt_buffer0_size_value(uint32_t size_val) { + static uint32_t sqtt_buffer0_size_value(uint64_t size_val) { uint32_t sq_thread_trace_buf0_size{0}; sq_thread_trace_buf0_size = SET_REG_FIELD_BITS(SQ_THREAD_TRACE_BUF0_SIZE, SIZE, size_val >> TT_BUFF_ALIGN_SHIFT); diff --git a/gfxip/gfx9/gfx9_primitives.h b/gfxip/gfx9/gfx9_primitives.h index 5c1c01ee1d..1e391abbba 100644 --- a/gfxip/gfx9/gfx9_primitives.h +++ b/gfxip/gfx9/gfx9_primitives.h @@ -683,7 +683,7 @@ class gfx9_cntx_prim { // Indicates the size of buffer to use per Shader Engine instance. // The size is specified in terms of 4KB blocks - static uint32_t sqtt_buffer_size_value(uint32_t size_val, uint32_t base_hi) { + static uint32_t sqtt_buffer_size_value(uint64_t size_val, uint32_t base_hi) { uint32_t sq_thread_trace_size = SET_REG_FIELD_BITS(SQ_THREAD_TRACE_SIZE, SIZE, (size_val >> TT_BUFF_ALIGN_SHIFT)); return sq_thread_trace_size;