diff --git a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp index e7878641da..8c3e1d3e26 100644 --- a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp +++ b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp @@ -1535,7 +1535,7 @@ Device::bindExternalDevice(uint flags, void* const pDevice[], void* pContext, bo #ifdef _WIN32 if (flags & amd::Context::Flags::D3D10DeviceKhr) { - if (!associateD3D10Device(pDevice[amd::Context::DeviceFlagIdx::D3D10DeviceKhrIdx])); + if (!associateD3D10Device(pDevice[amd::Context::DeviceFlagIdx::D3D10DeviceKhrIdx])) { LogError("Failed gslD3D10Associate()"); return false; } diff --git a/projects/clr/rocclr/runtime/device/pal/paldevice.hpp b/projects/clr/rocclr/runtime/device/pal/paldevice.hpp index 7ef971ad8c..732ecfd9a4 100644 --- a/projects/clr/rocclr/runtime/device/pal/paldevice.hpp +++ b/projects/clr/rocclr/runtime/device/pal/paldevice.hpp @@ -348,11 +348,11 @@ public: //! Attempt to bind with external graphics API's device/context virtual bool bindExternalDevice( - uint flags, void* pDevice[], void* pContext, bool validateOnly); + uint flags, void* const pDevice[], void* pContext, bool validateOnly); //! Attempt to unbind with external graphics API's device/context virtual bool unbindExternalDevice( - uint flags, void* pDevice[], void* pContext, bool validateOnly); + uint flags, void* const pDevice[], void* pContext, bool validateOnly); //! Validates kernel before execution virtual bool validateKernel( diff --git a/projects/clr/rocclr/runtime/device/pal/palmemory.cpp b/projects/clr/rocclr/runtime/device/pal/palmemory.cpp index 1df7cdab96..01b9124fd6 100644 --- a/projects/clr/rocclr/runtime/device/pal/palmemory.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palmemory.cpp @@ -905,9 +905,6 @@ Memory::allocMapTarget( } } mapAddress = mapMemory()->data(); - - // Use start of the indirect buffer - offset = 0; } return mapAddress + offset; diff --git a/projects/clr/rocclr/runtime/device/pal/palresource.cpp b/projects/clr/rocclr/runtime/device/pal/palresource.cpp index 238bf65fea..f131de6adf 100644 --- a/projects/clr/rocclr/runtime/device/pal/palresource.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palresource.cpp @@ -56,11 +56,10 @@ GpuMemoryReference::Create( GpuMemoryReference* GpuMemoryReference::Create( const Device& dev, - const void* sysMem, - size_t memSize) + const Pal::PinnedGpuMemoryCreateInfo& createInfo) { Pal::Result result; - size_t gpuMemSize = dev.iDev()->GetPinnedGpuMemorySize(sysMem, memSize, &result); + size_t gpuMemSize = dev.iDev()->GetPinnedGpuMemorySize(createInfo, &result); if (result != Pal::Result::Success) { return nullptr; } @@ -68,7 +67,7 @@ GpuMemoryReference::Create( GpuMemoryReference* memRef = new (gpuMemSize) GpuMemoryReference(); Pal::VaRange vaRange = Pal::VaRange::Default; if (memRef != nullptr) { - result = dev.iDev()->CreatePinnedGpuMemory(sysMem, memSize, vaRange, + result = dev.iDev()->CreatePinnedGpuMemory(createInfo, &memRef[1], &memRef->gpuMem_); if (result != Pal::Result::Success) { memRef->release(); @@ -77,7 +76,7 @@ GpuMemoryReference::Create( } // Update free memory size counters const_cast(dev).updateFreeMemory( - Pal::GpuHeap::GpuHeapGartCacheable, memSize, false); + Pal::GpuHeap::GpuHeapGartCacheable, createInfo.size, false); return memRef; } @@ -513,8 +512,8 @@ Resource::create(MemoryType memType, CreateParams* params) imgOpenInfo.flags.formatChangeSrd = true; imgOpenInfo.usage.shaderRead = true; imgOpenInfo.usage.shaderWrite = true; - Pal::gpusize imageSize; - Pal::gpusize gpuMemSize; + size_t imageSize; + size_t gpuMemSize; if (Pal::Result::Success != dev().iDev()->GetExternalSharedImageSizes( imgOpenInfo, &imageSize, &gpuMemSize, &imgCreateInfo)) { @@ -936,8 +935,11 @@ Resource::create(MemoryType memType, CreateParams* params) if ((uint64_t)(pinAddress) & (amd::Os::pageSize() - 1)) { return false; } - - memRef_ = GpuMemoryReference::Create(dev(), pinAddress, allocSize); + Pal::PinnedGpuMemoryCreateInfo createInfo = {}; + createInfo.pSysMem = pinAddress; + createInfo.size = allocSize; + createInfo.vaRange = Pal::VaRange::Default; + memRef_ = GpuMemoryReference::Create(dev(), createInfo); if (nullptr == memRef_) { LogError("Failed PAL memory allocation!"); pinOffset_ = 0; diff --git a/projects/clr/rocclr/runtime/device/pal/palresource.hpp b/projects/clr/rocclr/runtime/device/pal/palresource.hpp index 300a701bc7..b1fac5b20c 100644 --- a/projects/clr/rocclr/runtime/device/pal/palresource.hpp +++ b/projects/clr/rocclr/runtime/device/pal/palresource.hpp @@ -26,8 +26,7 @@ public: static GpuMemoryReference* Create( const Device& dev, - const void* sysMem, - size_t memSize); + const Pal::PinnedGpuMemoryCreateInfo& createInfo); static GpuMemoryReference* Create( const Device& dev, diff --git a/projects/clr/rocclr/runtime/device/pal/palsettings.cpp b/projects/clr/rocclr/runtime/device/pal/palsettings.cpp index 66c68f7f18..2a239d03e3 100644 --- a/projects/clr/rocclr/runtime/device/pal/palsettings.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palsettings.cpp @@ -363,12 +363,12 @@ Settings::create( #else if (remoteAlloc_) { resourceCacheSize_ = std::max((heaps[Pal::GpuHeapGartUswc].heapSize / 8), - GPU_RESOURCE_CACHE_SIZE * Mi); + (uint64_t)GPU_RESOURCE_CACHE_SIZE * Mi); } else { resourceCacheSize_ = std::max(((heaps[Pal::GpuHeapLocal].heapSize + heaps[Pal::GpuHeapInvisible].heapSize) / 8), - GPU_RESOURCE_CACHE_SIZE * Mi); + (uint64_t)GPU_RESOURCE_CACHE_SIZE * Mi); } resourceCacheSize_ = std::min(resourceCacheSize_, 512 * Mi); #endif diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp index 2912ec7afc..98e3764cfe 100644 --- a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp +++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp @@ -1354,7 +1354,7 @@ VirtualGPU::submitMapMemory(amd::MapMemoryCommand& vcmd) amd::Coord3D dstOrigin(0, 0, 0); if (memory->desc().buffer_) { if (!blitMgr().copyBuffer(*memory, - *memory->mapMemory(), vcmd.origin(), dstOrigin, + *memory->mapMemory(), vcmd.origin(), vcmd.origin(), vcmd.size(), vcmd.isEntireMemory())) { LogError("submitMapMemory() - copy failed"); vcmd.setStatus(CL_MAP_FAILURE);