diff --git a/rocclr/runtime/device/gpu/gpudevice.cpp b/rocclr/runtime/device/gpu/gpudevice.cpp index 107a284c60..00044873fc 100644 --- a/rocclr/runtime/device/gpu/gpudevice.cpp +++ b/rocclr/runtime/device/gpu/gpudevice.cpp @@ -748,12 +748,13 @@ void Device::fillDeviceInfo( if (settings().oclVersion_ >= OpenCL20) { info_.svmCapabilities_ = - - calAttr.target == CAL_TARGET_CARRIZO ? CL_DEVICE_SVM_COARSE_GRAIN_BUFFER : (CL_DEVICE_SVM_COARSE_GRAIN_BUFFER | CL_DEVICE_SVM_FINE_GRAIN_BUFFER); if (settings().svmAtomics_) { info_.svmCapabilities_ |= CL_DEVICE_SVM_ATOMICS; } + if (settings().svmFineGrainSystem_) { + info_.svmCapabilities_ |= CL_DEVICE_SVM_FINE_GRAIN_SYSTEM; + } // OpenCL2.0 device info fields info_.maxWriteImageArgs_ = MaxReadWriteImage; //!< For compatibility info_.maxReadWriteImageArgs_ = MaxReadWriteImage; diff --git a/rocclr/runtime/device/gpu/gpuvirtual.cpp b/rocclr/runtime/device/gpu/gpuvirtual.cpp index 92fb2ec7ba..1298872daa 100644 --- a/rocclr/runtime/device/gpu/gpuvirtual.cpp +++ b/rocclr/runtime/device/gpu/gpuvirtual.cpp @@ -1187,7 +1187,7 @@ VirtualGPU::submitUnmapMemory(amd::UnmapMemoryCommand& vcmd) // We used host memory if ((owner->getHostMem() != NULL) && memory->isDirectMap()) { - if (memory->isUnmapWrite()) { + if (memory->isUnmapWrite() && !owner->usesSvmPointer()) { // Target is the backing store, so sync owner->signalWrite(NULL); memory->syncCacheFromHost(*this);