/* * Copyright (C) 2023 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/helpers/device_bitfield.h" #include "shared/source/helpers/vec.h" #include namespace NEO { class Device; class GraphicsAllocation; enum class BlitOperationResult { Unsupported, Fail, Success, GpuHang }; namespace BlitHelperFunctions { using BlitMemoryToAllocationFunc = std::function &size)>; extern BlitMemoryToAllocationFunc blitMemoryToAllocation; } // namespace BlitHelperFunctions struct BlitHelper { static BlitOperationResult blitMemoryToAllocation(const Device &device, GraphicsAllocation *memory, size_t offset, const void *hostPtr, const Vec3 &size); static BlitOperationResult blitMemoryToAllocationBanks(const Device &device, GraphicsAllocation *memory, size_t offset, const void *hostPtr, const Vec3 &size, DeviceBitfield memoryBanks); }; } // namespace NEO