diff --git a/projects/clr/rocclr/runtime/device/device.cpp b/projects/clr/rocclr/runtime/device/device.cpp index 2d00917be8..b34a04e60a 100644 --- a/projects/clr/rocclr/runtime/device/device.cpp +++ b/projects/clr/rocclr/runtime/device/device.cpp @@ -184,11 +184,15 @@ Device::init() ret |= roc::NullDevice::init(); } #endif // WITH_HSA_DEVICE -#if defined(WITH_GPU_DEVICE) && !defined(WITH_PAL_DEVICE) - ret |= DeviceLoad(); +#if defined(WITH_GPU_DEVICE) + if (GPU_ENABLE_PAL != 1) { + ret |= DeviceLoad(); + } #endif // WITH_GPU_DEVICE #if defined(WITH_PAL_DEVICE) - ret |= PalDeviceLoad(); + if (GPU_ENABLE_PAL != 0) { + ret |= PalDeviceLoad(); + } #endif // WITH_PAL_DEVICE #if defined(WITH_CPU_DEVICE) ret |= cpu::Device::init(); @@ -213,11 +217,15 @@ Device::tearDown() rocAppProfile_ = NULL; } #endif // WITH_HSA_DEVICE -#if defined(WITH_GPU_DEVICE) && !defined(WITH_PAL_DEVICE) - DeviceUnload(); +#if defined(WITH_GPU_DEVICE) + if (GPU_ENABLE_PAL != 1) { + DeviceUnload(); + } #endif // WITH_GPU_DEVICE #if defined(WITH_PAL_DEVICE) - PalDeviceUnload(); + if (GPU_ENABLE_PAL != 0) { + PalDeviceUnload(); + } #endif // WITH_PAL_DEVICE #if defined(WITH_CPU_DEVICE) cpu::Device::tearDown(); diff --git a/projects/clr/rocclr/runtime/utils/flags.hpp b/projects/clr/rocclr/runtime/utils/flags.hpp index cd1b77bd6a..280f090b7a 100644 --- a/projects/clr/rocclr/runtime/utils/flags.hpp +++ b/projects/clr/rocclr/runtime/utils/flags.hpp @@ -163,6 +163,8 @@ release(bool, GPU_IFH_MODE, false, \ "1 = Enable GPU IFH (infinitely fast hardware) mode. Any other value keeps setting disabled.") \ release(bool, GPU_MIPMAP, true, \ "Enables GPU mipmap extension") \ +release(uint, GPU_ENABLE_PAL, 0, \ + "Enables PAL backend. 0 - GSL(default), 1 - PAL, 2 - GSL and PAL") \ release(bool, DISABLE_DEFERRED_ALLOC, false, \ "Disables deferred memory allocation on device") \ release(int, AMD_GPU_FORCE_SINGLE_FP_DENORM, -1, \