diff --git a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp index f23f494f56..7afec91a8b 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpusettings.cpp @@ -294,7 +294,7 @@ Settings::create( if (ciPlus_) { libSelector_ = amd::GPU_Library_CI; - if (LP64_SWITCH(WINDOWS_SWITCH((viPlus_ && !IsWindows10OrGreater()), false), true)) { + if (LP64_SWITCH(WINDOWS_SWITCH((viPlus_ && !calAttr.isWDDM2Enabled), false), true)) { oclVersion_ = !reportAsOCL12Device && calAttr.isOpenCL200Device ? XCONCAT(OpenCL, XCONCAT(OPENCL_MAJOR, OPENCL_MINOR)) : OpenCL12; } diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp index 5fe46a8832..8b4178a6ab 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp @@ -149,6 +149,7 @@ CALGSLDevice::getAttribs_int(gsl::gsCtx* cs) m_attribs.numOfVpu = m_adp->pAsicInfo->numberOfVPU; m_attribs.isOpenCL200Device = m_adp->pAsicInfo->bIsOpen2Device; m_attribs.isSVMFineGrainSystem = m_adp->pAsicInfo->svmFineGrainSystem; + m_attribs.isWDDM2Enabled = m_adp->pAsicInfo->vaAvailable && m_adp->pAsicInfo->bNoVATranslation; } bool diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h index 6613092cde..762c380d6b 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h @@ -103,6 +103,7 @@ typedef struct CALdeviceattribsRec { CALuint numOfVpu; /**< number of vpu in the device*/ bool isOpenCL200Device; /**< the flag to mark if the device is OpenCL 200 */ bool isSVMFineGrainSystem; /**< check if SVM finegrainsystem */ + bool isWDDM2Enabled; /**< check if WDDM2 is enabled */ } CALdeviceattribs;