diff --git a/rocclr/runtime/platform/memory.cpp b/rocclr/runtime/platform/memory.cpp index c792d3eb64..3d7db63d1f 100644 --- a/rocclr/runtime/platform/memory.cpp +++ b/rocclr/runtime/platform/memory.cpp @@ -478,7 +478,7 @@ void Buffer::initDeviceMemory() { memset(deviceMemories_, 0, NumDevicesWithP2P() * sizeof(DeviceMemory)); } -bool Buffer::create(void* initFrom, bool sysMemAlloc, bool skipAlloc) { +bool Buffer::create(void* initFrom, bool sysMemAlloc, bool skipAlloc, bool forceAlloc) { if ((getMemFlags() & CL_MEM_EXTERNAL_PHYSICAL_AMD) && (initFrom != NULL)) { busAddress_ = *(reinterpret_cast(initFrom)); initFrom = NULL; @@ -486,7 +486,7 @@ bool Buffer::create(void* initFrom, bool sysMemAlloc, bool skipAlloc) { busAddress_.surface_bus_address = 0; busAddress_.marker_bus_address = 0; } - return Memory::create(initFrom, sysMemAlloc, skipAlloc); + return Memory::create(initFrom, sysMemAlloc, skipAlloc, forceAlloc); } bool Buffer::isEntirelyCovered(const Coord3D& origin, const Coord3D& region) const { diff --git a/rocclr/runtime/platform/memory.hpp b/rocclr/runtime/platform/memory.hpp index ffd5a3f5ec..2602d03dda 100644 --- a/rocclr/runtime/platform/memory.hpp +++ b/rocclr/runtime/platform/memory.hpp @@ -357,7 +357,8 @@ class Buffer : public Memory { bool create(void* initFrom = NULL, //!< Pointer to the initialization data bool sysMemAlloc = false, //!< Allocate device memory in system memory - bool skipAlloc = false //!< Skip device memory allocation + bool skipAlloc = false, //!< Skip device memory allocation + bool forceAlloc = false //!< Force device memory allocation ); //! static_cast to Buffer with sanity check