rocr: Use view3dAs2dArray flag, for thick/3D swizzle modes.

Added HSA_IMAGE_ENABLE_3D_SWIZZLE_DEBUG environment flag to
enable/disable this. Default value is false (view3dAs2dArray = 1)
Enabling this flag will enable support for swizzles that do 3D
interleaving. Note that all features of 3D images are supported
with 2D swizzles,it's just that the access patterns are different
and therefore cache hit-rates may be better or worse, depending
on how it's used. Volumetric algorithms do better with 3D and apps
that tend to access a single slice at a time do better with 2D.

Change-Id: Id8574a6710fe4333a1ee331e5ce9195a81434198


[ROCm/ROCR-Runtime commit: 6361466baa]
This commit is contained in:
Shweta Khatri
2025-01-22 11:39:07 -05:00
parent ff52d6fc13
commit 4325142db1
3 changed files with 42 additions and 3 deletions
@@ -1253,7 +1253,8 @@ void Gfx12Lib::SanityCheckSurfSize(
// image, at least for single samples) but they still have the same number of mip levels as the
// parent image. This disconnect produces false assertions below as the image size doesn't apparently
// support the specified number of mip levels.
((pIn->flags.hiZHiS == 0) || (pIn->numMipLevels == 1)))
((pIn->flags.hiZHiS == 0) || (pIn->numMipLevels == 1)) &&
!(pIn->flags.view3dAs2dArray))
{
UINT_32 lastMipSize = 1;
UINT_32 dataChainSize = 0;