feature: initial support for new zeinfo args

Related-To: NEO-8070

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2023-12-18 18:25:00 +00:00
committed by Compute-Runtime-Automation
parent dd1b9d6abc
commit c612a86d28
5 changed files with 166 additions and 41 deletions

View File

@@ -123,6 +123,9 @@ inline constexpr ConstStringRef dataGlobalBuffer("global_base");
inline constexpr ConstStringRef assertBuffer("assert_buffer");
inline constexpr ConstStringRef indirectDataPointer("indirect_data_pointer");
inline constexpr ConstStringRef scratchPointer("scratch_pointer");
inline constexpr ConstStringRef regionGroupSize("region_group_size");
inline constexpr ConstStringRef regionGroupDimension("region_group_dimension");
inline constexpr ConstStringRef regionGroupWgCount("region_group_wg_count");
namespace Image {
inline constexpr ConstStringRef width("image_width");
@@ -492,6 +495,9 @@ enum ArgType : uint8_t {
argTypeAssertBuffer,
argTypeIndirectDataPointer,
argTypeScratchPointer,
argTypeRegionGroupSize,
argTypeRegionGroupDimension,
argTypeRegionGroupWgCount,
argTypeMax
};

View File

@@ -1343,6 +1343,15 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
case Types::Kernel::argTypeVmeSearchPathType:
return populateWithOffset(getVmeDescriptor()->searchPathType);
case Types::Kernel::argTypeRegionGroupSize:
return populateArgVec(dst.payloadMappings.dispatchTraits.regionGroupSize, Tags::Kernel::PayloadArgument::ArgType::regionGroupSize);
case Types::Kernel::argTypeRegionGroupDimension:
return populateWithOffsetChecked(dst.payloadMappings.dispatchTraits.regionGroupDimension, sizeof(int32_t), Tags::Kernel::PayloadArgument::ArgType::regionGroupDimension);
case Types::Kernel::argTypeRegionGroupWgCount:
return populateWithOffsetChecked(dst.payloadMappings.dispatchTraits.regionGroupWgCount, sizeof(int32_t), Tags::Kernel::PayloadArgument::ArgType::regionGroupWgCount);
}
UNREACHABLE();

View File

@@ -22,47 +22,52 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
using ArgType = Types::Kernel::ArgType;
inline constexpr ConstStringRef name = "argument type";
inline constexpr LookupArray<ConstStringRef, ArgType, 41> lookup({{{packedLocalIds, ArgType::argTypePackedLocalIds},
{localId, ArgType::argTypeLocalId},
{localSize, ArgType::argTypeLocalSize},
{groupCount, ArgType::argTypeGroupCount},
{globalSize, ArgType::argTypeGlobalSize},
{enqueuedLocalSize, ArgType::argTypeEnqueuedLocalSize},
{globalIdOffset, ArgType::argTypeGlobalIdOffset},
{privateBaseStateless, ArgType::argTypePrivateBaseStateless},
{argByvalue, ArgType::argTypeArgByvalue},
{argBypointer, ArgType::argTypeArgBypointer},
{bufferAddress, ArgType::argTypeBufferAddress},
{bufferOffset, ArgType::argTypeBufferOffset},
{printfBuffer, ArgType::argTypePrintfBuffer},
{workDimensions, ArgType::argTypeWorkDimensions},
{implicitArgBuffer, ArgType::argTypeImplicitArgBuffer},
{width, ArgType::argTypeImageWidth},
{height, ArgType::argTypeImageHeight},
{depth, ArgType::argTypeImageDepth},
{channelDataType, ArgType::argTypeImageChannelDataType},
{channelOrder, ArgType::argTypeImageChannelOrder},
{arraySize, ArgType::argTypeImageArraySize},
{numSamples, ArgType::argTypeImageNumSamples},
{numMipLevels, ArgType::argTypeImageMipLevels},
{flatBaseOffset, ArgType::argTypeImageFlatBaseOffset},
{flatWidth, ArgType::argTypeImageFlatWidth},
{flatHeight, ArgType::argTypeImageFlatHeight},
{flatPitch, ArgType::argTypeImageFlatPitch},
{snapWa, ArgType::argTypeSamplerSnapWa},
{normCoords, ArgType::argTypeSamplerNormCoords},
{addrMode, ArgType::argTypeSamplerAddrMode},
{blockType, ArgType::argTypeVmeMbBlockType},
{subpixelMode, ArgType::argTypeVmeSubpixelMode},
{sadAdjustMode, ArgType::argTypeVmeSadAdjustMode},
{searchPathType, ArgType::argTypeVmeSearchPathType},
{syncBuffer, ArgType::argTypeSyncBuffer},
{rtGlobalBuffer, ArgType::argTypeRtGlobalBuffer},
{dataConstBuffer, ArgType::argTypeDataConstBuffer},
{dataGlobalBuffer, ArgType::argTypeDataGlobalBuffer},
{assertBuffer, ArgType::argTypeAssertBuffer},
{indirectDataPointer, ArgType::argTypeIndirectDataPointer},
{scratchPointer, ArgType::argTypeScratchPointer}}});
inline constexpr LookupArray<ConstStringRef, ArgType, 44> lookup({{
{packedLocalIds, ArgType::argTypePackedLocalIds},
{localId, ArgType::argTypeLocalId},
{localSize, ArgType::argTypeLocalSize},
{groupCount, ArgType::argTypeGroupCount},
{globalSize, ArgType::argTypeGlobalSize},
{enqueuedLocalSize, ArgType::argTypeEnqueuedLocalSize},
{globalIdOffset, ArgType::argTypeGlobalIdOffset},
{privateBaseStateless, ArgType::argTypePrivateBaseStateless},
{argByvalue, ArgType::argTypeArgByvalue},
{argBypointer, ArgType::argTypeArgBypointer},
{bufferAddress, ArgType::argTypeBufferAddress},
{bufferOffset, ArgType::argTypeBufferOffset},
{printfBuffer, ArgType::argTypePrintfBuffer},
{workDimensions, ArgType::argTypeWorkDimensions},
{implicitArgBuffer, ArgType::argTypeImplicitArgBuffer},
{width, ArgType::argTypeImageWidth},
{height, ArgType::argTypeImageHeight},
{depth, ArgType::argTypeImageDepth},
{channelDataType, ArgType::argTypeImageChannelDataType},
{channelOrder, ArgType::argTypeImageChannelOrder},
{arraySize, ArgType::argTypeImageArraySize},
{numSamples, ArgType::argTypeImageNumSamples},
{numMipLevels, ArgType::argTypeImageMipLevels},
{flatBaseOffset, ArgType::argTypeImageFlatBaseOffset},
{flatWidth, ArgType::argTypeImageFlatWidth},
{flatHeight, ArgType::argTypeImageFlatHeight},
{flatPitch, ArgType::argTypeImageFlatPitch},
{snapWa, ArgType::argTypeSamplerSnapWa},
{normCoords, ArgType::argTypeSamplerNormCoords},
{addrMode, ArgType::argTypeSamplerAddrMode},
{blockType, ArgType::argTypeVmeMbBlockType},
{subpixelMode, ArgType::argTypeVmeSubpixelMode},
{sadAdjustMode, ArgType::argTypeVmeSadAdjustMode},
{searchPathType, ArgType::argTypeVmeSearchPathType},
{syncBuffer, ArgType::argTypeSyncBuffer},
{rtGlobalBuffer, ArgType::argTypeRtGlobalBuffer},
{dataConstBuffer, ArgType::argTypeDataConstBuffer},
{dataGlobalBuffer, ArgType::argTypeDataGlobalBuffer},
{assertBuffer, ArgType::argTypeAssertBuffer},
{indirectDataPointer, ArgType::argTypeIndirectDataPointer},
{scratchPointer, ArgType::argTypeScratchPointer},
{regionGroupSize, ArgType::argTypeRegionGroupSize},
{regionGroupDimension, ArgType::argTypeRegionGroupDimension},
{regionGroupWgCount, ArgType::argTypeRegionGroupWgCount},
}});
static_assert(lookup.size() == ArgType::argTypeMax - 1, "Every enum field must be present");
} // namespace ArgType