From 6457db73318e24226aa3e208eae197792717a6d6 Mon Sep 17 00:00:00 2001 From: David Belanger Date: Thu, 22 Feb 2024 11:49:07 -0500 Subject: [PATCH] Update ScratchCopyDwordIsa shader for GFX12 Minor instructions changes for GFX12. Signed-off-by: David Belanger Change-Id: I57cca6393d4b4aae869a2bc9862d75eef1f29ed7 Signed-off-by: Chris Freehill [ROCm/ROCR-Runtime commit: 9665499f83e8eb6f286a48c97d03f6152e7f1828] --- .../tests/kfdtest/src/ShaderStore.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/projects/rocr-runtime/libhsakmt/tests/kfdtest/src/ShaderStore.cpp b/projects/rocr-runtime/libhsakmt/tests/kfdtest/src/ShaderStore.cpp index e8d5e2b047..cc2a9e4a98 100644 --- a/projects/rocr-runtime/libhsakmt/tests/kfdtest/src/ShaderStore.cpp +++ b/projects/rocr-runtime/libhsakmt/tests/kfdtest/src/ShaderStore.cpp @@ -202,8 +202,12 @@ const char *ScratchCopyDwordIsa = v_mov_b32_e32 v2, s2 v_mov_b32_e32 v3, s3 .endif + // Setup the scratch parameters. This assumes a single 16-reg block - .if (.amdgcn.gfx_generation_number >= 10) + .if (.amdgcn.gfx_generation_number >= 12) + s_setreg_b32 hwreg(HW_REG_SCRATCH_BASE_LO), s4 + s_setreg_b32 hwreg(HW_REG_SCRATCH_BASE_HI), s5 + .elseif (.amdgcn.gfx_generation_number >= 10) s_setreg_b32 hwreg(HW_REG_FLAT_SCR_LO), s4 s_setreg_b32 hwreg(HW_REG_FLAT_SCR_HI), s5 .elseif (.amdgcn.gfx_generation_number == 9) @@ -213,10 +217,18 @@ const char *ScratchCopyDwordIsa = s_mov_b32 flat_scratch_lo, 8 s_mov_b32 flat_scratch_hi, 0 .endif + // Copy a dword between the passed addresses - FLAT_LOAD_DWORD_NSS v4, v[0:1] slc - s_waitcnt vmcnt(0) & lgkmcnt(0) - FLAT_STORE_DWORD_NSS v[2:3], v4 slc + .if (.amdgcn.gfx_generation_number >= 12) + FLAT_LOAD_DWORD_NSS v4, v[0:1] scope:SCOPE_SYS + s_wait_loadcnt 0 + FLAT_STORE_DWORD_NSS v[2:3], v4 scope:SCOPE_SYS + .else + FLAT_LOAD_DWORD_NSS v4, v[0:1] slc + s_waitcnt vmcnt(0) & lgkmcnt(0) + FLAT_STORE_DWORD_NSS v[2:3], v4 slc + .endif + s_endpgm )";