mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 22:12:59 +08:00
refactor: remove not used image transforming logic
image transformer logic was used on gen9 and gen11 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
927b797071
commit
16458ca0ac
@@ -1,13 +1,11 @@
|
||||
#
|
||||
# Copyright (C) 2018-2022 Intel Corporation
|
||||
# Copyright (C) 2018-2024 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
set(RUNTIME_SRCS_KERNEL
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/image_transformer.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/image_transformer.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/kernel.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/kernel.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/kernel_info_cl.h
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "opencl/source/kernel/image_transformer.h"
|
||||
|
||||
#include "shared/source/compiler_interface/external_functions.h"
|
||||
#include "shared/source/helpers/ptr_math.h"
|
||||
#include "shared/source/kernel/implicit_args_helper.h"
|
||||
#include "shared/source/program/kernel_info.h"
|
||||
|
||||
#include "opencl/source/mem_obj/image.h"
|
||||
|
||||
namespace NEO {
|
||||
void ImageTransformer::registerImage3d(uint32_t argIndex) {
|
||||
if (std::find(argIndexes.begin(), argIndexes.end(), argIndex) == argIndexes.end()) {
|
||||
argIndexes.push_back(argIndex);
|
||||
}
|
||||
}
|
||||
void ImageTransformer::transformImagesTo2dArray(const KernelInfo &kernelInfo, const std::vector<Kernel::SimpleKernelArgInfo> &kernelArguments, void *ssh) {
|
||||
for (auto const &argIndex : argIndexes) {
|
||||
const auto &arg = kernelInfo.kernelDescriptor.payloadMappings.explicitArgs[argIndex];
|
||||
if (arg.getExtendedTypeInfo().isTransformable) {
|
||||
auto clMemObj = static_cast<cl_mem>(kernelArguments.at(argIndex).object);
|
||||
auto image = castToObjectOrAbort<Image>(clMemObj);
|
||||
auto surfaceState = ptrOffset(ssh, arg.as<ArgDescImage>().bindful);
|
||||
image->transformImage3dTo2dArray(surfaceState);
|
||||
}
|
||||
}
|
||||
transformed = true;
|
||||
}
|
||||
void ImageTransformer::transformImagesTo3d(const KernelInfo &kernelInfo, const std::vector<Kernel::SimpleKernelArgInfo> &kernelArguments, void *ssh) {
|
||||
for (auto const &argIndex : argIndexes) {
|
||||
const auto &arg = kernelInfo.kernelDescriptor.payloadMappings.explicitArgs[argIndex];
|
||||
auto clMemObj = static_cast<cl_mem>(kernelArguments.at(argIndex).object);
|
||||
auto image = castToObjectOrAbort<Image>(clMemObj);
|
||||
auto surfaceState = ptrOffset(ssh, arg.as<ArgDescImage>().bindful);
|
||||
image->transformImage2dArrayTo3d(surfaceState);
|
||||
}
|
||||
transformed = false;
|
||||
}
|
||||
bool ImageTransformer::didTransform() const {
|
||||
return transformed;
|
||||
}
|
||||
bool ImageTransformer::hasRegisteredImages3d() const {
|
||||
return !argIndexes.empty();
|
||||
}
|
||||
} // namespace NEO
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "opencl/source/kernel/kernel.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
class ImageTransformer {
|
||||
public:
|
||||
void registerImage3d(uint32_t argIndex);
|
||||
void transformImagesTo2dArray(const KernelInfo &kernelInfo, const std::vector<Kernel::SimpleKernelArgInfo> &kernelArguments, void *ssh);
|
||||
void transformImagesTo3d(const KernelInfo &kernelInfo, const std::vector<Kernel::SimpleKernelArgInfo> &kernelArguments, void *ssh);
|
||||
bool didTransform() const;
|
||||
bool hasRegisteredImages3d() const;
|
||||
|
||||
protected:
|
||||
bool transformed = false;
|
||||
std::vector<uint32_t> argIndexes;
|
||||
};
|
||||
} // namespace NEO
|
||||
@@ -56,7 +56,6 @@
|
||||
#include "opencl/source/helpers/dispatch_info.h"
|
||||
#include "opencl/source/helpers/get_info_status_mapper.h"
|
||||
#include "opencl/source/helpers/sampler_helpers.h"
|
||||
#include "opencl/source/kernel/image_transformer.h"
|
||||
#include "opencl/source/kernel/kernel_info_cl.h"
|
||||
#include "opencl/source/mem_obj/buffer.h"
|
||||
#include "opencl/source/mem_obj/image.h"
|
||||
@@ -85,7 +84,6 @@ Kernel::Kernel(Program *programArg, const KernelInfo &kernelInfoArg, ClDevice &c
|
||||
kernelInfo(kernelInfoArg) {
|
||||
program->retain();
|
||||
program->retainForKernel();
|
||||
imageTransformer.reset(new ImageTransformer);
|
||||
auto &deviceInfo = getDevice().getDevice().getDeviceInfo();
|
||||
if (isSimd1(kernelInfoArg.kernelDescriptor.kernelAttributes.simdSize)) {
|
||||
auto &productHelper = getDevice().getProductHelper();
|
||||
@@ -894,8 +892,6 @@ void Kernel::markArgPatchedAndResolveArgs(uint32_t argIndex) {
|
||||
migratableArgsMap.erase(argIndex);
|
||||
}
|
||||
}
|
||||
|
||||
resolveArgs();
|
||||
}
|
||||
|
||||
cl_int Kernel::setArg(uint32_t argIndex, size_t argSize, const void *argVal) {
|
||||
@@ -1725,10 +1721,6 @@ cl_int Kernel::setArgImageWithMipLevel(uint32_t argIndex,
|
||||
auto &imageFormat = pImage->getImageFormat();
|
||||
auto graphicsAllocation = pImage->getGraphicsAllocation(rootDeviceIndex);
|
||||
|
||||
if (imageDesc.image_type == CL_MEM_OBJECT_IMAGE3D) {
|
||||
imageTransformer->registerImage3d(argIndex);
|
||||
}
|
||||
|
||||
patch<uint32_t, cl_uint>(imageDesc.num_samples, crossThreadData, argAsImg.metadataPayload.numSamples);
|
||||
patch<uint32_t, cl_uint>(imageDesc.num_mip_levels, crossThreadData, argAsImg.metadataPayload.numMipLevels);
|
||||
patch<uint32_t, uint64_t>(imageDesc.image_width, crossThreadData, argAsImg.metadataPayload.imgWidth);
|
||||
@@ -1980,34 +1972,6 @@ cl_int Kernel::checkCorrectImageAccessQualifier(cl_uint argIndex,
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
void Kernel::resolveArgs() {
|
||||
if (!Kernel::isPatched() || !imageTransformer->hasRegisteredImages3d() || !canTransformImages())
|
||||
return;
|
||||
bool canTransformImageTo2dArray = true;
|
||||
const auto &args = kernelInfo.kernelDescriptor.payloadMappings.explicitArgs;
|
||||
for (uint32_t i = 0; i < patchedArgumentsNum; i++) {
|
||||
if (args[i].is<ArgDescriptor::argTSampler>()) {
|
||||
auto sampler = castToObject<Sampler>(kernelArguments.at(i).object);
|
||||
if (sampler->isTransformable()) {
|
||||
canTransformImageTo2dArray = true;
|
||||
} else {
|
||||
canTransformImageTo2dArray = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (canTransformImageTo2dArray) {
|
||||
imageTransformer->transformImagesTo2dArray(kernelInfo, kernelArguments, getSurfaceStateHeap());
|
||||
} else if (imageTransformer->didTransform()) {
|
||||
imageTransformer->transformImagesTo3d(kernelInfo, kernelArguments, getSurfaceStateHeap());
|
||||
}
|
||||
}
|
||||
|
||||
bool Kernel::canTransformImages() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::unique_ptr<KernelObjsForAuxTranslation> Kernel::fillWithKernelObjsForAuxTranslation() {
|
||||
auto kernelObjsForAuxTranslation = std::make_unique<KernelObjsForAuxTranslation>();
|
||||
kernelObjsForAuxTranslation->reserve(getKernelArgsNumber());
|
||||
|
||||
@@ -37,7 +37,6 @@ class Buffer;
|
||||
class CommandQueue;
|
||||
class CommandStreamReceiver;
|
||||
class GraphicsAllocation;
|
||||
class ImageTransformer;
|
||||
class Surface;
|
||||
class PrintfHandler;
|
||||
class MultiDeviceKernel;
|
||||
@@ -142,7 +141,6 @@ class Kernel : public ReferenceTrackedObject<Kernel> {
|
||||
|
||||
MOCKABLE_VIRTUAL cl_int cloneKernel(Kernel *pSourceKernel);
|
||||
|
||||
MOCKABLE_VIRTUAL bool canTransformImages() const;
|
||||
MOCKABLE_VIRTUAL bool isPatched() const;
|
||||
|
||||
// API entry points
|
||||
@@ -453,7 +451,6 @@ class Kernel : public ReferenceTrackedObject<Kernel> {
|
||||
void provideInitializationHints();
|
||||
|
||||
void markArgPatchedAndResolveArgs(uint32_t argIndex);
|
||||
void resolveArgs();
|
||||
|
||||
void reconfigureKernel();
|
||||
bool hasDirectStatelessAccessToSharedBuffer() const;
|
||||
@@ -484,7 +481,6 @@ class Kernel : public ReferenceTrackedObject<Kernel> {
|
||||
std::vector<PatchInfoData> patchInfoDataList;
|
||||
std::vector<size_t> slmSizes;
|
||||
|
||||
std::unique_ptr<ImageTransformer> imageTransformer;
|
||||
std::unique_ptr<char[]> pSshLocal;
|
||||
std::unique_ptr<ImplicitArgs> pImplicitArgs = nullptr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user