Do not force cl_khr_3d_image_writes extension when compiling kernels

Update usage of SUPPORTED_IMAGES flag and do not use images when disabled.
Use SUPPORTED_2_0 only on fully OCL 2.1 conformant platforms.

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2020-11-25 15:11:11 +01:00
committed by Compute-Runtime-Automation
parent 1792516043
commit 6c4b1f951c
56 changed files with 727 additions and 299 deletions

View File

@@ -24,11 +24,6 @@ enum class Builtin : uint32_t {
CopyBufferRectBytes3d,
CopyBufferToBufferMiddle,
CopyBufferToBufferSide,
CopyBufferToImage3d16Bytes,
CopyBufferToImage3d2Bytes,
CopyBufferToImage3d4Bytes,
CopyBufferToImage3d8Bytes,
CopyBufferToImage3dBytes,
FillBufferImmediate,
FillBufferSSHOffset,
QueryKernelTimestamps,
@@ -37,7 +32,12 @@ enum class Builtin : uint32_t {
};
enum class ImageBuiltin : uint32_t {
CopyImage3dToBuffer16Bytes = 0u,
CopyBufferToImage3d16Bytes = 0u,
CopyBufferToImage3d2Bytes,
CopyBufferToImage3d4Bytes,
CopyBufferToImage3d8Bytes,
CopyBufferToImage3dBytes,
CopyImage3dToBuffer16Bytes,
CopyImage3dToBuffer2Bytes,
CopyImage3dToBuffer4Bytes,
CopyImage3dToBuffer8Bytes,

View File

@@ -46,26 +46,6 @@ void BuiltinFunctionsLibImpl::initFunctions() {
builtinName = "CopyBufferToBufferSideRegion";
builtin = NEO::EBuiltInOps::CopyBufferToBuffer;
break;
case Builtin::CopyBufferToImage3d16Bytes:
builtinName = "CopyBufferToImage3d16Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case Builtin::CopyBufferToImage3d2Bytes:
builtinName = "CopyBufferToImage3d2Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case Builtin::CopyBufferToImage3d4Bytes:
builtinName = "CopyBufferToImage3d4Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case Builtin::CopyBufferToImage3d8Bytes:
builtinName = "CopyBufferToImage3d8Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case Builtin::CopyBufferToImage3dBytes:
builtinName = "CopyBufferToImage3dBytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case Builtin::FillBufferImmediate:
builtinName = "FillBufferImmediate";
builtin = NEO::EBuiltInOps::FillBuffer;
@@ -96,6 +76,26 @@ void BuiltinFunctionsLibImpl::initImageFunctions() {
NEO::EBuiltInOps::Type builtin;
switch (static_cast<ImageBuiltin>(builtId)) {
case ImageBuiltin::CopyBufferToImage3d16Bytes:
builtinName = "CopyBufferToImage3d16Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case ImageBuiltin::CopyBufferToImage3d2Bytes:
builtinName = "CopyBufferToImage3d2Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case ImageBuiltin::CopyBufferToImage3d4Bytes:
builtinName = "CopyBufferToImage3d4Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case ImageBuiltin::CopyBufferToImage3d8Bytes:
builtinName = "CopyBufferToImage3d8Bytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case ImageBuiltin::CopyBufferToImage3dBytes:
builtinName = "CopyBufferToImage3dBytes";
builtin = NEO::EBuiltInOps::CopyBufferToImage3d;
break;
case ImageBuiltin::CopyImage3dToBuffer16Bytes:
builtinName = "CopyImage3dToBuffer16Bytes";
builtin = NEO::EBuiltInOps::CopyImage3dToBuffer;

View File

@@ -326,19 +326,19 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendImageCopyFromMemory(ze_i
default:
UNRECOVERABLE_IF(true);
case 1u:
builtinKernel = device->getBuiltinFunctionsLib()->getFunction(Builtin::CopyBufferToImage3dBytes);
builtinKernel = device->getBuiltinFunctionsLib()->getImageFunction(ImageBuiltin::CopyBufferToImage3dBytes);
break;
case 2u:
builtinKernel = device->getBuiltinFunctionsLib()->getFunction(Builtin::CopyBufferToImage3d2Bytes);
builtinKernel = device->getBuiltinFunctionsLib()->getImageFunction(ImageBuiltin::CopyBufferToImage3d2Bytes);
break;
case 4u:
builtinKernel = device->getBuiltinFunctionsLib()->getFunction(Builtin::CopyBufferToImage3d4Bytes);
builtinKernel = device->getBuiltinFunctionsLib()->getImageFunction(ImageBuiltin::CopyBufferToImage3d4Bytes);
break;
case 8u:
builtinKernel = device->getBuiltinFunctionsLib()->getFunction(Builtin::CopyBufferToImage3d8Bytes);
builtinKernel = device->getBuiltinFunctionsLib()->getImageFunction(ImageBuiltin::CopyBufferToImage3d8Bytes);
break;
case 16u:
builtinKernel = device->getBuiltinFunctionsLib()->getFunction(Builtin::CopyBufferToImage3d16Bytes);
builtinKernel = device->getBuiltinFunctionsLib()->getImageFunction(ImageBuiltin::CopyBufferToImage3d16Bytes);
break;
}