feature: Add support for BUFFER_SIZE explicit argument

Related-To: NEO-13972

Signed-off-by: Vysochyn, Illia <illia.vysochyn@intel.com>
This commit is contained in:
Vysochyn, Illia
2025-04-07 12:28:48 +00:00
committed by Compute-Runtime-Automation
parent 8978ea5e5a
commit 146a7f7b9b
8 changed files with 43 additions and 5 deletions

View File

@@ -134,6 +134,7 @@ inline constexpr ConstStringRef regionGroupDimension("region_group_dimension");
inline constexpr ConstStringRef regionGroupWgCount("region_group_wg_count");
inline constexpr ConstStringRef regionGroupBarrierBuffer("region_group_barrier_buffer");
inline constexpr ConstStringRef inlineSampler("inline_sampler");
inline constexpr ConstStringRef bufferSize("buffer_size");
namespace Image {
inline constexpr ConstStringRef width("image_width");
@@ -540,6 +541,7 @@ enum ArgType : uint8_t {
argTypeRegionGroupWgCount,
argTypeRegionGroupBarrierBuffer,
argTypeInlineSampler,
argTypeBufferSize,
argTypeMax
};

View File

@@ -1487,6 +1487,9 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
case Types::Kernel::argTypeInlineSampler:
return populateInlineSampler(dst, Tags::Kernel::PayloadArgument::ArgType::inlineSampler);
case Types::Kernel::argTypeBufferSize:
return populateWithOffsetChecked(dst.payloadMappings.explicitArgs[src.argIndex].as<ArgDescPointer>(true).bufferSize, sizeof(int64_t), Tags::Kernel::PayloadArgument::ArgType::bufferSize);
}
UNREACHABLE();

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2022-2024 Intel Corporation
* Copyright (C) 2022-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -22,7 +22,7 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
using ArgType = Types::Kernel::ArgType;
inline constexpr ConstStringRef name = "argument type";
inline constexpr LookupArray<ConstStringRef, ArgType, 46> lookup({{
inline constexpr LookupArray<ConstStringRef, ArgType, 47> lookup({{
{packedLocalIds, ArgType::argTypePackedLocalIds},
{localId, ArgType::argTypeLocalId},
{localSize, ArgType::argTypeLocalSize},
@@ -69,6 +69,7 @@ inline constexpr LookupArray<ConstStringRef, ArgType, 46> lookup({{
{regionGroupWgCount, ArgType::argTypeRegionGroupWgCount},
{regionGroupBarrierBuffer, ArgType::argTypeRegionGroupBarrierBuffer},
{inlineSampler, ArgType::argTypeInlineSampler},
{bufferSize, ArgType::argTypeBufferSize},
}});
static_assert(lookup.size() == ArgType::argTypeMax - 1, "Every enum field must be present");
} // namespace ArgType