mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-28 00:03:14 +08:00
Cleaned up files: opencl/source/command_queue/csr_selection_args.h opencl/source/event/event.h shared/source/helpers/engine_control.h shared/source/sku_info/definitions/sku_info.h Related-To: NEO-5548 Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
92 lines
2.7 KiB
C++
92 lines
2.7 KiB
C++
/*
|
|
* Copyright (C) 2021-2023 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
#include "opencl/source/api/cl_types.h"
|
|
|
|
namespace NEO {
|
|
class MultiGraphicsAllocation;
|
|
class GraphicsAllocation;
|
|
class Image;
|
|
class Buffer;
|
|
|
|
enum class TransferDirection {
|
|
HostToHost,
|
|
HostToLocal,
|
|
LocalToHost,
|
|
LocalToLocal,
|
|
};
|
|
|
|
struct CsrSelectionArgs {
|
|
struct Resource {
|
|
bool isLocal = false;
|
|
const GraphicsAllocation *allocation = nullptr;
|
|
const Image *image = nullptr;
|
|
const size_t *imageOrigin = nullptr;
|
|
};
|
|
|
|
cl_command_type cmdType;
|
|
const size_t *size = nullptr;
|
|
Resource srcResource;
|
|
Resource dstResource;
|
|
TransferDirection direction;
|
|
|
|
CsrSelectionArgs(cl_command_type cmdType, const size_t *size)
|
|
: cmdType(cmdType),
|
|
size(size),
|
|
direction(TransferDirection::HostToHost) {}
|
|
|
|
template <typename ResourceType>
|
|
CsrSelectionArgs(cl_command_type cmdType, ResourceType *src, ResourceType *dst, uint32_t rootDeviceIndex, const size_t *size)
|
|
: cmdType(cmdType),
|
|
size(size) {
|
|
if (src) {
|
|
processResource(*src, rootDeviceIndex, this->srcResource);
|
|
}
|
|
if (dst) {
|
|
processResource(*dst, rootDeviceIndex, this->dstResource);
|
|
}
|
|
this->direction = createTransferDirection(srcResource.isLocal, dstResource.isLocal);
|
|
}
|
|
|
|
CsrSelectionArgs(cl_command_type cmdType, Image *src, Image *dst, uint32_t rootDeviceIndex, const size_t *size, const size_t *srcOrigin, const size_t *dstOrigin)
|
|
: CsrSelectionArgs(cmdType, src, dst, rootDeviceIndex, size) {
|
|
if (src) {
|
|
srcResource.imageOrigin = srcOrigin;
|
|
}
|
|
if (dst) {
|
|
dstResource.imageOrigin = dstOrigin;
|
|
}
|
|
}
|
|
|
|
static void processResource(const Image &image, uint32_t rootDeviceIndex, Resource &outResource);
|
|
|
|
static void processResource(const Buffer &buffer, uint32_t rootDeviceIndex, Resource &outResource);
|
|
|
|
static void processResource(const MultiGraphicsAllocation &multiGfxAlloc, uint32_t rootDeviceIndex, Resource &outResource);
|
|
|
|
static void processResource(const GraphicsAllocation &gfxAlloc, uint32_t rootDeviceIndex, Resource &outResource);
|
|
|
|
static inline TransferDirection createTransferDirection(bool srcLocal, bool dstLocal) {
|
|
if (srcLocal) {
|
|
if (dstLocal) {
|
|
return TransferDirection::LocalToLocal;
|
|
} else {
|
|
return TransferDirection::LocalToHost;
|
|
}
|
|
} else {
|
|
if (dstLocal) {
|
|
return TransferDirection::HostToLocal;
|
|
} else {
|
|
return TransferDirection::HostToHost;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
} // namespace NEO
|