mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 12:23:05 +08:00
Reuse graphics allocations in svmMemcpy
Related-To: NEO-6352 Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
32370473ad
commit
457ef00abf
@@ -322,7 +322,8 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
||||
return requiresCacheFlushAfterWalker;
|
||||
}
|
||||
|
||||
static void *convertAddressWithOffsetToGpuVa(void *ptr, InternalMemoryType memoryType, GraphicsAllocation &allocation);
|
||||
template <typename PtrType>
|
||||
static PtrType convertAddressWithOffsetToGpuVa(PtrType ptr, InternalMemoryType memoryType, GraphicsAllocation &allocation);
|
||||
|
||||
void updateBcsTaskCount(aub_stream::EngineType bcsEngineType, uint32_t newBcsTaskCount);
|
||||
uint32_t peekBcsTaskCount(aub_stream::EngineType bcsEngineType) const;
|
||||
@@ -404,6 +405,18 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
||||
std::unique_ptr<TimestampPacketContainer> timestampPacketContainer;
|
||||
};
|
||||
|
||||
template <typename PtrType>
|
||||
PtrType CommandQueue::convertAddressWithOffsetToGpuVa(PtrType ptr, InternalMemoryType memoryType, GraphicsAllocation &allocation) {
|
||||
// If this is device or shared USM pointer, it is already a gpuVA and we don't have to do anything.
|
||||
// Otherwise, we assume this is a cpuVA and we have to convert to gpuVA, while preserving offset from allocation start.
|
||||
const bool isCpuPtr = (memoryType != DEVICE_UNIFIED_MEMORY) && (memoryType != SHARED_UNIFIED_MEMORY);
|
||||
if (isCpuPtr) {
|
||||
size_t dstOffset = ptrDiff(ptr, allocation.getUnderlyingBuffer());
|
||||
ptr = reinterpret_cast<PtrType>(allocation.getGpuAddress() + dstOffset);
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
using CommandQueueCreateFunc = CommandQueue *(*)(Context *context, ClDevice *device, const cl_queue_properties *properties, bool internalUsage);
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user