Reduce binaries sizes 2/n

Observed about 50MB reduction in overall binaries size (directory build))
when building all targets
with MSVC (Visual Studio 2022 17.3.0 preview 6)
using Debug 64 configuration.

Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk 2022-12-08 14:23:49 +00:00 committed by Compute-Runtime-Automation
parent 75c0a2f7ee
commit 6993ed5c52
53 changed files with 847 additions and 847 deletions

View File

@ -19,7 +19,7 @@ namespace L0 {
struct EventPool; struct EventPool;
struct Event; struct Event;
constexpr size_t maxImmediateCommandSize = 4 * MemoryConstants::kiloByte; inline constexpr size_t maxImmediateCommandSize = 4 * MemoryConstants::kiloByte;
template <GFXCORE_FAMILY gfxCoreFamily> template <GFXCORE_FAMILY gfxCoreFamily>
struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFamily> { struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFamily> {

View File

@ -30,8 +30,8 @@ struct DriverHandleImp;
struct Device; struct Device;
namespace EventPacketsCount { namespace EventPacketsCount {
constexpr uint32_t maxKernelSplit = 3; inline constexpr uint32_t maxKernelSplit = 3;
constexpr uint32_t eventPackets = maxKernelSplit * NEO ::TimestampPacketSizeControl::preferredPacketCount; inline constexpr uint32_t eventPackets = maxKernelSplit * NEO ::TimestampPacketSizeControl::preferredPacketCount;
} // namespace EventPacketsCount } // namespace EventPacketsCount
struct Event : _ze_event_handle_t { struct Event : _ze_event_handle_t {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020-2021 Intel Corporation * Copyright (C) 2020-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -13,234 +13,234 @@
namespace L0 { namespace L0 {
namespace ImageFormats { namespace ImageFormats {
constexpr uint32_t ZE_IMAGE_FORMAT_RENDER_LAYOUT_MAX = 43u; inline constexpr uint32_t ZE_IMAGE_FORMAT_RENDER_LAYOUT_MAX = 43u;
using FormatTypes = std::array<NEO::SurfaceFormatInfo, 5u>; using FormatTypes = std::array<NEO::SurfaceFormatInfo, 5u>;
constexpr std::array<NEO::SurfaceFormatInfo, 5u> surfaceFormatsForRedescribe = { inline constexpr std::array<NEO::SurfaceFormatInfo, 5u> surfaceFormatsForRedescribe = {
{{GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1}, {{GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1},
{GMM_FORMAT_R16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UINT, 0, 1, 2, 2}, {GMM_FORMAT_R16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UINT, 0, 1, 2, 2},
{GMM_FORMAT_R32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UINT, 0, 1, 4, 4}, {GMM_FORMAT_R32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UINT, 0, 1, 4, 4},
{GMM_FORMAT_R32G32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UINT, 0, 2, 4, 8}, {GMM_FORMAT_R32G32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UINT, 0, 2, 4, 8},
{GMM_FORMAT_R32G32B32A32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UINT, 0, 4, 4, 16}}}; {GMM_FORMAT_R32G32B32A32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UINT, 0, 4, 4, 16}}};
constexpr FormatTypes layout8 = {{{GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1}, inline constexpr FormatTypes layout8 = {{{GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1},
{GMM_FORMAT_R8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_SINT, 0, 1, 1, 1}, {GMM_FORMAT_R8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_SINT, 0, 1, 1, 1},
{GMM_FORMAT_R8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UNORM, 0, 1, 1, 1}, {GMM_FORMAT_R8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UNORM, 0, 1, 1, 1},
{GMM_FORMAT_R8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_SNORM, 0, 1, 1, 1}, {GMM_FORMAT_R8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_SNORM, 0, 1, 1, 1},
{GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1}}}; {GMM_FORMAT_R8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 1, 1, 1}}};
constexpr FormatTypes layout88 = {{{GMM_FORMAT_R8G8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UINT, 0, 2, 1, 2}, inline constexpr FormatTypes layout88 = {{{GMM_FORMAT_R8G8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UINT, 0, 2, 1, 2},
{GMM_FORMAT_R8G8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SINT, 0, 2, 1, 2}, {GMM_FORMAT_R8G8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SINT, 0, 2, 1, 2},
{GMM_FORMAT_R8G8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UNORM, 0, 2, 1, 2}, {GMM_FORMAT_R8G8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UNORM, 0, 2, 1, 2},
{GMM_FORMAT_R8G8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SNORM, 0, 2, 1, 2}, {GMM_FORMAT_R8G8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SNORM, 0, 2, 1, 2},
{GMM_FORMAT_R8G8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UINT, 0, 2, 1, 2}}}; {GMM_FORMAT_R8G8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UINT, 0, 2, 1, 2}}};
constexpr FormatTypes layout8888 = {{{GMM_FORMAT_R8G8B8A8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UINT, 0, 4, 1, 4}, inline constexpr FormatTypes layout8888 = {{{GMM_FORMAT_R8G8B8A8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UINT, 0, 4, 1, 4},
{GMM_FORMAT_R8G8B8A8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SINT, 0, 4, 1, 4}, {GMM_FORMAT_R8G8B8A8_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SINT, 0, 4, 1, 4},
{GMM_FORMAT_R8G8B8A8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_R8G8B8A8_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_R8G8B8A8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SNORM, 0, 4, 1, 4}, {GMM_FORMAT_R8G8B8A8_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SNORM, 0, 4, 1, 4},
{GMM_FORMAT_R8G8B8A8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UINT, 0, 4, 1, 4}}}; {GMM_FORMAT_R8G8B8A8_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UINT, 0, 4, 1, 4}}};
constexpr FormatTypes layout16 = {{{GMM_FORMAT_R16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UINT, 0, 1, 2, 2}, inline constexpr FormatTypes layout16 = {{{GMM_FORMAT_R16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UINT, 0, 1, 2, 2},
{GMM_FORMAT_R16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_SINT, 0, 1, 2, 2}, {GMM_FORMAT_R16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_SINT, 0, 1, 2, 2},
{GMM_FORMAT_R16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UNORM, 0, 1, 2, 2}, {GMM_FORMAT_R16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_UNORM, 0, 1, 2, 2},
{GMM_FORMAT_R16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_SNORM, 0, 1, 2, 2}, {GMM_FORMAT_R16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_SNORM, 0, 1, 2, 2},
{GMM_FORMAT_R16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_FLOAT, 0, 1, 2, 2}}}; {GMM_FORMAT_R16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16_FLOAT, 0, 1, 2, 2}}};
constexpr FormatTypes layout1616 = {{{GMM_FORMAT_R16G16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UINT, 0, 2, 2, 4}, inline constexpr FormatTypes layout1616 = {{{GMM_FORMAT_R16G16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UINT, 0, 2, 2, 4},
{GMM_FORMAT_R16G16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SINT, 0, 2, 2, 4}, {GMM_FORMAT_R16G16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SINT, 0, 2, 2, 4},
{GMM_FORMAT_R16G16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UNORM, 0, 2, 2, 4}, {GMM_FORMAT_R16G16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UNORM, 0, 2, 2, 4},
{GMM_FORMAT_R16G16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SNORM, 0, 2, 2, 4}, {GMM_FORMAT_R16G16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SNORM, 0, 2, 2, 4},
{GMM_FORMAT_R16G16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_FLOAT, 0, 2, 2, 4}}}; {GMM_FORMAT_R16G16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_FLOAT, 0, 2, 2, 4}}};
constexpr FormatTypes layout16161616 = {{{GMM_FORMAT_R16G16B16A16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UINT, 0, 4, 2, 8}, inline constexpr FormatTypes layout16161616 = {{{GMM_FORMAT_R16G16B16A16_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UINT, 0, 4, 2, 8},
{GMM_FORMAT_R16G16B16A16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_SINT, 0, 4, 2, 8}, {GMM_FORMAT_R16G16B16A16_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_SINT, 0, 4, 2, 8},
{GMM_FORMAT_R16G16B16A16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_R16G16B16A16_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_R16G16B16A16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_SNORM, 0, 4, 2, 8}, {GMM_FORMAT_R16G16B16A16_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_SNORM, 0, 4, 2, 8},
{GMM_FORMAT_R16G16B16A16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_FLOAT, 0, 4, 2, 8}}}; {GMM_FORMAT_R16G16B16A16_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_FLOAT, 0, 4, 2, 8}}};
constexpr FormatTypes layout32 = {{{GMM_FORMAT_R32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UINT, 0, 1, 4, 4}, inline constexpr FormatTypes layout32 = {{{GMM_FORMAT_R32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UINT, 0, 1, 4, 4},
{GMM_FORMAT_R32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_SINT, 0, 1, 4, 4}, {GMM_FORMAT_R32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_SINT, 0, 1, 4, 4},
{GMM_FORMAT_R32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UNORM, 0, 1, 4, 4}, {GMM_FORMAT_R32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_UNORM, 0, 1, 4, 4},
{GMM_FORMAT_R32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_SNORM, 0, 1, 4, 4}, {GMM_FORMAT_R32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_SNORM, 0, 1, 4, 4},
{GMM_FORMAT_R32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_FLOAT, 0, 1, 4, 4}}}; {GMM_FORMAT_R32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32_FLOAT, 0, 1, 4, 4}}};
constexpr FormatTypes layout3232 = {{{GMM_FORMAT_R32G32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UINT, 0, 2, 4, 8}, inline constexpr FormatTypes layout3232 = {{{GMM_FORMAT_R32G32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UINT, 0, 2, 4, 8},
{GMM_FORMAT_R32G32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_SINT, 0, 2, 4, 8}, {GMM_FORMAT_R32G32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_SINT, 0, 2, 4, 8},
{GMM_FORMAT_R32G32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UNORM, 0, 2, 4, 8}, {GMM_FORMAT_R32G32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_UNORM, 0, 2, 4, 8},
{GMM_FORMAT_R32G32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_SNORM, 0, 2, 4, 8}, {GMM_FORMAT_R32G32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_SNORM, 0, 2, 4, 8},
{GMM_FORMAT_R32G32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_FLOAT, 0, 2, 4, 8}}}; {GMM_FORMAT_R32G32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32_FLOAT, 0, 2, 4, 8}}};
constexpr FormatTypes layout32323232 = {{{GMM_FORMAT_R32G32B32A32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UINT, 0, 4, 4, 16}, inline constexpr FormatTypes layout32323232 = {{{GMM_FORMAT_R32G32B32A32_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UINT, 0, 4, 4, 16},
{GMM_FORMAT_R32G32B32A32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_SINT, 0, 4, 4, 16}, {GMM_FORMAT_R32G32B32A32_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_SINT, 0, 4, 4, 16},
{GMM_FORMAT_R32G32B32A32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UNORM, 0, 4, 4, 16}, {GMM_FORMAT_R32G32B32A32_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_UNORM, 0, 4, 4, 16},
{GMM_FORMAT_R32G32B32A32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_SNORM, 0, 4, 4, 16}, {GMM_FORMAT_R32G32B32A32_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_SNORM, 0, 4, 4, 16},
{GMM_FORMAT_R32G32B32A32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_FLOAT, 0, 4, 4, 16}}}; {GMM_FORMAT_R32G32B32A32_FLOAT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R32G32B32A32_FLOAT, 0, 4, 4, 16}}};
constexpr FormatTypes layout1010102 = {{{GMM_FORMAT_R10G10B10A2_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UINT, 0, 4, 1, 4}, inline constexpr FormatTypes layout1010102 = {{{GMM_FORMAT_R10G10B10A2_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UINT, 0, 4, 1, 4},
{GMM_FORMAT_R10G10B10A2_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_SINT, 0, 4, 1, 4}, {GMM_FORMAT_R10G10B10A2_SINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_SINT, 0, 4, 1, 4},
{GMM_FORMAT_R10G10B10A2_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_R10G10B10A2_UNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_R10G10B10A2_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_SNORM, 0, 4, 1, 4}, {GMM_FORMAT_R10G10B10A2_SNORM_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_SNORM, 0, 4, 1, 4},
{GMM_FORMAT_R10G10B10A2_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UINT, 0, 4, 1, 4}}}; {GMM_FORMAT_R10G10B10A2_UINT_TYPE, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UINT, 0, 4, 1, 4}}};
constexpr FormatTypes layout111110 = {{{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}, inline constexpr FormatTypes layout111110 = {{{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4},
{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}, {GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4},
{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}, {GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4},
{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}, {GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4},
{GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}}}; {GMM_FORMAT_R11G11B10_FLOAT, NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT, 0, 3, 0, 4}}};
constexpr FormatTypes layout565 = {{{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}, inline constexpr FormatTypes layout565 = {{{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2},
{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}, {GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2},
{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}, {GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2},
{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}, {GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2},
{GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}}}; {GMM_FORMAT_B5G6R5_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM, 0, 3, 0, 2}}};
constexpr FormatTypes layout5551 = {{{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}, inline constexpr FormatTypes layout5551 = {{{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2},
{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}, {GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2},
{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}, {GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2},
{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}, {GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2},
{GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}}}; {GMM_FORMAT_B5G5R5A1_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM, 0, 4, 0, 2}}};
constexpr FormatTypes layout4444 = {{{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}, inline constexpr FormatTypes layout4444 = {{{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2},
{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}, {GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2},
{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}, {GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2},
{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}, {GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2},
{GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}}}; {GMM_FORMAT_B4G4R4A4_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM, 0, 4, 1, 2}}};
constexpr FormatTypes layoutY8 = {{{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}, inline constexpr FormatTypes layoutY8 = {{{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1},
{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}, {GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1},
{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}, {GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1},
{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}, {GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1},
{GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}}}; {GMM_FORMAT_Y8_UNORM, NEO::GFX3DSTATE_SURFACEFORMAT_Y8_UNORM, 0, 1, 1, 1}}};
constexpr FormatTypes layoutNV12 = {{{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, inline constexpr FormatTypes layoutNV12 = {{{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}}; {GMM_FORMAT_NV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}};
constexpr FormatTypes layoutYUYV = {{{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, inline constexpr FormatTypes layoutYUYV = {{{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}}}; {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}}};
constexpr FormatTypes layoutVYUY = {{{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}, inline constexpr FormatTypes layoutVYUY = {{{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}}}; {GMM_FORMAT_YCRCB_SWAPUVY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY, 0, 2, 1, 2}}};
constexpr FormatTypes layoutYVYU = {{{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}, inline constexpr FormatTypes layoutYVYU = {{{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}}}; {GMM_FORMAT_YCRCB_SWAPUV, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV, 0, 2, 1, 2}}};
constexpr FormatTypes layoutUYVY = {{{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}, inline constexpr FormatTypes layoutUYVY = {{{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}}}; {GMM_FORMAT_YCRCB_SWAPY, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY, 0, 2, 1, 2}}};
constexpr FormatTypes layoutAYUV = {{{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}, inline constexpr FormatTypes layoutAYUV = {{{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}}}; {GMM_FORMAT_AYUV, NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM, 0, 4, 1, 4}}};
constexpr FormatTypes layoutY410 = {{{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}, inline constexpr FormatTypes layoutY410 = {{{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}, {GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4},
{GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}}}; {GMM_FORMAT_Y410, NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM, 0, 4, 1, 4}}};
constexpr FormatTypes layoutY16 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutY16 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutP010 = {{{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, inline constexpr FormatTypes layoutP010 = {{{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}}; {GMM_FORMAT_P010, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}};
constexpr FormatTypes layoutP012 = {{{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, inline constexpr FormatTypes layoutP012 = {{{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}}; {GMM_FORMAT_P012, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}};
constexpr FormatTypes layoutP016 = {{{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, inline constexpr FormatTypes layoutP016 = {{{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}, {GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1},
{GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}}; {GMM_FORMAT_P016, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_16, 0, 2, 1, 1}}};
constexpr FormatTypes layoutY216 = {{{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, inline constexpr FormatTypes layoutY216 = {{{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}}; {GMM_FORMAT_Y216, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}};
constexpr FormatTypes layoutP216 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutP216 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutP8 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutP8 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutYUY2 = {{{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, inline constexpr FormatTypes layoutYUY2 = {{{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}, {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2},
{GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}}}; {GMM_FORMAT_YCRCB_NORMAL, NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL, 0, 2, 1, 2}}};
constexpr FormatTypes layoutA8P8 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutA8P8 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutIA44 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutIA44 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutAI44 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layoutAI44 = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutY416 = {{{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, inline constexpr FormatTypes layoutY416 = {{{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}}; {GMM_FORMAT_Y416, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}};
constexpr FormatTypes layoutY210 = {{{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, inline constexpr FormatTypes layoutY210 = {{{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}, {GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8},
{GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}}; {GMM_FORMAT_Y210, NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM, 0, 4, 2, 8}}};
constexpr FormatTypes layoutI420 = {{{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, inline constexpr FormatTypes layoutI420 = {{{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}}; {GMM_FORMAT_I420, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}};
constexpr FormatTypes layoutYV12 = {{{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, inline constexpr FormatTypes layoutYV12 = {{{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}, {GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1},
{GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}}; {GMM_FORMAT_YV12, NEO::GFX3DSTATE_SURFACEFORMAT_PLANAR_420_8, 0, 1, 1, 1}}};
constexpr FormatTypes layout400P = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layout400P = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layout422H = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layout422H = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layout422V = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layout422V = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layout444P = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, inline constexpr FormatTypes layout444P = {{{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}, {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1},
{GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}}; {GMM_FORMAT_INVALID, NEO::NUM_GFX3DSTATE_SURFACEFORMATS, 0, 1, 1, 1}}};
constexpr FormatTypes layoutRGBP = {{{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, inline constexpr FormatTypes layoutRGBP = {{{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}}}; {GMM_FORMAT_RGBP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}}};
constexpr FormatTypes layoutBGRP = {{{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, inline constexpr FormatTypes layoutBGRP = {{{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}, {GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3},
{GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}}}; {GMM_FORMAT_BGRP, NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT, 0, 3, 1, 3}}};
constexpr std::array<FormatTypes, ZE_IMAGE_FORMAT_RENDER_LAYOUT_MAX> formats = {layout8, layout16, layout32, layout88, layout8888, layout1616, layout16161616, layout3232, layout32323232, layout1010102, inline constexpr std::array<FormatTypes, ZE_IMAGE_FORMAT_RENDER_LAYOUT_MAX> formats = {layout8, layout16, layout32, layout88, layout8888, layout1616, layout16161616, layout3232, layout32323232, layout1010102,
layout111110, layout565, layout5551, layout4444, layoutY8, layoutNV12, layoutYUYV, layoutVYUY, layoutYVYU, layoutUYVY, layout111110, layout565, layout5551, layout4444, layoutY8, layoutNV12, layoutYUYV, layoutVYUY, layoutYVYU, layoutUYVY,
layoutAYUV, layoutP010, layoutY410, layoutP012, layoutY16, layoutP016, layoutY216, layoutP216, layoutP8, layoutYUY2, layoutAYUV, layoutP010, layoutY410, layoutP012, layoutY16, layoutP016, layoutY216, layoutP216, layoutP8, layoutYUY2,
layoutA8P8, layoutIA44, layoutAI44, layoutY416, layoutY210, layoutI420, layoutYV12, layout400P, layout422H, layout422V, layoutA8P8, layoutIA44, layoutAI44, layoutY416, layoutY210, layoutI420, layoutYV12, layout400P, layout422H, layout422V,

View File

@ -13,8 +13,8 @@ namespace EBuiltInOps {
using Type = uint32_t; using Type = uint32_t;
constexpr Type VmeBlockMotionEstimateIntel{MaxCoreValue + 1}; inline constexpr Type VmeBlockMotionEstimateIntel{MaxCoreValue + 1};
constexpr Type VmeBlockAdvancedMotionEstimateCheckIntel{MaxCoreValue + 2}; inline constexpr Type VmeBlockAdvancedMotionEstimateCheckIntel{MaxCoreValue + 2};
constexpr Type VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel{MaxCoreValue + 3}; inline constexpr Type VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel{MaxCoreValue + 3};
} // namespace EBuiltInOps } // namespace EBuiltInOps
} // namespace NEO } // namespace NEO

View File

@ -50,10 +50,10 @@ typedef enum _tracing_notify_state_t {
TRACING_NOTIFY_STATE_EXIT_CALLED = 2, TRACING_NOTIFY_STATE_EXIT_CALLED = 2,
} tracing_notify_state_t; } tracing_notify_state_t;
constexpr size_t TRACING_MAX_HANDLE_COUNT = 16; inline constexpr size_t TRACING_MAX_HANDLE_COUNT = 16;
constexpr uint32_t TRACING_STATE_ENABLED_BIT = 0x80000000u; inline constexpr uint32_t TRACING_STATE_ENABLED_BIT = 0x80000000u;
constexpr uint32_t TRACING_STATE_LOCKED_BIT = 0x40000000u; inline constexpr uint32_t TRACING_STATE_LOCKED_BIT = 0x40000000u;
extern std::atomic<uint32_t> tracingState; extern std::atomic<uint32_t> tracingState;
extern TracingHandle *tracingHandle[TRACING_MAX_HANDLE_COUNT]; extern TracingHandle *tracingHandle[TRACING_MAX_HANDLE_COUNT];

View File

@ -24,7 +24,7 @@
using namespace NEO; using namespace NEO;
constexpr int maxHintCounter = 6; inline constexpr int maxHintCounter = 6;
bool containsHint(const char *providedHint, char *userData); bool containsHint(const char *providedHint, char *userData);

View File

@ -17,15 +17,15 @@ void printOclocCmdLine(const std::vector<std::string> &args);
void printHelp(OclocArgHelper *helper); void printHelp(OclocArgHelper *helper);
namespace CommandNames { namespace CommandNames {
constexpr NEO::ConstStringRef compile = "compile"; inline constexpr NEO::ConstStringRef compile = "compile";
constexpr NEO::ConstStringRef link = "link"; inline constexpr NEO::ConstStringRef link = "link";
constexpr NEO::ConstStringRef disassemble = "disasm"; inline constexpr NEO::ConstStringRef disassemble = "disasm";
constexpr NEO::ConstStringRef assemble = "asm"; inline constexpr NEO::ConstStringRef assemble = "asm";
constexpr NEO::ConstStringRef multi = "multi"; inline constexpr NEO::ConstStringRef multi = "multi";
constexpr NEO::ConstStringRef validate = "validate"; inline constexpr NEO::ConstStringRef validate = "validate";
constexpr NEO::ConstStringRef query = "query"; inline constexpr NEO::ConstStringRef query = "query";
constexpr NEO::ConstStringRef ids = "ids"; inline constexpr NEO::ConstStringRef ids = "ids";
constexpr NEO::ConstStringRef concat = "concat"; inline constexpr NEO::ConstStringRef concat = "concat";
} // namespace CommandNames } // namespace CommandNames
namespace Commands { namespace Commands {
int compile(OclocArgHelper *argHelper, const std::vector<std::string> &args); int compile(OclocArgHelper *argHelper, const std::vector<std::string> &args);

View File

@ -11,7 +11,7 @@
namespace NEO { namespace NEO {
namespace Queries { namespace Queries {
constexpr ConstStringRef queryNeoRevision = "NEO_REVISION"; inline constexpr ConstStringRef queryNeoRevision = "NEO_REVISION";
constexpr ConstStringRef queryOCLDriverVersion = "OCL_DRIVER_VERSION"; inline constexpr ConstStringRef queryOCLDriverVersion = "OCL_DRIVER_VERSION";
}; // namespace Queries }; // namespace Queries
} // namespace NEO } // namespace NEO

View File

@ -19,7 +19,7 @@ class AubHelper;
namespace AubMemDump { namespace AubMemDump {
#include "aub_services.h" #include "aub_services.h"
constexpr uint32_t rcsRegisterBase = 0x2000; inline constexpr uint32_t rcsRegisterBase = 0x2000;
#ifndef BIT #ifndef BIT
#define BIT(x) (((uint64_t)1) << (x)) #define BIT(x) (((uint64_t)1) << (x))

View File

@ -11,9 +11,9 @@
#include <limits> #include <limits>
namespace PageTableEntry { namespace PageTableEntry {
constexpr uint32_t presentBit = 0; inline constexpr uint32_t presentBit = 0;
constexpr uint32_t writableBit = 1; inline constexpr uint32_t writableBit = 1;
constexpr uint32_t userSupervisorBit = 2; inline constexpr uint32_t userSupervisorBit = 2;
constexpr uint32_t localMemoryBit = 11; inline constexpr uint32_t localMemoryBit = 11;
constexpr uint64_t nonValidBits = std::numeric_limits<uint64_t>::max(); inline constexpr uint64_t nonValidBits = std::numeric_limits<uint64_t>::max();
} // namespace PageTableEntry } // namespace PageTableEntry

View File

@ -14,24 +14,24 @@ namespace EBuiltInOps {
using Type = uint32_t; using Type = uint32_t;
constexpr Type AuxTranslation{0}; inline constexpr Type AuxTranslation{0};
constexpr Type CopyBufferToBuffer{1}; inline constexpr Type CopyBufferToBuffer{1};
constexpr Type CopyBufferToBufferStateless{2}; inline constexpr Type CopyBufferToBufferStateless{2};
constexpr Type CopyBufferRect{3}; inline constexpr Type CopyBufferRect{3};
constexpr Type CopyBufferRectStateless{4}; inline constexpr Type CopyBufferRectStateless{4};
constexpr Type FillBuffer{5}; inline constexpr Type FillBuffer{5};
constexpr Type FillBufferStateless{6}; inline constexpr Type FillBufferStateless{6};
constexpr Type CopyBufferToImage3d{7}; inline constexpr Type CopyBufferToImage3d{7};
constexpr Type CopyBufferToImage3dStateless{8}; inline constexpr Type CopyBufferToImage3dStateless{8};
constexpr Type CopyImage3dToBuffer{9}; inline constexpr Type CopyImage3dToBuffer{9};
constexpr Type CopyImage3dToBufferStateless{10}; inline constexpr Type CopyImage3dToBufferStateless{10};
constexpr Type CopyImageToImage1d{11}; inline constexpr Type CopyImageToImage1d{11};
constexpr Type CopyImageToImage2d{12}; inline constexpr Type CopyImageToImage2d{12};
constexpr Type CopyImageToImage3d{13}; inline constexpr Type CopyImageToImage3d{13};
constexpr Type FillImage1d{14}; inline constexpr Type FillImage1d{14};
constexpr Type FillImage2d{15}; inline constexpr Type FillImage2d{15};
constexpr Type FillImage3d{16}; inline constexpr Type FillImage3d{16};
constexpr Type QueryKernelTimestamps{17}; inline constexpr Type QueryKernelTimestamps{17};
constexpr bool isStateless(Type type) { constexpr bool isStateless(Type type) {
constexpr std::array<Type, 5> statelessBuiltins{{CopyBufferToBufferStateless, CopyBufferRectStateless, FillBufferStateless, CopyBufferToImage3dStateless, CopyImage3dToBufferStateless}}; constexpr std::array<Type, 5> statelessBuiltins{{CopyBufferToBufferStateless, CopyBufferRectStateless, FillBufferStateless, CopyBufferToImage3dStateless, CopyImage3dToBufferStateless}};
@ -43,7 +43,7 @@ constexpr bool isStateless(Type type) {
return false; return false;
} }
constexpr Type MaxBaseValue{17}; inline constexpr Type MaxBaseValue{17};
constexpr Type COUNT{64}; inline constexpr Type COUNT{64};
} // namespace EBuiltInOps } // namespace EBuiltInOps
} // namespace NEO } // namespace NEO

View File

@ -25,14 +25,14 @@ class Device;
class SipKernel; class SipKernel;
class MemoryManager; class MemoryManager;
constexpr ConstStringRef mediaKernelsBuildOptionsList[] = { inline constexpr ConstStringRef mediaKernelsBuildOptionsList[] = {
"-D cl_intel_device_side_advanced_vme_enable", "-D cl_intel_device_side_advanced_vme_enable",
"-D cl_intel_device_side_avc_vme_enable", "-D cl_intel_device_side_avc_vme_enable",
"-D cl_intel_device_side_vme_enable", "-D cl_intel_device_side_vme_enable",
"-D cl_intel_media_block_io", "-D cl_intel_media_block_io",
CompilerOptions::fastRelaxedMath}; CompilerOptions::fastRelaxedMath};
constexpr CompilerOptions::ConstConcatenation<> mediaKernelsBuildOptions{mediaKernelsBuildOptionsList}; inline constexpr CompilerOptions::ConstConcatenation<> mediaKernelsBuildOptions{mediaKernelsBuildOptionsList};
struct BuiltinCode { struct BuiltinCode {
enum class ECodeType { enum class ECodeType {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020-2021 Intel Corporation * Copyright (C) 2020-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -10,6 +10,6 @@
namespace NEO { namespace NEO {
namespace EBuiltInOps { namespace EBuiltInOps {
constexpr Type MaxCoreValue{MaxBaseValue}; inline constexpr Type MaxCoreValue{MaxBaseValue};
} }
} // namespace NEO } // namespace NEO

View File

@ -34,17 +34,17 @@ struct WalkerPartitionArgs {
bool forceExecutionOnSingleTile = false; bool forceExecutionOnSingleTile = false;
}; };
constexpr uint32_t wparidCCSOffset = 0x221C; inline constexpr uint32_t wparidCCSOffset = 0x221C;
constexpr uint32_t addressOffsetCCSOffset = 0x23B4; inline constexpr uint32_t addressOffsetCCSOffset = 0x23B4;
constexpr uint32_t predicationMaskCCSOffset = 0x21FC; inline constexpr uint32_t predicationMaskCCSOffset = 0x21FC;
constexpr uint32_t generalPurposeRegister0 = 0x2600; inline constexpr uint32_t generalPurposeRegister0 = 0x2600;
constexpr uint32_t generalPurposeRegister1 = 0x2608; inline constexpr uint32_t generalPurposeRegister1 = 0x2608;
constexpr uint32_t generalPurposeRegister2 = 0x2610; inline constexpr uint32_t generalPurposeRegister2 = 0x2610;
constexpr uint32_t generalPurposeRegister3 = 0x2618; inline constexpr uint32_t generalPurposeRegister3 = 0x2618;
constexpr uint32_t generalPurposeRegister4 = 0x2620; inline constexpr uint32_t generalPurposeRegister4 = 0x2620;
constexpr uint32_t generalPurposeRegister5 = 0x2628; inline constexpr uint32_t generalPurposeRegister5 = 0x2628;
constexpr uint32_t generalPurposeRegister6 = 0x2630; inline constexpr uint32_t generalPurposeRegister6 = 0x2630;
struct BatchBufferControlData { struct BatchBufferControlData {
uint32_t partitionCount = 0u; uint32_t partitionCount = 0u;
@ -52,18 +52,18 @@ struct BatchBufferControlData {
uint32_t inTileCount = 0u; uint32_t inTileCount = 0u;
uint32_t finalSyncTileCount = 0u; uint32_t finalSyncTileCount = 0u;
}; };
constexpr size_t dynamicPartitioningFieldsForCleanupCount = sizeof(BatchBufferControlData) / sizeof(uint32_t) - 1; inline constexpr size_t dynamicPartitioningFieldsForCleanupCount = sizeof(BatchBufferControlData) / sizeof(uint32_t) - 1;
struct StaticPartitioningControlSection { struct StaticPartitioningControlSection {
uint32_t synchronizeBeforeWalkerCounter = 0; uint32_t synchronizeBeforeWalkerCounter = 0;
uint32_t synchronizeAfterWalkerCounter = 0; uint32_t synchronizeAfterWalkerCounter = 0;
uint32_t finalSyncTileCounter = 0; uint32_t finalSyncTileCounter = 0;
}; };
constexpr size_t staticPartitioningFieldsForCleanupCount = sizeof(StaticPartitioningControlSection) / sizeof(uint32_t) - 1; inline constexpr size_t staticPartitioningFieldsForCleanupCount = sizeof(StaticPartitioningControlSection) / sizeof(uint32_t) - 1;
struct BarrierControlSection { struct BarrierControlSection {
uint32_t crossTileSyncCount = 0u; uint32_t crossTileSyncCount = 0u;
uint32_t finalSyncTileCount = 0; uint32_t finalSyncTileCount = 0;
}; };
constexpr size_t barrierControlSectionFieldsForCleanupCount = sizeof(BarrierControlSection) / sizeof(uint32_t) - 1; inline constexpr size_t barrierControlSectionFieldsForCleanupCount = sizeof(BarrierControlSection) / sizeof(uint32_t) - 1;
} // namespace WalkerPartition } // namespace WalkerPartition

View File

@ -29,23 +29,23 @@ namespace CSRequirements {
// then command buffer is aligned to cacheline that can take up to 63 bytes // then command buffer is aligned to cacheline that can take up to 63 bytes
// to be sure everything fits minimal size is at 2 x cacheline. // to be sure everything fits minimal size is at 2 x cacheline.
constexpr auto minCommandQueueCommandStreamSize = 2 * MemoryConstants::cacheLineSize; inline constexpr auto minCommandQueueCommandStreamSize = 2 * MemoryConstants::cacheLineSize;
constexpr auto csOverfetchSize = MemoryConstants::pageSize; inline constexpr auto csOverfetchSize = MemoryConstants::pageSize;
} // namespace CSRequirements } // namespace CSRequirements
namespace TimeoutControls { namespace TimeoutControls {
constexpr int64_t maxTimeout = std::numeric_limits<int64_t>::max(); inline constexpr int64_t maxTimeout = std::numeric_limits<int64_t>::max();
} }
namespace QueueSliceCount { namespace QueueSliceCount {
constexpr uint64_t defaultSliceCount = 0; inline constexpr uint64_t defaultSliceCount = 0;
} }
namespace L3CachingSettings { namespace L3CachingSettings {
constexpr uint32_t l3CacheOn = 0u; inline constexpr uint32_t l3CacheOn = 0u;
constexpr uint32_t l3CacheOff = 1u; inline constexpr uint32_t l3CacheOff = 1u;
constexpr uint32_t l3AndL1On = 2u; inline constexpr uint32_t l3AndL1On = 2u;
constexpr uint32_t NotApplicable = 3u; inline constexpr uint32_t NotApplicable = 3u;
} // namespace L3CachingSettings } // namespace L3CachingSettings
struct DispatchBcsFlags { struct DispatchBcsFlags {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020-2021 Intel Corporation * Copyright (C) 2020-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -11,9 +11,9 @@
namespace NEO { namespace NEO {
namespace AdditionalKernelExecInfo { namespace AdditionalKernelExecInfo {
constexpr uint32_t DisableOverdispatch = 0u; inline constexpr uint32_t DisableOverdispatch = 0u;
constexpr uint32_t NotSet = 1u; inline constexpr uint32_t NotSet = 1u;
constexpr uint32_t NotApplicable = 2u; inline constexpr uint32_t NotApplicable = 2u;
} // namespace AdditionalKernelExecInfo } // namespace AdditionalKernelExecInfo
} // namespace NEO } // namespace NEO

View File

@ -23,7 +23,7 @@ class OsContext;
class CommandStreamReceiver; class CommandStreamReceiver;
namespace ScratchSpaceConstants { namespace ScratchSpaceConstants {
constexpr size_t scratchSpaceOffsetFor64Bit = 4096u; inline constexpr size_t scratchSpaceOffsetFor64Bit = 4096u;
} }
using ResidencyContainer = std::vector<GraphicsAllocation *>; using ResidencyContainer = std::vector<GraphicsAllocation *>;

View File

@ -15,39 +15,39 @@
namespace NEO { namespace NEO {
namespace CompilerOptions { namespace CompilerOptions {
constexpr ConstStringRef greaterThan4gbBuffersRequired = "-cl-intel-greater-than-4GB-buffer-required"; inline constexpr ConstStringRef greaterThan4gbBuffersRequired = "-cl-intel-greater-than-4GB-buffer-required";
constexpr ConstStringRef hasBufferOffsetArg = "-cl-intel-has-buffer-offset-arg"; inline constexpr ConstStringRef hasBufferOffsetArg = "-cl-intel-has-buffer-offset-arg";
constexpr ConstStringRef kernelDebugEnable = "-cl-kernel-debug-enable"; inline constexpr ConstStringRef kernelDebugEnable = "-cl-kernel-debug-enable";
constexpr ConstStringRef arch32bit = "-m32"; inline constexpr ConstStringRef arch32bit = "-m32";
constexpr ConstStringRef arch64bit = "-m64"; inline constexpr ConstStringRef arch64bit = "-m64";
constexpr ConstStringRef debugKernelEnable = "-cl-kernel-debug-enable"; inline constexpr ConstStringRef debugKernelEnable = "-cl-kernel-debug-enable";
constexpr ConstStringRef optDisable = "-cl-opt-disable"; inline constexpr ConstStringRef optDisable = "-cl-opt-disable";
constexpr ConstStringRef argInfo = "-cl-kernel-arg-info"; inline constexpr ConstStringRef argInfo = "-cl-kernel-arg-info";
constexpr ConstStringRef gtpinRera = "-cl-intel-gtpin-rera"; inline constexpr ConstStringRef gtpinRera = "-cl-intel-gtpin-rera";
constexpr ConstStringRef finiteMathOnly = "-cl-finite-math-only"; inline constexpr ConstStringRef finiteMathOnly = "-cl-finite-math-only";
constexpr ConstStringRef fastRelaxedMath = "-cl-fast-relaxed-math"; inline constexpr ConstStringRef fastRelaxedMath = "-cl-fast-relaxed-math";
constexpr ConstStringRef preserveVec3Type = "-fpreserve-vec3-type"; inline constexpr ConstStringRef preserveVec3Type = "-fpreserve-vec3-type";
constexpr ConstStringRef createLibrary = "-create-library"; inline constexpr ConstStringRef createLibrary = "-create-library";
constexpr ConstStringRef generateDebugInfo = "-g"; inline constexpr ConstStringRef generateDebugInfo = "-g";
constexpr ConstStringRef generateSourcePath = "-s"; inline constexpr ConstStringRef generateSourcePath = "-s";
constexpr ConstStringRef bindlessMode = "-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode"; inline constexpr ConstStringRef bindlessMode = "-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode";
constexpr ConstStringRef uniformWorkgroupSize = "-cl-uniform-work-group-size"; inline constexpr ConstStringRef uniformWorkgroupSize = "-cl-uniform-work-group-size";
constexpr ConstStringRef forceEmuInt32DivRem = "-cl-intel-force-emu-int32divrem"; inline constexpr ConstStringRef forceEmuInt32DivRem = "-cl-intel-force-emu-int32divrem";
constexpr ConstStringRef forceEmuInt32DivRemSP = "-cl-intel-force-emu-sp-int32divrem"; inline constexpr ConstStringRef forceEmuInt32DivRemSP = "-cl-intel-force-emu-sp-int32divrem";
constexpr ConstStringRef allowZebin = "-cl-intel-allow-zebin"; inline constexpr ConstStringRef allowZebin = "-cl-intel-allow-zebin";
constexpr ConstStringRef disableZebin = "-cl-intel-disable-zebin"; inline constexpr ConstStringRef disableZebin = "-cl-intel-disable-zebin";
constexpr ConstStringRef enableImageSupport = "-D__IMAGE_SUPPORT__=1"; inline constexpr ConstStringRef enableImageSupport = "-D__IMAGE_SUPPORT__=1";
constexpr ConstStringRef optLevel = "-ze-opt-level=O"; inline constexpr ConstStringRef optLevel = "-ze-opt-level=O";
constexpr ConstStringRef excludeIrFromZebin = "-exclude-ir-from-zebin"; inline constexpr ConstStringRef excludeIrFromZebin = "-exclude-ir-from-zebin";
constexpr ConstStringRef noRecompiledFromIr = "-Wno-recompiled-from-ir"; inline constexpr ConstStringRef noRecompiledFromIr = "-Wno-recompiled-from-ir";
constexpr ConstStringRef defaultGrf = "-cl-intel-128-GRF-per-thread"; inline constexpr ConstStringRef defaultGrf = "-cl-intel-128-GRF-per-thread";
constexpr ConstStringRef largeGrf = "-cl-intel-256-GRF-per-thread"; inline constexpr ConstStringRef largeGrf = "-cl-intel-256-GRF-per-thread";
constexpr ConstStringRef autoGrf = "-cl-intel-enable-auto-large-GRF-mode"; inline constexpr ConstStringRef autoGrf = "-cl-intel-enable-auto-large-GRF-mode";
constexpr ConstStringRef numThreadsPerEu = "-cl-intel-reqd-eu-thread-count"; inline constexpr ConstStringRef numThreadsPerEu = "-cl-intel-reqd-eu-thread-count";
constexpr ConstStringRef useCMCompiler = "-cmc"; inline constexpr ConstStringRef useCMCompiler = "-cmc";
constexpr size_t nullterminateSize = 1U; inline constexpr size_t nullterminateSize = 1U;
constexpr size_t spaceSeparatorSize = 1U; inline constexpr size_t spaceSeparatorSize = 1U;
template <size_t Length> template <size_t Length>
constexpr size_t length(const char (&array)[Length]) { constexpr size_t length(const char (&array)[Length]) {

View File

@ -12,7 +12,7 @@
namespace NEO { namespace NEO {
namespace CompilerWarnings { namespace CompilerWarnings {
constexpr ConstStringRef recompiledFromIr = "warning: module got recompiled from IR because provided native binary is incompatible with underlying device and/or driver [-Wrecompiled-from-ir]"; inline constexpr ConstStringRef recompiledFromIr = "warning: module got recompiled from IR because provided native binary is incompatible with underlying device and/or driver [-Wrecompiled-from-ir]";
} // namespace CompilerWarnings } // namespace CompilerWarnings
} // namespace NEO } // namespace NEO

View File

@ -15,9 +15,9 @@
namespace NEO { namespace NEO {
constexpr ConstStringRef llvmBcMagic = "BC\xc0\xde"; inline constexpr ConstStringRef llvmBcMagic = "BC\xc0\xde";
constexpr ConstStringRef spirvMagic = "\x07\x23\x02\x03"; inline constexpr ConstStringRef spirvMagic = "\x07\x23\x02\x03";
constexpr ConstStringRef spirvMagicInv = "\x03\x02\x23\x07"; inline constexpr ConstStringRef spirvMagicInv = "\x03\x02\x23\x07";
inline bool hasSameMagic(ConstStringRef expectedMagic, ArrayRef<const uint8_t> binary) { inline bool hasSameMagic(ConstStringRef expectedMagic, ArrayRef<const uint8_t> binary) {
auto binaryMagicLen = std::min(expectedMagic.size(), binary.size()); auto binaryMagicLen = std::min(expectedMagic.size(), binary.size());

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2021 Intel Corporation * Copyright (C) 2018-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -19,7 +19,7 @@ namespace NEO {
struct HardwareInfo; struct HardwareInfo;
namespace Extensions { namespace Extensions {
constexpr const char *const sharingFormatQuery = "cl_intel_sharing_format_query "; inline constexpr const char *const sharingFormatQuery = "cl_intel_sharing_format_query ";
} }
extern const char *deviceExtensionsList; extern const char *deviceExtensionsList;

View File

@ -12,8 +12,8 @@
namespace NEO { namespace NEO {
namespace Ar { namespace Ar {
constexpr ConstStringRef arMagic = "!<arch>\n"; inline constexpr ConstStringRef arMagic = "!<arch>\n";
constexpr ConstStringRef arFileEntryTrailingMagic = "\x60\x0A"; inline constexpr ConstStringRef arFileEntryTrailingMagic = "\x60\x0A";
struct ArFileEntryHeader { struct ArFileEntryHeader {
char identifier[16] = {'/', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}; char identifier[16] = {'/', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
@ -27,9 +27,9 @@ struct ArFileEntryHeader {
static_assert(60U == sizeof(ArFileEntryHeader), ""); static_assert(60U == sizeof(ArFileEntryHeader), "");
namespace SpecialFileNames { namespace SpecialFileNames {
constexpr ConstStringRef longFileNamesFile = "//"; inline constexpr ConstStringRef longFileNamesFile = "//";
constexpr char longFileNamePrefix = '/'; inline constexpr char longFileNamePrefix = '/';
constexpr char fileNameTerminator = '/'; inline constexpr char fileNameTerminator = '/';
} // namespace SpecialFileNames } // namespace SpecialFileNames
} // namespace Ar } // namespace Ar

View File

@ -137,7 +137,7 @@ enum SYMBOL_TABLE_BIND : uint32_t {
STB_GLOBAL = 1 STB_GLOBAL = 1
}; };
constexpr const char elfMagic[4] = {0x7f, 'E', 'L', 'F'}; inline constexpr const char elfMagic[4] = {0x7f, 'E', 'L', 'F'};
struct ElfFileHeaderIdentity { struct ElfFileHeaderIdentity {
ElfFileHeaderIdentity(ELF_IDENTIFIER_CLASS classBits) ElfFileHeaderIdentity(ELF_IDENTIFIER_CLASS classBits)
@ -563,38 +563,38 @@ static_assert(sizeof(ElfRela<EI_CLASS_32>) == 0xC, "");
static_assert(sizeof(ElfRela<EI_CLASS_64>) == 0x18, ""); static_assert(sizeof(ElfRela<EI_CLASS_64>) == 0x18, "");
namespace SpecialSectionNames { namespace SpecialSectionNames {
constexpr ConstStringRef bss = ".bss"; // uninitialized memory inline constexpr ConstStringRef bss = ".bss"; // uninitialized memory
constexpr ConstStringRef comment = ".comment"; // version control information inline constexpr ConstStringRef comment = ".comment"; // version control information
constexpr ConstStringRef data = ".data"; // initialized memory inline constexpr ConstStringRef data = ".data"; // initialized memory
constexpr ConstStringRef data1 = ".data1"; // initialized memory inline constexpr ConstStringRef data1 = ".data1"; // initialized memory
constexpr ConstStringRef debug = ".debug"; // debug symbols inline constexpr ConstStringRef debug = ".debug"; // debug symbols
constexpr ConstStringRef debugInfo = ".debug_info"; // debug info inline constexpr ConstStringRef debugInfo = ".debug_info"; // debug info
constexpr ConstStringRef dynamic = ".dynamic"; // dynamic linking information inline constexpr ConstStringRef dynamic = ".dynamic"; // dynamic linking information
constexpr ConstStringRef dynstr = ".dynstr"; // strings for dynamic linking inline constexpr ConstStringRef dynstr = ".dynstr"; // strings for dynamic linking
constexpr ConstStringRef dynsym = ".dynsym"; // dynamic linking symbol table inline constexpr ConstStringRef dynsym = ".dynsym"; // dynamic linking symbol table
constexpr ConstStringRef fini = ".fini"; // executable instructions of program termination inline constexpr ConstStringRef fini = ".fini"; // executable instructions of program termination
constexpr ConstStringRef finiArray = ".fini_array"; // function pointers of termination array inline constexpr ConstStringRef finiArray = ".fini_array"; // function pointers of termination array
constexpr ConstStringRef got = ".got"; // global offset table inline constexpr ConstStringRef got = ".got"; // global offset table
constexpr ConstStringRef hash = ".hash"; // symnol hash table inline constexpr ConstStringRef hash = ".hash"; // symnol hash table
constexpr ConstStringRef init = ".init"; // executable instructions of program initializaion inline constexpr ConstStringRef init = ".init"; // executable instructions of program initializaion
constexpr ConstStringRef initArray = ".init_array"; // function pointers of initialization array inline constexpr ConstStringRef initArray = ".init_array"; // function pointers of initialization array
constexpr ConstStringRef interp = ".interp"; // path name of program interpreter inline constexpr ConstStringRef interp = ".interp"; // path name of program interpreter
constexpr ConstStringRef line = ".line"; // line number info for symbolic debugging inline constexpr ConstStringRef line = ".line"; // line number info for symbolic debugging
constexpr ConstStringRef note = ".note"; // note section inline constexpr ConstStringRef note = ".note"; // note section
constexpr ConstStringRef plt = ".plt"; // procedure linkage table inline constexpr ConstStringRef plt = ".plt"; // procedure linkage table
constexpr ConstStringRef preinitArray = ".preinit_array"; // function pointers of pre-initialization array inline constexpr ConstStringRef preinitArray = ".preinit_array"; // function pointers of pre-initialization array
constexpr ConstStringRef relPrefix = ".rel"; // prefix of .relNAME - relocations for NAME section inline constexpr ConstStringRef relPrefix = ".rel"; // prefix of .relNAME - relocations for NAME section
constexpr ConstStringRef relaPrefix = ".rela"; // prefix of .relaNAME - rela relocations for NAME section inline constexpr ConstStringRef relaPrefix = ".rela"; // prefix of .relaNAME - rela relocations for NAME section
constexpr ConstStringRef rodata = ".rodata"; // read-only data inline constexpr ConstStringRef rodata = ".rodata"; // read-only data
constexpr ConstStringRef rodata1 = ".rodata1"; // read-only data inline constexpr ConstStringRef rodata1 = ".rodata1"; // read-only data
constexpr ConstStringRef shStrTab = ".shstrtab"; // section names (strings) inline constexpr ConstStringRef shStrTab = ".shstrtab"; // section names (strings)
constexpr ConstStringRef strtab = ".strtab"; // strings inline constexpr ConstStringRef strtab = ".strtab"; // strings
constexpr ConstStringRef symtab = ".symtab"; // symbol table inline constexpr ConstStringRef symtab = ".symtab"; // symbol table
constexpr ConstStringRef symtabShndx = ".symtab_shndx"; // special symbol table section index array inline constexpr ConstStringRef symtabShndx = ".symtab_shndx"; // special symbol table section index array
constexpr ConstStringRef tbss = ".tbss"; // uninitialized thread-local data inline constexpr ConstStringRef tbss = ".tbss"; // uninitialized thread-local data
constexpr ConstStringRef tadata = ".tdata"; // initialided thread-local data inline constexpr ConstStringRef tadata = ".tdata"; // initialided thread-local data
constexpr ConstStringRef tdata1 = ".tdata1"; // initialided thread-local data inline constexpr ConstStringRef tdata1 = ".tdata1"; // initialided thread-local data
constexpr ConstStringRef text = ".text"; // executable instructions inline constexpr ConstStringRef text = ".text"; // executable instructions
} // namespace SpecialSectionNames } // namespace SpecialSectionNames
} // namespace Elf } // namespace Elf

View File

@ -49,13 +49,13 @@ static_assert(static_cast<uint32_t>(SHT_OPENCL_SOURCE) == static_cast<uint32_t>(
static_assert(static_cast<uint32_t>(SHT_OPENCL_SPIRV_SC_VALUES) == static_cast<uint32_t>(SHT_OPENCL_RESERVED_END), ""); static_assert(static_cast<uint32_t>(SHT_OPENCL_SPIRV_SC_VALUES) == static_cast<uint32_t>(SHT_OPENCL_RESERVED_END), "");
namespace SectionNamesOpenCl { namespace SectionNamesOpenCl {
constexpr ConstStringRef buildOptions = "BuildOptions"; inline constexpr ConstStringRef buildOptions = "BuildOptions";
constexpr ConstStringRef spirvObject = "SPIRV Object"; inline constexpr ConstStringRef spirvObject = "SPIRV Object";
constexpr ConstStringRef llvmObject = "Intel(R) OpenCL LLVM Object"; inline constexpr ConstStringRef llvmObject = "Intel(R) OpenCL LLVM Object";
constexpr ConstStringRef deviceDebug = "Intel(R) OpenCL Device Debug"; inline constexpr ConstStringRef deviceDebug = "Intel(R) OpenCL Device Debug";
constexpr ConstStringRef deviceBinary = "Intel(R) OpenCL Device Binary"; inline constexpr ConstStringRef deviceBinary = "Intel(R) OpenCL Device Binary";
constexpr ConstStringRef spirvSpecConstIds = "SPIRV Specialization Constants Ids"; inline constexpr ConstStringRef spirvSpecConstIds = "SPIRV Specialization Constants Ids";
constexpr ConstStringRef spirvSpecConstValues = "SPIRV Specialization Constants Values"; inline constexpr ConstStringRef spirvSpecConstValues = "SPIRV Specialization Constants Values";
} // namespace SectionNamesOpenCl } // namespace SectionNamesOpenCl
} // namespace Elf } // namespace Elf

View File

@ -43,28 +43,28 @@ enum RELOC_TYPE_ZEBIN : uint32_t {
}; };
namespace SectionsNamesZebin { namespace SectionsNamesZebin {
constexpr ConstStringRef textPrefix = ".text."; inline constexpr ConstStringRef textPrefix = ".text.";
constexpr ConstStringRef functions = ".text.Intel_Symbol_Table_Void_Program"; inline constexpr ConstStringRef functions = ".text.Intel_Symbol_Table_Void_Program";
constexpr ConstStringRef dataConst = ".data.const"; inline constexpr ConstStringRef dataConst = ".data.const";
constexpr ConstStringRef dataGlobalConst = ".data.global_const"; inline constexpr ConstStringRef dataGlobalConst = ".data.global_const";
constexpr ConstStringRef dataGlobal = ".data.global"; inline constexpr ConstStringRef dataGlobal = ".data.global";
constexpr ConstStringRef dataConstString = ".data.const.string"; inline constexpr ConstStringRef dataConstString = ".data.const.string";
constexpr ConstStringRef symtab = ".symtab"; inline constexpr ConstStringRef symtab = ".symtab";
constexpr ConstStringRef relTablePrefix = ".rel."; inline constexpr ConstStringRef relTablePrefix = ".rel.";
constexpr ConstStringRef relaTablePrefix = ".rela."; inline constexpr ConstStringRef relaTablePrefix = ".rela.";
constexpr ConstStringRef spv = ".spv"; inline constexpr ConstStringRef spv = ".spv";
constexpr ConstStringRef debugPrefix = ".debug_"; inline constexpr ConstStringRef debugPrefix = ".debug_";
constexpr ConstStringRef debugInfo = ".debug_info"; inline constexpr ConstStringRef debugInfo = ".debug_info";
constexpr ConstStringRef debugAbbrev = ".debug_abbrev"; inline constexpr ConstStringRef debugAbbrev = ".debug_abbrev";
constexpr ConstStringRef zeInfo = ".ze_info"; inline constexpr ConstStringRef zeInfo = ".ze_info";
constexpr ConstStringRef gtpinInfo = ".gtpin_info"; inline constexpr ConstStringRef gtpinInfo = ".gtpin_info";
constexpr ConstStringRef noteIntelGT = ".note.intelgt.compat"; inline constexpr ConstStringRef noteIntelGT = ".note.intelgt.compat";
constexpr ConstStringRef buildOptions = ".misc.buildOptions"; inline constexpr ConstStringRef buildOptions = ".misc.buildOptions";
constexpr ConstStringRef vIsaAsmPrefix = ".visaasm."; inline constexpr ConstStringRef vIsaAsmPrefix = ".visaasm.";
constexpr ConstStringRef externalFunctions = "Intel_Symbol_Table_Void_Program"; inline constexpr ConstStringRef externalFunctions = "Intel_Symbol_Table_Void_Program";
} // namespace SectionsNamesZebin } // namespace SectionsNamesZebin
constexpr ConstStringRef IntelGtNoteOwnerName = "IntelGT"; inline constexpr ConstStringRef IntelGtNoteOwnerName = "IntelGT";
enum IntelGTSectionType : uint32_t { enum IntelGTSectionType : uint32_t {
ProductFamily = 1, ProductFamily = 1,
GfxCore = 2, GfxCore = 2,
@ -117,270 +117,270 @@ static_assert(sizeof(ZebinTargetFlags) == sizeof(uint32_t), "");
namespace ZebinKernelMetadata { namespace ZebinKernelMetadata {
namespace Tags { namespace Tags {
constexpr ConstStringRef kernels("kernels"); inline constexpr ConstStringRef kernels("kernels");
constexpr ConstStringRef version("version"); inline constexpr ConstStringRef version("version");
constexpr ConstStringRef globalHostAccessTable("global_host_access_table"); inline constexpr ConstStringRef globalHostAccessTable("global_host_access_table");
constexpr ConstStringRef functions("functions"); inline constexpr ConstStringRef functions("functions");
constexpr ConstStringRef kernelMiscInfo("kernels_misc_info"); inline constexpr ConstStringRef kernelMiscInfo("kernels_misc_info");
namespace Kernel { namespace Kernel {
constexpr ConstStringRef attributes("user_attributes"); inline constexpr ConstStringRef attributes("user_attributes");
constexpr ConstStringRef name("name"); inline constexpr ConstStringRef name("name");
constexpr ConstStringRef executionEnv("execution_env"); inline constexpr ConstStringRef executionEnv("execution_env");
constexpr ConstStringRef debugEnv("debug_env"); inline constexpr ConstStringRef debugEnv("debug_env");
constexpr ConstStringRef payloadArguments("payload_arguments"); inline constexpr ConstStringRef payloadArguments("payload_arguments");
constexpr ConstStringRef bindingTableIndices("binding_table_indices"); inline constexpr ConstStringRef bindingTableIndices("binding_table_indices");
constexpr ConstStringRef perThreadPayloadArguments("per_thread_payload_arguments"); inline constexpr ConstStringRef perThreadPayloadArguments("per_thread_payload_arguments");
constexpr ConstStringRef perThreadMemoryBuffers("per_thread_memory_buffers"); inline constexpr ConstStringRef perThreadMemoryBuffers("per_thread_memory_buffers");
constexpr ConstStringRef experimentalProperties("experimental_properties"); inline constexpr ConstStringRef experimentalProperties("experimental_properties");
constexpr ConstStringRef inlineSamplers("inline_samplers"); inline constexpr ConstStringRef inlineSamplers("inline_samplers");
namespace ExecutionEnv { namespace ExecutionEnv {
constexpr ConstStringRef barrierCount("barrier_count"); inline constexpr ConstStringRef barrierCount("barrier_count");
constexpr ConstStringRef disableMidThreadPreemption("disable_mid_thread_preemption"); inline constexpr ConstStringRef disableMidThreadPreemption("disable_mid_thread_preemption");
constexpr ConstStringRef euThreadCount("eu_thread_count"); inline constexpr ConstStringRef euThreadCount("eu_thread_count");
constexpr ConstStringRef grfCount("grf_count"); inline constexpr ConstStringRef grfCount("grf_count");
constexpr ConstStringRef has4gbBuffers("has_4gb_buffers"); inline constexpr ConstStringRef has4gbBuffers("has_4gb_buffers");
constexpr ConstStringRef hasDpas("has_dpas"); inline constexpr ConstStringRef hasDpas("has_dpas");
constexpr ConstStringRef hasFenceForImageAccess("has_fence_for_image_access"); inline constexpr ConstStringRef hasFenceForImageAccess("has_fence_for_image_access");
constexpr ConstStringRef hasGlobalAtomics("has_global_atomics"); inline constexpr ConstStringRef hasGlobalAtomics("has_global_atomics");
constexpr ConstStringRef hasMultiScratchSpaces("has_multi_scratch_spaces"); inline constexpr ConstStringRef hasMultiScratchSpaces("has_multi_scratch_spaces");
constexpr ConstStringRef hasNoStatelessWrite("has_no_stateless_write"); inline constexpr ConstStringRef hasNoStatelessWrite("has_no_stateless_write");
constexpr ConstStringRef hasStackCalls("has_stack_calls"); inline constexpr ConstStringRef hasStackCalls("has_stack_calls");
constexpr ConstStringRef hwPreemptionMode("hw_preemption_mode"); inline constexpr ConstStringRef hwPreemptionMode("hw_preemption_mode");
constexpr ConstStringRef inlineDataPayloadSize("inline_data_payload_size"); inline constexpr ConstStringRef inlineDataPayloadSize("inline_data_payload_size");
constexpr ConstStringRef offsetToSkipPerThreadDataLoad("offset_to_skip_per_thread_data_load"); inline constexpr ConstStringRef offsetToSkipPerThreadDataLoad("offset_to_skip_per_thread_data_load");
constexpr ConstStringRef offsetToSkipSetFfidGp("offset_to_skip_set_ffid_gp"); inline constexpr ConstStringRef offsetToSkipSetFfidGp("offset_to_skip_set_ffid_gp");
constexpr ConstStringRef requiredSubGroupSize("required_sub_group_size"); inline constexpr ConstStringRef requiredSubGroupSize("required_sub_group_size");
constexpr ConstStringRef requiredWorkGroupSize("required_work_group_size"); inline constexpr ConstStringRef requiredWorkGroupSize("required_work_group_size");
constexpr ConstStringRef requireDisableEUFusion("require_disable_eufusion"); inline constexpr ConstStringRef requireDisableEUFusion("require_disable_eufusion");
constexpr ConstStringRef simdSize("simd_size"); inline constexpr ConstStringRef simdSize("simd_size");
constexpr ConstStringRef slmSize("slm_size"); inline constexpr ConstStringRef slmSize("slm_size");
constexpr ConstStringRef subgroupIndependentForwardProgress("subgroup_independent_forward_progress"); inline constexpr ConstStringRef subgroupIndependentForwardProgress("subgroup_independent_forward_progress");
constexpr ConstStringRef workGroupWalkOrderDimensions("work_group_walk_order_dimensions"); inline constexpr ConstStringRef workGroupWalkOrderDimensions("work_group_walk_order_dimensions");
constexpr ConstStringRef threadSchedulingMode("thread_scheduling_mode"); inline constexpr ConstStringRef threadSchedulingMode("thread_scheduling_mode");
namespace ThreadSchedulingMode { namespace ThreadSchedulingMode {
constexpr ConstStringRef ageBased("age_based"); inline constexpr ConstStringRef ageBased("age_based");
constexpr ConstStringRef roundRobin("round_robin"); inline constexpr ConstStringRef roundRobin("round_robin");
constexpr ConstStringRef roundRobinStall("round_robin_stall"); inline constexpr ConstStringRef roundRobinStall("round_robin_stall");
} // namespace ThreadSchedulingMode } // namespace ThreadSchedulingMode
constexpr ConstStringRef indirectStatelessCount("indirect_stateless_count"); inline constexpr ConstStringRef indirectStatelessCount("indirect_stateless_count");
} // namespace ExecutionEnv } // namespace ExecutionEnv
namespace Attributes { namespace Attributes {
constexpr ConstStringRef intelReqdSubgroupSize("intel_reqd_sub_group_size"); inline constexpr ConstStringRef intelReqdSubgroupSize("intel_reqd_sub_group_size");
constexpr ConstStringRef intelReqdWorkgroupWalkOrder("intel_reqd_workgroup_walk_order"); inline constexpr ConstStringRef intelReqdWorkgroupWalkOrder("intel_reqd_workgroup_walk_order");
constexpr ConstStringRef reqdWorkgroupSize("reqd_work_group_size"); inline constexpr ConstStringRef reqdWorkgroupSize("reqd_work_group_size");
constexpr ConstStringRef invalidKernel("invalid_kernel"); inline constexpr ConstStringRef invalidKernel("invalid_kernel");
constexpr ConstStringRef vecTypeHint("vec_type_hint"); inline constexpr ConstStringRef vecTypeHint("vec_type_hint");
constexpr ConstStringRef workgroupSizeHint("work_group_size_hint"); inline constexpr ConstStringRef workgroupSizeHint("work_group_size_hint");
constexpr ConstStringRef hintSuffix("_hint"); inline constexpr ConstStringRef hintSuffix("_hint");
} // namespace Attributes } // namespace Attributes
namespace DebugEnv { namespace DebugEnv {
constexpr ConstStringRef debugSurfaceBTI("sip_surface_bti"); inline constexpr ConstStringRef debugSurfaceBTI("sip_surface_bti");
} // namespace DebugEnv } // namespace DebugEnv
namespace PayloadArgument { namespace PayloadArgument {
constexpr ConstStringRef argType("arg_type"); inline constexpr ConstStringRef argType("arg_type");
constexpr ConstStringRef argIndex("arg_index"); inline constexpr ConstStringRef argIndex("arg_index");
constexpr ConstStringRef offset("offset"); inline constexpr ConstStringRef offset("offset");
constexpr ConstStringRef size("size"); inline constexpr ConstStringRef size("size");
constexpr ConstStringRef addrmode("addrmode"); inline constexpr ConstStringRef addrmode("addrmode");
constexpr ConstStringRef addrspace("addrspace"); inline constexpr ConstStringRef addrspace("addrspace");
constexpr ConstStringRef accessType("access_type"); inline constexpr ConstStringRef accessType("access_type");
constexpr ConstStringRef samplerIndex("sampler_index"); inline constexpr ConstStringRef samplerIndex("sampler_index");
constexpr ConstStringRef sourceOffset("source_offset"); inline constexpr ConstStringRef sourceOffset("source_offset");
constexpr ConstStringRef slmArgAlignment("slm_alignment"); inline constexpr ConstStringRef slmArgAlignment("slm_alignment");
constexpr ConstStringRef imageType("image_type"); inline constexpr ConstStringRef imageType("image_type");
constexpr ConstStringRef imageTransformable("image_transformable"); inline constexpr ConstStringRef imageTransformable("image_transformable");
constexpr ConstStringRef samplerType("sampler_type"); inline constexpr ConstStringRef samplerType("sampler_type");
constexpr ConstStringRef addrMode("sampler_desc_addrmode"); inline constexpr ConstStringRef addrMode("sampler_desc_addrmode");
constexpr ConstStringRef filterMode("sampler_desc_filtermode"); inline constexpr ConstStringRef filterMode("sampler_desc_filtermode");
constexpr ConstStringRef normalized("sampler_desc_normalized"); inline constexpr ConstStringRef normalized("sampler_desc_normalized");
constexpr ConstStringRef isPipe("is_pipe"); inline constexpr ConstStringRef isPipe("is_pipe");
constexpr ConstStringRef isPtr("is_ptr"); inline constexpr ConstStringRef isPtr("is_ptr");
namespace ArgType { namespace ArgType {
constexpr ConstStringRef localSize("local_size"); inline constexpr ConstStringRef localSize("local_size");
constexpr ConstStringRef groupCount("group_count"); inline constexpr ConstStringRef groupCount("group_count");
constexpr ConstStringRef globalIdOffset("global_id_offset"); inline constexpr ConstStringRef globalIdOffset("global_id_offset");
constexpr ConstStringRef globalSize("global_size"); inline constexpr ConstStringRef globalSize("global_size");
constexpr ConstStringRef enqueuedLocalSize("enqueued_local_size"); inline constexpr ConstStringRef enqueuedLocalSize("enqueued_local_size");
constexpr ConstStringRef privateBaseStateless("private_base_stateless"); inline constexpr ConstStringRef privateBaseStateless("private_base_stateless");
constexpr ConstStringRef argByvalue("arg_byvalue"); inline constexpr ConstStringRef argByvalue("arg_byvalue");
constexpr ConstStringRef argBypointer("arg_bypointer"); inline constexpr ConstStringRef argBypointer("arg_bypointer");
constexpr ConstStringRef bufferAddress("buffer_address"); inline constexpr ConstStringRef bufferAddress("buffer_address");
constexpr ConstStringRef bufferOffset("buffer_offset"); inline constexpr ConstStringRef bufferOffset("buffer_offset");
constexpr ConstStringRef printfBuffer("printf_buffer"); inline constexpr ConstStringRef printfBuffer("printf_buffer");
constexpr ConstStringRef workDimensions("work_dimensions"); inline constexpr ConstStringRef workDimensions("work_dimensions");
constexpr ConstStringRef implicitArgBuffer("implicit_arg_buffer"); inline constexpr ConstStringRef implicitArgBuffer("implicit_arg_buffer");
constexpr ConstStringRef syncBuffer("sync_buffer"); inline constexpr ConstStringRef syncBuffer("sync_buffer");
constexpr ConstStringRef rtGlobalBuffer("rt_global_buffer"); inline constexpr ConstStringRef rtGlobalBuffer("rt_global_buffer");
namespace Image { namespace Image {
constexpr ConstStringRef width("image_width"); inline constexpr ConstStringRef width("image_width");
constexpr ConstStringRef height("image_height"); inline constexpr ConstStringRef height("image_height");
constexpr ConstStringRef depth("image_depth"); inline constexpr ConstStringRef depth("image_depth");
constexpr ConstStringRef channelDataType("image_channel_data_type"); inline constexpr ConstStringRef channelDataType("image_channel_data_type");
constexpr ConstStringRef channelOrder("image_channel_order"); inline constexpr ConstStringRef channelOrder("image_channel_order");
constexpr ConstStringRef arraySize("image_array_size"); inline constexpr ConstStringRef arraySize("image_array_size");
constexpr ConstStringRef numSamples("image_num_samples"); inline constexpr ConstStringRef numSamples("image_num_samples");
constexpr ConstStringRef numMipLevels("image_num_mip_levels"); inline constexpr ConstStringRef numMipLevels("image_num_mip_levels");
constexpr ConstStringRef flatBaseOffset("flat_image_baseoffset"); inline constexpr ConstStringRef flatBaseOffset("flat_image_baseoffset");
constexpr ConstStringRef flatWidth("flat_image_width"); inline constexpr ConstStringRef flatWidth("flat_image_width");
constexpr ConstStringRef flatHeight("flat_image_height"); inline constexpr ConstStringRef flatHeight("flat_image_height");
constexpr ConstStringRef flatPitch("flat_image_pitch"); inline constexpr ConstStringRef flatPitch("flat_image_pitch");
} // namespace Image } // namespace Image
namespace Sampler { namespace Sampler {
constexpr ConstStringRef snapWa("sampler_snap_wa"); inline constexpr ConstStringRef snapWa("sampler_snap_wa");
constexpr ConstStringRef normCoords("sampler_normalized"); inline constexpr ConstStringRef normCoords("sampler_normalized");
constexpr ConstStringRef addrMode("sampler_address"); inline constexpr ConstStringRef addrMode("sampler_address");
namespace Vme { namespace Vme {
constexpr ConstStringRef blockType("vme_mb_block_type"); inline constexpr ConstStringRef blockType("vme_mb_block_type");
constexpr ConstStringRef subpixelMode("vme_subpixel_mode"); inline constexpr ConstStringRef subpixelMode("vme_subpixel_mode");
constexpr ConstStringRef sadAdjustMode("vme_sad_adjust_mode"); inline constexpr ConstStringRef sadAdjustMode("vme_sad_adjust_mode");
constexpr ConstStringRef searchPathType("vme_search_path_type"); inline constexpr ConstStringRef searchPathType("vme_search_path_type");
} // namespace Vme } // namespace Vme
} // namespace Sampler } // namespace Sampler
} // namespace ArgType } // namespace ArgType
namespace ImageType { namespace ImageType {
constexpr ConstStringRef imageTypeBuffer("image_buffer"); inline constexpr ConstStringRef imageTypeBuffer("image_buffer");
constexpr ConstStringRef imageType1D("image_1d"); inline constexpr ConstStringRef imageType1D("image_1d");
constexpr ConstStringRef imageType1DArray("image_1d_array"); inline constexpr ConstStringRef imageType1DArray("image_1d_array");
constexpr ConstStringRef imageType2D("image_2d"); inline constexpr ConstStringRef imageType2D("image_2d");
constexpr ConstStringRef imageType2DArray("image_2d_array"); inline constexpr ConstStringRef imageType2DArray("image_2d_array");
constexpr ConstStringRef imageType3D("image_3d"); inline constexpr ConstStringRef imageType3D("image_3d");
constexpr ConstStringRef imageTypeCube("image_cube_array"); inline constexpr ConstStringRef imageTypeCube("image_cube_array");
constexpr ConstStringRef imageTypeCubeArray("image_buffer"); inline constexpr ConstStringRef imageTypeCubeArray("image_buffer");
constexpr ConstStringRef imageType2DDepth("image_2d_depth"); inline constexpr ConstStringRef imageType2DDepth("image_2d_depth");
constexpr ConstStringRef imageType2DArrayDepth("image_2d_array_depth"); inline constexpr ConstStringRef imageType2DArrayDepth("image_2d_array_depth");
constexpr ConstStringRef imageType2DMSAA("image_2d_msaa"); inline constexpr ConstStringRef imageType2DMSAA("image_2d_msaa");
constexpr ConstStringRef imageType2DMSAADepth("image_2d_msaa_depth"); inline constexpr ConstStringRef imageType2DMSAADepth("image_2d_msaa_depth");
constexpr ConstStringRef imageType2DArrayMSAA("image_2d_array_msaa"); inline constexpr ConstStringRef imageType2DArrayMSAA("image_2d_array_msaa");
constexpr ConstStringRef imageType2DArrayMSAADepth("image_2d_array_msaa_depth"); inline constexpr ConstStringRef imageType2DArrayMSAADepth("image_2d_array_msaa_depth");
constexpr ConstStringRef imageType2DMedia("image_2d_media"); inline constexpr ConstStringRef imageType2DMedia("image_2d_media");
constexpr ConstStringRef imageType2DMediaBlock("image_2d_media_block"); inline constexpr ConstStringRef imageType2DMediaBlock("image_2d_media_block");
} // namespace ImageType } // namespace ImageType
namespace SamplerType { namespace SamplerType {
constexpr ConstStringRef samplerTypeTexture("texture"); inline constexpr ConstStringRef samplerTypeTexture("texture");
constexpr ConstStringRef samplerType8x8("sample_8x8"); inline constexpr ConstStringRef samplerType8x8("sample_8x8");
constexpr ConstStringRef samplerType2DConsolve8x8("sample_8x8_2dconvolve"); inline constexpr ConstStringRef samplerType2DConsolve8x8("sample_8x8_2dconvolve");
constexpr ConstStringRef samplerTypeErode8x8("sample_8x8_erode"); inline constexpr ConstStringRef samplerTypeErode8x8("sample_8x8_erode");
constexpr ConstStringRef samplerTypeDilate8x8("sample_8x8_dilate"); inline constexpr ConstStringRef samplerTypeDilate8x8("sample_8x8_dilate");
constexpr ConstStringRef samplerTypeMinMaxFilter8x8("sample_8x8_minmaxfilter"); inline constexpr ConstStringRef samplerTypeMinMaxFilter8x8("sample_8x8_minmaxfilter");
constexpr ConstStringRef samplerTypeCentroid8x8("sample_8x8_centroid"); inline constexpr ConstStringRef samplerTypeCentroid8x8("sample_8x8_centroid");
constexpr ConstStringRef samplerTypeBoolCentroid8x8("sample_8x8_bool_centroid"); inline constexpr ConstStringRef samplerTypeBoolCentroid8x8("sample_8x8_bool_centroid");
constexpr ConstStringRef samplerTypeBoolSum8x8("sample_8x8_bool_sum"); inline constexpr ConstStringRef samplerTypeBoolSum8x8("sample_8x8_bool_sum");
constexpr ConstStringRef samplerTypeVD("vd"); inline constexpr ConstStringRef samplerTypeVD("vd");
constexpr ConstStringRef samplerTypeVE("ve"); inline constexpr ConstStringRef samplerTypeVE("ve");
constexpr ConstStringRef samplerTypeVME("vme"); inline constexpr ConstStringRef samplerTypeVME("vme");
} // namespace SamplerType } // namespace SamplerType
namespace MemoryAddressingMode { namespace MemoryAddressingMode {
constexpr ConstStringRef stateless("stateless"); inline constexpr ConstStringRef stateless("stateless");
constexpr ConstStringRef stateful("stateful"); inline constexpr ConstStringRef stateful("stateful");
constexpr ConstStringRef bindless("bindless"); inline constexpr ConstStringRef bindless("bindless");
constexpr ConstStringRef sharedLocalMemory("slm"); inline constexpr ConstStringRef sharedLocalMemory("slm");
} // namespace MemoryAddressingMode } // namespace MemoryAddressingMode
namespace AddrSpace { namespace AddrSpace {
constexpr ConstStringRef global("global"); inline constexpr ConstStringRef global("global");
constexpr ConstStringRef local("local"); inline constexpr ConstStringRef local("local");
constexpr ConstStringRef constant("constant"); inline constexpr ConstStringRef constant("constant");
constexpr ConstStringRef image("image"); inline constexpr ConstStringRef image("image");
constexpr ConstStringRef sampler("sampler"); inline constexpr ConstStringRef sampler("sampler");
} // namespace AddrSpace } // namespace AddrSpace
namespace AccessType { namespace AccessType {
constexpr ConstStringRef readonly("readonly"); inline constexpr ConstStringRef readonly("readonly");
constexpr ConstStringRef writeonly("writeonly"); inline constexpr ConstStringRef writeonly("writeonly");
constexpr ConstStringRef readwrite("readwrite"); inline constexpr ConstStringRef readwrite("readwrite");
} // namespace AccessType } // namespace AccessType
} // namespace PayloadArgument } // namespace PayloadArgument
namespace BindingTableIndex { namespace BindingTableIndex {
constexpr ConstStringRef btiValue("bti_value"); inline constexpr ConstStringRef btiValue("bti_value");
constexpr ConstStringRef argIndex("arg_index"); inline constexpr ConstStringRef argIndex("arg_index");
} // namespace BindingTableIndex } // namespace BindingTableIndex
namespace PerThreadPayloadArgument { namespace PerThreadPayloadArgument {
constexpr ConstStringRef argType("arg_type"); inline constexpr ConstStringRef argType("arg_type");
constexpr ConstStringRef offset("offset"); inline constexpr ConstStringRef offset("offset");
constexpr ConstStringRef size("size"); inline constexpr ConstStringRef size("size");
namespace ArgType { namespace ArgType {
constexpr ConstStringRef packedLocalIds("packed_local_ids"); inline constexpr ConstStringRef packedLocalIds("packed_local_ids");
constexpr ConstStringRef localId("local_id"); inline constexpr ConstStringRef localId("local_id");
} // namespace ArgType } // namespace ArgType
} // namespace PerThreadPayloadArgument } // namespace PerThreadPayloadArgument
namespace PerThreadMemoryBuffer { namespace PerThreadMemoryBuffer {
constexpr ConstStringRef allocationType("type"); inline constexpr ConstStringRef allocationType("type");
constexpr ConstStringRef memoryUsage("usage"); inline constexpr ConstStringRef memoryUsage("usage");
constexpr ConstStringRef size("size"); inline constexpr ConstStringRef size("size");
constexpr ConstStringRef isSimtThread("is_simt_thread"); inline constexpr ConstStringRef isSimtThread("is_simt_thread");
constexpr ConstStringRef slot("slot"); inline constexpr ConstStringRef slot("slot");
namespace AllocationType { namespace AllocationType {
constexpr ConstStringRef global("global"); inline constexpr ConstStringRef global("global");
constexpr ConstStringRef scratch("scratch"); inline constexpr ConstStringRef scratch("scratch");
constexpr ConstStringRef slm("slm"); inline constexpr ConstStringRef slm("slm");
} // namespace AllocationType } // namespace AllocationType
namespace MemoryUsage { namespace MemoryUsage {
constexpr ConstStringRef privateSpace("private_space"); inline constexpr ConstStringRef privateSpace("private_space");
constexpr ConstStringRef spillFillSpace("spill_fill_space"); inline constexpr ConstStringRef spillFillSpace("spill_fill_space");
constexpr ConstStringRef singleSpace("single_space"); inline constexpr ConstStringRef singleSpace("single_space");
} // namespace MemoryUsage } // namespace MemoryUsage
} // namespace PerThreadMemoryBuffer } // namespace PerThreadMemoryBuffer
namespace ExperimentalProperties { namespace ExperimentalProperties {
constexpr ConstStringRef hasNonKernelArgLoad("has_non_kernel_arg_load"); inline constexpr ConstStringRef hasNonKernelArgLoad("has_non_kernel_arg_load");
constexpr ConstStringRef hasNonKernelArgStore("has_non_kernel_arg_store"); inline constexpr ConstStringRef hasNonKernelArgStore("has_non_kernel_arg_store");
constexpr ConstStringRef hasNonKernelArgAtomic("has_non_kernel_arg_atomic"); inline constexpr ConstStringRef hasNonKernelArgAtomic("has_non_kernel_arg_atomic");
} // namespace ExperimentalProperties } // namespace ExperimentalProperties
namespace InlineSamplers { namespace InlineSamplers {
constexpr ConstStringRef samplerIndex("sampler_index"); inline constexpr ConstStringRef samplerIndex("sampler_index");
constexpr ConstStringRef addrMode("addrmode"); inline constexpr ConstStringRef addrMode("addrmode");
constexpr ConstStringRef filterMode("filtermode"); inline constexpr ConstStringRef filterMode("filtermode");
constexpr ConstStringRef normalized("normalized"); inline constexpr ConstStringRef normalized("normalized");
namespace AddrMode { namespace AddrMode {
constexpr ConstStringRef none("none"); inline constexpr ConstStringRef none("none");
constexpr ConstStringRef repeat("repeat"); inline constexpr ConstStringRef repeat("repeat");
constexpr ConstStringRef clamp_edge("clamp_edge"); inline constexpr ConstStringRef clamp_edge("clamp_edge");
constexpr ConstStringRef clamp_border("clamp_border"); inline constexpr ConstStringRef clamp_border("clamp_border");
constexpr ConstStringRef mirror("mirror"); inline constexpr ConstStringRef mirror("mirror");
} // namespace AddrMode } // namespace AddrMode
namespace FilterMode { namespace FilterMode {
constexpr ConstStringRef nearest("nearest"); inline constexpr ConstStringRef nearest("nearest");
constexpr ConstStringRef linear("linear"); inline constexpr ConstStringRef linear("linear");
} // namespace FilterMode } // namespace FilterMode
} // namespace InlineSamplers } // namespace InlineSamplers
} // namespace Kernel } // namespace Kernel
namespace GlobalHostAccessTable { namespace GlobalHostAccessTable {
constexpr ConstStringRef deviceName("device_name"); inline constexpr ConstStringRef deviceName("device_name");
constexpr ConstStringRef hostName("host_name"); inline constexpr ConstStringRef hostName("host_name");
} // namespace GlobalHostAccessTable } // namespace GlobalHostAccessTable
namespace Function { namespace Function {
constexpr ConstStringRef name("name"); inline constexpr ConstStringRef name("name");
constexpr ConstStringRef executionEnv("execution_env"); inline constexpr ConstStringRef executionEnv("execution_env");
using namespace Kernel::ExecutionEnv; using namespace Kernel::ExecutionEnv;
} // namespace Function } // namespace Function
namespace KernelMiscInfo { namespace KernelMiscInfo {
constexpr ConstStringRef name("name"); inline constexpr ConstStringRef name("name");
constexpr ConstStringRef argsInfo("args_info"); inline constexpr ConstStringRef argsInfo("args_info");
namespace ArgsInfo { namespace ArgsInfo {
constexpr ConstStringRef index("index"); inline constexpr ConstStringRef index("index");
constexpr ConstStringRef name("name"); inline constexpr ConstStringRef name("name");
constexpr ConstStringRef addressQualifier("address_qualifier"); inline constexpr ConstStringRef addressQualifier("address_qualifier");
constexpr ConstStringRef accessQualifier("access_qualifier"); inline constexpr ConstStringRef accessQualifier("access_qualifier");
constexpr ConstStringRef typeName("type_name"); inline constexpr ConstStringRef typeName("type_name");
constexpr ConstStringRef typeQualifiers("type_qualifiers"); inline constexpr ConstStringRef typeQualifiers("type_qualifiers");
} // namespace ArgsInfo } // namespace ArgsInfo
} // namespace KernelMiscInfo } // namespace KernelMiscInfo
@ -433,34 +433,34 @@ using ThreadSchedulingModeT = ThreadSchedulingMode;
using IndirectStatelessCountT = int32_t; using IndirectStatelessCountT = int32_t;
namespace Defaults { namespace Defaults {
constexpr BarrierCountT barrierCount = 0; inline constexpr BarrierCountT barrierCount = 0;
constexpr DisableMidThreadPreemptionT disableMidThreadPreemption = false; inline constexpr DisableMidThreadPreemptionT disableMidThreadPreemption = false;
constexpr EuThreadCountT euThreadCount = 0; inline constexpr EuThreadCountT euThreadCount = 0;
constexpr Has4GBBuffersT has4GBBuffers = false; inline constexpr Has4GBBuffersT has4GBBuffers = false;
constexpr HasDpasT hasDpas = false; inline constexpr HasDpasT hasDpas = false;
constexpr HasFenceForImageAccessT hasFenceForImageAccess = false; inline constexpr HasFenceForImageAccessT hasFenceForImageAccess = false;
constexpr HasGlobalAtomicsT hasGlobalAtomics = false; inline constexpr HasGlobalAtomicsT hasGlobalAtomics = false;
constexpr HasMultiScratchSpacesT hasMultiScratchSpaces = false; inline constexpr HasMultiScratchSpacesT hasMultiScratchSpaces = false;
constexpr HasNonKernelArgAtomicT hasNonKernelArgAtomic = false; inline constexpr HasNonKernelArgAtomicT hasNonKernelArgAtomic = false;
constexpr HasNonKernelArgLoadT hasNonKernelArgLoad = false; inline constexpr HasNonKernelArgLoadT hasNonKernelArgLoad = false;
constexpr HasNonKernelArgStoreT hasNonKernelArgStore = false; inline constexpr HasNonKernelArgStoreT hasNonKernelArgStore = false;
constexpr HasNoStatelessWriteT hasNoStatelessWrite = false; inline constexpr HasNoStatelessWriteT hasNoStatelessWrite = false;
constexpr HasStackCallsT hasStackCalls = false; inline constexpr HasStackCallsT hasStackCalls = false;
constexpr HwPreemptionModeT hwPreemptionMode = -1; inline constexpr HwPreemptionModeT hwPreemptionMode = -1;
constexpr InlineDataPayloadSizeT inlineDataPayloadSize = 0; inline constexpr InlineDataPayloadSizeT inlineDataPayloadSize = 0;
constexpr OffsetToSkipPerThreadDataLoadT offsetToSkipPerThreadDataLoad = 0; inline constexpr OffsetToSkipPerThreadDataLoadT offsetToSkipPerThreadDataLoad = 0;
constexpr OffsetToSkipSetFfidGpT offsetToSkipSetFfidGp = 0; inline constexpr OffsetToSkipSetFfidGpT offsetToSkipSetFfidGp = 0;
constexpr RequiredSubGroupSizeT requiredSubGroupSize = 0; inline constexpr RequiredSubGroupSizeT requiredSubGroupSize = 0;
constexpr RequiredWorkGroupSizeT requiredWorkGroupSize = {0, 0, 0}; inline constexpr RequiredWorkGroupSizeT requiredWorkGroupSize = {0, 0, 0};
constexpr RequireDisableEUFusionT requireDisableEUFusion = false; inline constexpr RequireDisableEUFusionT requireDisableEUFusion = false;
constexpr SlmSizeT slmSize = 0; inline constexpr SlmSizeT slmSize = 0;
constexpr SubgroupIndependentForwardProgressT subgroupIndependentForwardProgress = false; inline constexpr SubgroupIndependentForwardProgressT subgroupIndependentForwardProgress = false;
constexpr WorkgroupWalkOrderDimensionsT workgroupWalkOrderDimensions = {0, 1, 2}; inline constexpr WorkgroupWalkOrderDimensionsT workgroupWalkOrderDimensions = {0, 1, 2};
constexpr ThreadSchedulingModeT threadSchedulingMode = ThreadSchedulingModeUnknown; inline constexpr ThreadSchedulingModeT threadSchedulingMode = ThreadSchedulingModeUnknown;
constexpr IndirectStatelessCountT indirectStatelessCount = 0; inline constexpr IndirectStatelessCountT indirectStatelessCount = 0;
} // namespace Defaults } // namespace Defaults
constexpr ConstStringRef required[] = { inline constexpr ConstStringRef required[] = {
Tags::Kernel::ExecutionEnv::grfCount, Tags::Kernel::ExecutionEnv::grfCount,
Tags::Kernel::ExecutionEnv::simdSize}; Tags::Kernel::ExecutionEnv::simdSize};
@ -508,10 +508,10 @@ using WorkgroupSizeHint = std::array<int32_t, 3>;
using VecTypeHintT = ConstStringRef; using VecTypeHintT = ConstStringRef;
namespace Defaults { namespace Defaults {
constexpr IntelReqdSubgroupSizeT intelReqdSubgroupSize = 0; inline constexpr IntelReqdSubgroupSizeT intelReqdSubgroupSize = 0;
constexpr IntelReqdWorkgroupWalkOrder intelReqdWorkgroupWalkOrder = {0, 0, 0}; inline constexpr IntelReqdWorkgroupWalkOrder intelReqdWorkgroupWalkOrder = {0, 0, 0};
constexpr ReqdWorkgroupSizeT reqdWorkgroupSize = {0, 0, 0}; inline constexpr ReqdWorkgroupSizeT reqdWorkgroupSize = {0, 0, 0};
constexpr WorkgroupSizeHint workgroupSizeHint = {0, 0, 0}; inline constexpr WorkgroupSizeHint workgroupSizeHint = {0, 0, 0};
} // namespace Defaults } // namespace Defaults
struct AttributesBaseT { struct AttributesBaseT {
@ -529,7 +529,7 @@ namespace DebugEnv {
using DebugSurfaceBTIT = int32_t; using DebugSurfaceBTIT = int32_t;
namespace Defaults { namespace Defaults {
constexpr DebugSurfaceBTIT debugSurfaceBTI = -1; inline constexpr DebugSurfaceBTIT debugSurfaceBTI = -1;
} // namespace Defaults } // namespace Defaults
struct DebugEnvBaseT { struct DebugEnvBaseT {
@ -674,10 +674,10 @@ using SlmAlignmentT = uint8_t;
using SamplerIndexT = int32_t; using SamplerIndexT = int32_t;
namespace Defaults { namespace Defaults {
constexpr ArgIndexT argIndex = -1; inline constexpr ArgIndexT argIndex = -1;
constexpr SlmAlignmentT slmArgAlignment = 16U; inline constexpr SlmAlignmentT slmArgAlignment = 16U;
constexpr SamplerIndexT samplerIndex = -1; inline constexpr SamplerIndexT samplerIndex = -1;
constexpr SourceOffseT sourceOffset = -1; inline constexpr SourceOffseT sourceOffset = -1;
} // namespace Defaults } // namespace Defaults
struct PayloadArgumentBaseT { struct PayloadArgumentBaseT {
@ -733,8 +733,8 @@ using IsSimtThreadT = bool;
using Slot = int32_t; using Slot = int32_t;
namespace Defaults { namespace Defaults {
constexpr IsSimtThreadT isSimtThread = false; inline constexpr IsSimtThreadT isSimtThread = false;
constexpr Slot slot = 0U; inline constexpr Slot slot = 0U;
} // namespace Defaults } // namespace Defaults
struct PerThreadMemoryBufferBaseT { struct PerThreadMemoryBufferBaseT {
@ -770,10 +770,10 @@ using FilterModeT = FilterMode;
using NormalizedT = bool; using NormalizedT = bool;
namespace Defaults { namespace Defaults {
constexpr SamplerIndexT samplerIndex = -1; inline constexpr SamplerIndexT samplerIndex = -1;
constexpr AddrModeT addrMode = AddrMode::Unknown; inline constexpr AddrModeT addrMode = AddrMode::Unknown;
constexpr FilterModeT filterMode = FilterMode::Unknown; inline constexpr FilterModeT filterMode = FilterMode::Unknown;
constexpr NormalizedT normalized = false; inline constexpr NormalizedT normalized = false;
}; // namespace Defaults }; // namespace Defaults
struct InlineSamplerBaseT { struct InlineSamplerBaseT {

View File

@ -21,8 +21,8 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler;
using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme; using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
using ArgType = Types::Kernel::ArgType; using ArgType = Types::Kernel::ArgType;
constexpr ConstStringRef name = "argument type"; inline constexpr ConstStringRef name = "argument type";
constexpr LookupArray<ConstStringRef, ArgType, 36> lookup({{{packedLocalIds, ArgType::ArgTypePackedLocalIds}, inline constexpr LookupArray<ConstStringRef, ArgType, 36> lookup({{{packedLocalIds, ArgType::ArgTypePackedLocalIds},
{localId, ArgType::ArgTypeLocalId}, {localId, ArgType::ArgTypeLocalId},
{localSize, ArgType::ArgTypeLocalSize}, {localSize, ArgType::ArgTypeLocalSize},
{groupCount, ArgType::ArgTypeGroupCount}, {groupCount, ArgType::ArgTypeGroupCount},
@ -64,11 +64,11 @@ static_assert(lookup.size() == ArgType::ArgTypeMax - 1, "Every enum field must b
namespace MemoryAddressingMode { namespace MemoryAddressingMode {
namespace AddrModeTag = Tags::Kernel::PayloadArgument::MemoryAddressingMode; namespace AddrModeTag = Tags::Kernel::PayloadArgument::MemoryAddressingMode;
using AddrMode = Types::Kernel::PayloadArgument::MemoryAddressingMode; using AddrMode = Types::Kernel::PayloadArgument::MemoryAddressingMode;
constexpr LookupArray<ConstStringRef, AddrMode, 4> lookup({{{AddrModeTag::stateless, AddrMode::MemoryAddressingModeStateless}, inline constexpr LookupArray<ConstStringRef, AddrMode, 4> lookup({{{AddrModeTag::stateless, AddrMode::MemoryAddressingModeStateless},
{AddrModeTag::stateful, AddrMode::MemoryAddressingModeStateful}, {AddrModeTag::stateful, AddrMode::MemoryAddressingModeStateful},
{AddrModeTag::bindless, AddrMode::MemoryAddressingModeBindless}, {AddrModeTag::bindless, AddrMode::MemoryAddressingModeBindless},
{AddrModeTag::sharedLocalMemory, AddrMode::MemoryAddressingModeSharedLocalMemory}}}); {AddrModeTag::sharedLocalMemory, AddrMode::MemoryAddressingModeSharedLocalMemory}}});
constexpr ConstStringRef name = "addressing mode"; inline constexpr ConstStringRef name = "addressing mode";
static_assert(lookup.size() == AddrMode::MemoryAddressIngModeMax - 1, "Every enum field must be present"); static_assert(lookup.size() == AddrMode::MemoryAddressIngModeMax - 1, "Every enum field must be present");
} // namespace MemoryAddressingMode } // namespace MemoryAddressingMode
@ -76,8 +76,8 @@ namespace AddressSpace {
using namespace Tags::Kernel::PayloadArgument::AddrSpace; using namespace Tags::Kernel::PayloadArgument::AddrSpace;
using AddrSpace = Types::Kernel::PayloadArgument::AddressSpace; using AddrSpace = Types::Kernel::PayloadArgument::AddressSpace;
constexpr ConstStringRef name = "address space"; inline constexpr ConstStringRef name = "address space";
constexpr LookupArray<ConstStringRef, AddrSpace, 5> lookup({{{global, AddrSpace::AddressSpaceGlobal}, inline constexpr LookupArray<ConstStringRef, AddrSpace, 5> lookup({{{global, AddrSpace::AddressSpaceGlobal},
{local, AddrSpace::AddressSpaceLocal}, {local, AddrSpace::AddressSpaceLocal},
{constant, AddrSpace::AddressSpaceConstant}, {constant, AddrSpace::AddressSpaceConstant},
{image, AddrSpace::AddressSpaceImage}, {image, AddrSpace::AddressSpaceImage},
@ -89,8 +89,8 @@ namespace AccessType {
using namespace Tags::Kernel::PayloadArgument::AccessType; using namespace Tags::Kernel::PayloadArgument::AccessType;
using AccessType = Types::Kernel::PayloadArgument::AccessType; using AccessType = Types::Kernel::PayloadArgument::AccessType;
constexpr ConstStringRef name = "access type"; inline constexpr ConstStringRef name = "access type";
constexpr LookupArray<ConstStringRef, AccessType, 3> lookup({{{readonly, AccessType::AccessTypeReadonly}, inline constexpr LookupArray<ConstStringRef, AccessType, 3> lookup({{{readonly, AccessType::AccessTypeReadonly},
{writeonly, AccessType::AccessTypeWriteonly}, {writeonly, AccessType::AccessTypeWriteonly},
{readwrite, AccessType::AccessTypeReadwrite}}}); {readwrite, AccessType::AccessTypeReadwrite}}});
static_assert(lookup.size() == AccessType::AccessTypeMax - 1, "Every enum field must be present"); static_assert(lookup.size() == AccessType::AccessTypeMax - 1, "Every enum field must be present");
@ -99,8 +99,8 @@ static_assert(lookup.size() == AccessType::AccessTypeMax - 1, "Every enum field
namespace AllocationType { namespace AllocationType {
using namespace Tags::Kernel::PerThreadMemoryBuffer::AllocationType; using namespace Tags::Kernel::PerThreadMemoryBuffer::AllocationType;
using AllocType = Types::Kernel::PerThreadMemoryBuffer::AllocationType; using AllocType = Types::Kernel::PerThreadMemoryBuffer::AllocationType;
constexpr ConstStringRef name = "allocation type"; inline constexpr ConstStringRef name = "allocation type";
constexpr LookupArray<ConstStringRef, AllocType, 3> lookup({{{global, AllocType::AllocationTypeGlobal}, inline constexpr LookupArray<ConstStringRef, AllocType, 3> lookup({{{global, AllocType::AllocationTypeGlobal},
{scratch, AllocType::AllocationTypeScratch}, {scratch, AllocType::AllocationTypeScratch},
{slm, AllocType::AllocationTypeSlm}}}); {slm, AllocType::AllocationTypeSlm}}});
static_assert(lookup.size() == AllocType::AllocationTypeMax - 1, "Every enum field must be present"); static_assert(lookup.size() == AllocType::AllocationTypeMax - 1, "Every enum field must be present");
@ -109,8 +109,8 @@ static_assert(lookup.size() == AllocType::AllocationTypeMax - 1, "Every enum fie
namespace MemoryUsage { namespace MemoryUsage {
using namespace NEO::Elf::ZebinKernelMetadata::Tags::Kernel::PerThreadMemoryBuffer::MemoryUsage; using namespace NEO::Elf::ZebinKernelMetadata::Tags::Kernel::PerThreadMemoryBuffer::MemoryUsage;
using MemoryUsage = NEO::Elf::ZebinKernelMetadata::Types::Kernel::PerThreadMemoryBuffer::MemoryUsage; using MemoryUsage = NEO::Elf::ZebinKernelMetadata::Types::Kernel::PerThreadMemoryBuffer::MemoryUsage;
constexpr ConstStringRef name = "memory usage"; inline constexpr ConstStringRef name = "memory usage";
constexpr LookupArray<ConstStringRef, MemoryUsage, 3> lookup({{{privateSpace, MemoryUsage::MemoryUsagePrivateSpace}, inline constexpr LookupArray<ConstStringRef, MemoryUsage, 3> lookup({{{privateSpace, MemoryUsage::MemoryUsagePrivateSpace},
{spillFillSpace, MemoryUsage::MemoryUsageSpillFillSpace}, {spillFillSpace, MemoryUsage::MemoryUsageSpillFillSpace},
{singleSpace, MemoryUsage::MemoryUsageSingleSpace}}}); {singleSpace, MemoryUsage::MemoryUsageSingleSpace}}});
static_assert(lookup.size() == MemoryUsage::MemoryUsageMax - 1, "Every enum field must be present"); static_assert(lookup.size() == MemoryUsage::MemoryUsageMax - 1, "Every enum field must be present");
@ -119,8 +119,8 @@ static_assert(lookup.size() == MemoryUsage::MemoryUsageMax - 1, "Every enum fiel
namespace ImageType { namespace ImageType {
using namespace Tags::Kernel::PayloadArgument::ImageType; using namespace Tags::Kernel::PayloadArgument::ImageType;
using ImageType = Types::Kernel::PayloadArgument::ImageType; using ImageType = Types::Kernel::PayloadArgument::ImageType;
constexpr ConstStringRef name = "image type"; inline constexpr ConstStringRef name = "image type";
constexpr LookupArray<ConstStringRef, ImageType, 16> lookup({{{imageTypeBuffer, ImageType::ImageTypeBuffer}, inline constexpr LookupArray<ConstStringRef, ImageType, 16> lookup({{{imageTypeBuffer, ImageType::ImageTypeBuffer},
{imageType1D, ImageType::ImageType1D}, {imageType1D, ImageType::ImageType1D},
{imageType1DArray, ImageType::ImageType1DArray}, {imageType1DArray, ImageType::ImageType1DArray},
{imageType2D, ImageType::ImageType2D}, {imageType2D, ImageType::ImageType2D},
@ -142,8 +142,8 @@ static_assert(lookup.size() == ImageType::ImageTypeMax - 1, "Every enum field mu
namespace SamplerType { namespace SamplerType {
using namespace Tags::Kernel::PayloadArgument::SamplerType; using namespace Tags::Kernel::PayloadArgument::SamplerType;
using SamplerType = Types::Kernel::PayloadArgument::SamplerType; using SamplerType = Types::Kernel::PayloadArgument::SamplerType;
constexpr ConstStringRef name = "sampler type"; inline constexpr ConstStringRef name = "sampler type";
constexpr LookupArray<ConstStringRef, SamplerType, 12> lookup({{{samplerTypeTexture, SamplerType::SamplerTypeTexture}, inline constexpr LookupArray<ConstStringRef, SamplerType, 12> lookup({{{samplerTypeTexture, SamplerType::SamplerTypeTexture},
{samplerType8x8, SamplerType::SamplerType8x8}, {samplerType8x8, SamplerType::SamplerType8x8},
{samplerType2DConsolve8x8, SamplerType::SamplerType2DConvolve8x8}, {samplerType2DConsolve8x8, SamplerType::SamplerType2DConvolve8x8},
{samplerTypeErode8x8, SamplerType::SamplerTypeErode8x8}, {samplerTypeErode8x8, SamplerType::SamplerTypeErode8x8},
@ -161,8 +161,8 @@ static_assert(lookup.size() == SamplerType::SamplerTypeMax - 1, "Every enum fiel
namespace ThreadSchedulingMode { namespace ThreadSchedulingMode {
using namespace Tags::Kernel::ExecutionEnv::ThreadSchedulingMode; using namespace Tags::Kernel::ExecutionEnv::ThreadSchedulingMode;
using ThreadSchedulingMode = Types::Kernel::ExecutionEnv::ThreadSchedulingMode; using ThreadSchedulingMode = Types::Kernel::ExecutionEnv::ThreadSchedulingMode;
constexpr ConstStringRef name = "thread scheduling mode"; inline constexpr ConstStringRef name = "thread scheduling mode";
constexpr LookupArray<ConstStringRef, ThreadSchedulingMode, 3> lookup({{{ageBased, ThreadSchedulingMode::ThreadSchedulingModeAgeBased}, inline constexpr LookupArray<ConstStringRef, ThreadSchedulingMode, 3> lookup({{{ageBased, ThreadSchedulingMode::ThreadSchedulingModeAgeBased},
{roundRobin, ThreadSchedulingMode::ThreadSchedulingModeRoundRobin}, {roundRobin, ThreadSchedulingMode::ThreadSchedulingModeRoundRobin},
{roundRobinStall, ThreadSchedulingMode::ThreadSchedulingModeRoundRobinStall}}}); {roundRobinStall, ThreadSchedulingMode::ThreadSchedulingModeRoundRobinStall}}});
static_assert(lookup.size() == ThreadSchedulingMode::ThreadSchedulingModeMax - 1, "Every enum field must be present"); static_assert(lookup.size() == ThreadSchedulingMode::ThreadSchedulingModeMax - 1, "Every enum field must be present");
@ -171,8 +171,8 @@ static_assert(lookup.size() == ThreadSchedulingMode::ThreadSchedulingModeMax - 1
namespace InlineSamplerAddrMode { namespace InlineSamplerAddrMode {
using namespace Tags::Kernel::InlineSamplers::AddrMode; using namespace Tags::Kernel::InlineSamplers::AddrMode;
using AddrMode = Types::Kernel::InlineSamplers::AddrMode; using AddrMode = Types::Kernel::InlineSamplers::AddrMode;
constexpr ConstStringRef name = "inline sampler addressing mode"; inline constexpr ConstStringRef name = "inline sampler addressing mode";
constexpr LookupArray<ConstStringRef, AddrMode, 5> lookup({{{none, AddrMode::None}, inline constexpr LookupArray<ConstStringRef, AddrMode, 5> lookup({{{none, AddrMode::None},
{repeat, AddrMode::Repeat}, {repeat, AddrMode::Repeat},
{clamp_edge, AddrMode::ClampEdge}, {clamp_edge, AddrMode::ClampEdge},
{clamp_border, AddrMode::ClampBorder}, {clamp_border, AddrMode::ClampBorder},
@ -183,8 +183,8 @@ static_assert(lookup.size() == static_cast<size_t>(AddrMode::Max) - 1, "Every en
namespace InlineSamplerFilterMode { namespace InlineSamplerFilterMode {
using namespace Tags::Kernel::InlineSamplers::FilterMode; using namespace Tags::Kernel::InlineSamplers::FilterMode;
using FilterMode = Types::Kernel::InlineSamplers::FilterMode; using FilterMode = Types::Kernel::InlineSamplers::FilterMode;
constexpr ConstStringRef name = "inline sampler filter mode"; inline constexpr ConstStringRef name = "inline sampler filter mode";
constexpr LookupArray<ConstStringRef, FilterMode, 2> lookup({{{nearest, FilterMode::Nearest}, inline constexpr LookupArray<ConstStringRef, FilterMode, 2> lookup({{{nearest, FilterMode::Nearest},
{linear, FilterMode::Linear}}}); {linear, FilterMode::Linear}}});
static_assert(lookup.size() == FilterMode::Max - 1, "Every enum field must be present"); static_assert(lookup.size() == FilterMode::Max - 1, "Every enum field must be present");
} // namespace InlineSamplerFilterMode } // namespace InlineSamplerFilterMode

View File

@ -18,7 +18,7 @@
namespace NEO { namespace NEO {
constexpr NEO::Elf::ZebinKernelMetadata::Types::Version zeInfoDecoderVersion{1, 26}; inline constexpr NEO::Elf::ZebinKernelMetadata::Types::Version zeInfoDecoderVersion{1, 26};
template <Elf::ELF_IDENTIFIER_CLASS numBits = Elf::EI_CLASS_64> template <Elf::ELF_IDENTIFIER_CLASS numBits = Elf::EI_CLASS_64>
struct ZebinSections { struct ZebinSections {

View File

@ -45,8 +45,8 @@ enum class DirectSubmissionSfenceMode : int32_t {
}; };
namespace UllsDefaults { namespace UllsDefaults {
constexpr bool defaultDisableCacheFlush = true; inline constexpr bool defaultDisableCacheFlush = true;
constexpr bool defaultDisableMonitorFence = false; inline constexpr bool defaultDisableMonitorFence = false;
} // namespace UllsDefaults } // namespace UllsDefaults
struct BatchBuffer; struct BatchBuffer;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020 Intel Corporation * Copyright (C) 2020-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -14,9 +14,9 @@
namespace NEO { namespace NEO {
#if defined(_RELEASE_INTERNAL) || (_DEBUG) #if defined(_RELEASE_INTERNAL) || (_DEBUG)
constexpr bool directSubmissionDiagnosticAvailable = true; inline constexpr bool directSubmissionDiagnosticAvailable = true;
#else #else
constexpr bool directSubmissionDiagnosticAvailable = false; inline constexpr bool directSubmissionDiagnosticAvailable = false;
#endif #endif
struct DirectSubmissionSingleDelta { struct DirectSubmissionSingleDelta {

View File

@ -9,7 +9,7 @@
#include "shared/source/gmm_helper/gmm_lib.h" #include "shared/source/gmm_helper/gmm_lib.h"
namespace CacheSettings { namespace CacheSettings {
constexpr uint32_t unknownMocs = GMM_RESOURCE_USAGE_UNKNOWN; inline constexpr uint32_t unknownMocs = GMM_RESOURCE_USAGE_UNKNOWN;
} // namespace CacheSettings } // namespace CacheSettings
namespace NEO { namespace NEO {

View File

@ -63,8 +63,8 @@ constexpr bool isLinkBcs(aub_stream::EngineType engineType) {
return engineType >= aub_stream::ENGINE_BCS1 && engineType <= aub_stream::ENGINE_BCS8; return engineType >= aub_stream::ENGINE_BCS1 && engineType <= aub_stream::ENGINE_BCS8;
} }
constexpr uint32_t numLinkedCopyEngines = 8u; inline constexpr uint32_t numLinkedCopyEngines = 8u;
constexpr size_t oddLinkedCopyEnginesMask = 0b010101010; inline constexpr size_t oddLinkedCopyEnginesMask = 0b010101010;
bool linkCopyEnginesSupported(const HardwareInfo &hwInfo, const DeviceBitfield &deviceBitfield); bool linkCopyEnginesSupported(const HardwareInfo &hwInfo, const DeviceBitfield &deviceBitfield);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2021 Intel Corporation * Copyright (C) 2018-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -16,7 +16,7 @@
namespace GetInfo { namespace GetInfo {
constexpr size_t invalidSourceSize = std::numeric_limits<size_t>::max(); inline constexpr size_t invalidSourceSize = std::numeric_limits<size_t>::max();
inline GetInfoStatus getInfo(void *destParamValue, size_t destParamValueSize, inline GetInfoStatus getInfo(void *destParamValue, size_t destParamValueSize,
const void *srcParamValue, size_t srcParamValueSize) { const void *srcParamValue, size_t srcParamValueSize) {

View File

@ -13,13 +13,13 @@
namespace NEO { namespace NEO {
namespace HwWalkOrderHelper { namespace HwWalkOrderHelper {
//make sure table below matches Hardware Spec //make sure table below matches Hardware Spec
constexpr uint32_t walkOrderPossibilties = 6u; inline constexpr uint32_t walkOrderPossibilties = 6u;
constexpr uint8_t X = 0; inline constexpr uint8_t X = 0;
constexpr uint8_t Y = 1; inline constexpr uint8_t Y = 1;
constexpr uint8_t Z = 2; inline constexpr uint8_t Z = 2;
constexpr std::array<uint8_t, 3> linearWalk = {X, Y, Z}; inline constexpr std::array<uint8_t, 3> linearWalk = {X, Y, Z};
constexpr std::array<uint8_t, 3> yOrderWalk = {Y, X, Z}; inline constexpr std::array<uint8_t, 3> yOrderWalk = {Y, X, Z};
constexpr std::array<uint8_t, 3> compatibleDimensionOrders[walkOrderPossibilties] = {linearWalk, // 0 1 2 inline constexpr std::array<uint8_t, 3> compatibleDimensionOrders[walkOrderPossibilties] = {linearWalk, // 0 1 2
{X, Z, Y}, // 0 2 1 {X, Z, Y}, // 0 2 1
yOrderWalk, // 1 0 2 yOrderWalk, // 1 0 2
{Z, X, Y}, // 1 2 0 {Z, X, Y}, // 1 2 0

View File

@ -32,8 +32,8 @@ struct KmdNotifyProperties {
}; };
namespace KmdNotifyConstants { namespace KmdNotifyConstants {
constexpr int64_t timeoutInMicrosecondsForDisconnectedAcLine = 10000; inline constexpr int64_t timeoutInMicrosecondsForDisconnectedAcLine = 10000;
constexpr uint32_t minimumTaskCountDiffToCheckAcLine = 10; inline constexpr uint32_t minimumTaskCountDiffToCheckAcLine = 10;
} // namespace KmdNotifyConstants } // namespace KmdNotifyConstants
class KmdNotifyHelper { class KmdNotifyHelper {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2021 Intel Corporation * Copyright (C) 2019-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -20,7 +20,7 @@
#define TOSTR(b) QTR(b) #define TOSTR(b) QTR(b)
namespace NEO { namespace NEO {
constexpr const char *driverVersion = TOSTR(NEO_OCL_DRIVER_VERSION); inline constexpr const char *driverVersion = TOSTR(NEO_OCL_DRIVER_VERSION);
} }
#undef QTR #undef QTR

View File

@ -9,8 +9,8 @@
#include <cstdint> #include <cstdint>
namespace NEO { namespace NEO {
constexpr uint32_t pipelineSelectEnablePipelineSelectMaskBits = 0x3; inline constexpr uint32_t pipelineSelectEnablePipelineSelectMaskBits = 0x3;
constexpr uint32_t pipelineSelectMediaSamplerDopClockGateMaskBits = 0x10; inline constexpr uint32_t pipelineSelectMediaSamplerDopClockGateMaskBits = 0x10;
constexpr uint32_t pipelineSelectMediaSamplerPowerClockGateMaskBits = 0x40; inline constexpr uint32_t pipelineSelectMediaSamplerPowerClockGateMaskBits = 0x40;
constexpr uint32_t pipelineSelectSystolicModeEnableMaskBits = 0x80; inline constexpr uint32_t pipelineSelectSystolicModeEnableMaskBits = 0x80;
} // namespace NEO } // namespace NEO

View File

@ -8,42 +8,42 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
constexpr uint32_t L3SQC_BIT_LQSC_RO_PERF_DIS = 0x08000000; inline constexpr uint32_t L3SQC_BIT_LQSC_RO_PERF_DIS = 0x08000000;
constexpr uint32_t L3SQC_REG4 = 0xB118; inline constexpr uint32_t L3SQC_REG4 = 0xB118;
constexpr uint32_t GPGPU_WALKER_COOKIE_VALUE_BEFORE_WALKER = 0xFFFFFFFF; inline constexpr uint32_t GPGPU_WALKER_COOKIE_VALUE_BEFORE_WALKER = 0xFFFFFFFF;
constexpr uint32_t GPGPU_WALKER_COOKIE_VALUE_AFTER_WALKER = 0x00000000; inline constexpr uint32_t GPGPU_WALKER_COOKIE_VALUE_AFTER_WALKER = 0x00000000;
//Threads Dimension X/Y/Z //Threads Dimension X/Y/Z
constexpr uint32_t GPUGPU_DISPATCHDIMX = 0x2500; inline constexpr uint32_t GPUGPU_DISPATCHDIMX = 0x2500;
constexpr uint32_t GPUGPU_DISPATCHDIMY = 0x2504; inline constexpr uint32_t GPUGPU_DISPATCHDIMY = 0x2504;
constexpr uint32_t GPUGPU_DISPATCHDIMZ = 0x2508; inline constexpr uint32_t GPUGPU_DISPATCHDIMZ = 0x2508;
constexpr uint32_t GPUGPU_DISPATCHDIM[3] = {GPUGPU_DISPATCHDIMX, GPUGPU_DISPATCHDIMY, GPUGPU_DISPATCHDIMZ}; inline constexpr uint32_t GPUGPU_DISPATCHDIM[3] = {GPUGPU_DISPATCHDIMX, GPUGPU_DISPATCHDIMY, GPUGPU_DISPATCHDIMZ};
constexpr uint32_t CS_GPR_R0 = 0x2600; inline constexpr uint32_t CS_GPR_R0 = 0x2600;
constexpr uint32_t CS_GPR_R1 = 0x2608; inline constexpr uint32_t CS_GPR_R1 = 0x2608;
constexpr uint32_t CS_GPR_R2 = 0x2610; inline constexpr uint32_t CS_GPR_R2 = 0x2610;
constexpr uint32_t CS_GPR_R3 = 0x2618; inline constexpr uint32_t CS_GPR_R3 = 0x2618;
constexpr uint32_t CS_GPR_R4 = 0x2620; inline constexpr uint32_t CS_GPR_R4 = 0x2620;
constexpr uint32_t CS_GPR_R5 = 0x2628; inline constexpr uint32_t CS_GPR_R5 = 0x2628;
constexpr uint32_t CS_GPR_R6 = 0x2630; inline constexpr uint32_t CS_GPR_R6 = 0x2630;
constexpr uint32_t CS_GPR_R7 = 0x2638; inline constexpr uint32_t CS_GPR_R7 = 0x2638;
constexpr uint32_t CS_GPR_R8 = 0x2640; inline constexpr uint32_t CS_GPR_R8 = 0x2640;
constexpr uint32_t CS_GPR_R9 = 0x2648; inline constexpr uint32_t CS_GPR_R9 = 0x2648;
constexpr uint32_t CS_GPR_R10 = 0x2650; inline constexpr uint32_t CS_GPR_R10 = 0x2650;
constexpr uint32_t CS_GPR_R11 = 0x2658; inline constexpr uint32_t CS_GPR_R11 = 0x2658;
constexpr uint32_t CS_GPR_R12 = 0x2660; inline constexpr uint32_t CS_GPR_R12 = 0x2660;
constexpr uint32_t CS_GPR_R13 = 0x2668; inline constexpr uint32_t CS_GPR_R13 = 0x2668;
constexpr uint32_t CS_GPR_R14 = 0x2670; inline constexpr uint32_t CS_GPR_R14 = 0x2670;
constexpr uint32_t CS_GPR_R15 = 0x2678; inline constexpr uint32_t CS_GPR_R15 = 0x2678;
constexpr uint32_t CS_PREDICATE_RESULT = 0x2418; inline constexpr uint32_t CS_PREDICATE_RESULT = 0x2418;
constexpr uint32_t CS_PREDICATE_RESULT_2 = 0x23BC; inline constexpr uint32_t CS_PREDICATE_RESULT_2 = 0x23BC;
constexpr uint32_t SEMA_WAIT_POLL = 0x0224c; inline constexpr uint32_t SEMA_WAIT_POLL = 0x0224c;
//Alu opcodes //Alu opcodes
constexpr uint32_t NUM_ALU_INST_FOR_READ_MODIFY_WRITE = 4; inline constexpr uint32_t NUM_ALU_INST_FOR_READ_MODIFY_WRITE = 4;
enum class AluRegisters : uint32_t { enum class AluRegisters : uint32_t {
OPCODE_NONE = 0x000, OPCODE_NONE = 0x000,
@ -86,7 +86,7 @@ enum class AluRegisters : uint32_t {
R_CF = 0x33 R_CF = 0x33
}; };
constexpr uint32_t GP_THREAD_TIME_REG_ADDRESS_OFFSET_LOW = 0x23A8; inline constexpr uint32_t GP_THREAD_TIME_REG_ADDRESS_OFFSET_LOW = 0x23A8;
constexpr uint32_t REG_GLOBAL_TIMESTAMP_LDW = 0x2358; inline constexpr uint32_t REG_GLOBAL_TIMESTAMP_LDW = 0x2358;
constexpr uint32_t REG_GLOBAL_TIMESTAMP_UN = 0x235c; inline constexpr uint32_t REG_GLOBAL_TIMESTAMP_UN = 0x235c;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021 Intel Corporation * Copyright (C) 2021-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,7 +15,7 @@
#include <string> #include <string>
namespace StringHelpers { namespace StringHelpers {
constexpr int maximalStackSizeSizes = 16; inline constexpr int maximalStackSizeSizes = 16;
inline int createCombinedString( inline int createCombinedString(
std::string &dstString, std::string &dstString,

View File

@ -15,7 +15,7 @@
namespace NEO { namespace NEO {
constexpr size_t defaultHeapSize = 64 * KB; inline constexpr size_t defaultHeapSize = 64 * KB;
inline size_t getDefaultHeapSize() { inline size_t getDefaultHeapSize() {
auto defaultSize = defaultHeapSize; auto defaultSize = defaultHeapSize;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2021 Intel Corporation * Copyright (C) 2019-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -10,7 +10,7 @@
#include <cstdint> #include <cstdint>
namespace GrfConfig { namespace GrfConfig {
constexpr uint32_t DefaultGrfNumber = 128u; inline constexpr uint32_t DefaultGrfNumber = 128u;
constexpr uint32_t LargeGrfNumber = 256u; inline constexpr uint32_t LargeGrfNumber = 256u;
constexpr uint32_t NotApplicable = 0u; inline constexpr uint32_t NotApplicable = 0u;
} // namespace GrfConfig } // namespace GrfConfig

View File

@ -41,7 +41,7 @@ struct ImplicitArgs {
static_assert((sizeof(ImplicitArgs) & 31) == 0, "Implicit args size need to be aligned to 32"); static_assert((sizeof(ImplicitArgs) & 31) == 0, "Implicit args size need to be aligned to 32");
static_assert(std::is_pod<ImplicitArgs>::value); static_assert(std::is_pod<ImplicitArgs>::value);
constexpr const char *implicitArgsRelocationSymbolName = "__INTEL_PATCH_CROSS_THREAD_OFFSET_OFF_R0"; inline constexpr const char *implicitArgsRelocationSymbolName = "__INTEL_PATCH_CROSS_THREAD_OFFSET_OFF_R0";
namespace ImplicitArgsHelper { namespace ImplicitArgsHelper {
std::array<uint8_t, 3> getDimensionOrderForLocalIds(const uint8_t *workgroupDimensionsOrder, std::optional<std::pair<bool /* localIdsGeneratedByRuntime */, uint32_t /* walkOrderForHwGenerationOfLocalIds */>> hwGenerationOfLocalIdsParams); std::array<uint8_t, 3> getDimensionOrderForLocalIds(const uint8_t *workgroupDimensionsOrder, std::optional<std::pair<bool /* localIdsGeneratedByRuntime */, uint32_t /* walkOrderForHwGenerationOfLocalIds */>> hwGenerationOfLocalIdsParams);

View File

@ -29,13 +29,13 @@ enum AccessQualifier : uint8_t {
}; };
namespace AccessQualifierStrings { namespace AccessQualifierStrings {
constexpr ConstStringRef none = "NONE"; inline constexpr ConstStringRef none = "NONE";
constexpr ConstStringRef readOnly = "read_only"; inline constexpr ConstStringRef readOnly = "read_only";
constexpr ConstStringRef writeOnly = "write_only"; inline constexpr ConstStringRef writeOnly = "write_only";
constexpr ConstStringRef readWrite = "read_write"; inline constexpr ConstStringRef readWrite = "read_write";
constexpr ConstStringRef underscoreReadOnly = "__read_only"; inline constexpr ConstStringRef underscoreReadOnly = "__read_only";
constexpr ConstStringRef underscoreWriteOnly = "__write_only"; inline constexpr ConstStringRef underscoreWriteOnly = "__write_only";
constexpr ConstStringRef underscoreReadWrite = "__read_write"; inline constexpr ConstStringRef underscoreReadWrite = "__read_write";
} // namespace AccessQualifierStrings } // namespace AccessQualifierStrings
enum AddressSpaceQualifier : uint8_t { enum AddressSpaceQualifier : uint8_t {
@ -47,11 +47,11 @@ enum AddressSpaceQualifier : uint8_t {
}; };
namespace AddressSpaceQualifierStrings { namespace AddressSpaceQualifierStrings {
constexpr ConstStringRef addrGlobal = "__global"; inline constexpr ConstStringRef addrGlobal = "__global";
constexpr ConstStringRef addrLocal = "__local"; inline constexpr ConstStringRef addrLocal = "__local";
constexpr ConstStringRef addrPrivate = "__private"; inline constexpr ConstStringRef addrPrivate = "__private";
constexpr ConstStringRef addrConstant = "__constant"; inline constexpr ConstStringRef addrConstant = "__constant";
constexpr ConstStringRef addrNotSpecified = "not_specified"; inline constexpr ConstStringRef addrNotSpecified = "not_specified";
} // namespace AddressSpaceQualifierStrings } // namespace AddressSpaceQualifierStrings
constexpr AccessQualifier parseAccessQualifier(ConstStringRef str) { constexpr AccessQualifier parseAccessQualifier(ConstStringRef str) {
@ -119,10 +119,10 @@ union TypeQualifiers {
}; };
namespace TypeQualifierStrings { namespace TypeQualifierStrings {
constexpr ConstStringRef qualConst = "const"; inline constexpr ConstStringRef qualConst = "const";
constexpr ConstStringRef qualVolatile = "volatile"; inline constexpr ConstStringRef qualVolatile = "volatile";
constexpr ConstStringRef qualRestrict = "restrict"; inline constexpr ConstStringRef qualRestrict = "restrict";
constexpr ConstStringRef qualPipe = "pipe"; inline constexpr ConstStringRef qualPipe = "pipe";
} // namespace TypeQualifierStrings } // namespace TypeQualifierStrings
inline TypeQualifiers parseTypeQualifiers(ConstStringRef str) { inline TypeQualifiers parseTypeQualifiers(ConstStringRef str) {
@ -188,7 +188,7 @@ struct ArgTypeTraits {
}; };
namespace { namespace {
constexpr auto ArgTypeMetadataSize = sizeof(ArgTypeTraits); inline constexpr auto ArgTypeMetadataSize = sizeof(ArgTypeTraits);
static_assert(ArgTypeMetadataSize <= 4, "Keep it small"); static_assert(ArgTypeMetadataSize <= 4, "Keep it small");
} // namespace } // namespace

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021 Intel Corporation * Copyright (C) 2021-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -9,9 +9,9 @@
#include <cstdint> #include <cstdint>
constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_LOAD_STORE = 1 << 0; // Supports atomic load, store, and exchange inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_LOAD_STORE = 1 << 0; // Supports atomic load, store, and exchange
constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_ADD = 1 << 1; // Supports atomic add and subtract inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_ADD = 1 << 1; // Supports atomic add and subtract
constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX = 1 << 2; // Supports atomic min and max inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_GLOBAL_MIN_MAX = 1 << 2; // Supports atomic min and max
constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_LOAD_STORE = 1 << 16; // Supports atomic load, store, and exchange inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_LOAD_STORE = 1 << 16; // Supports atomic load, store, and exchange
constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_ADD = 1 << 17; // Supports atomic add and subtract inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_ADD = 1 << 17; // Supports atomic add and subtract
constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX = 1 << 18; // Supports atomic min and max inline constexpr uint64_t FP_ATOMIC_EXT_FLAG_LOCAL_MIN_MAX = 1 << 18; // Supports atomic min and max

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020-2021 Intel Corporation * Copyright (C) 2020-2022 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -9,7 +9,7 @@
#include <cstdint> #include <cstdint>
constexpr uint64_t UNIFIED_SHARED_MEMORY_ACCESS = 1 << 0; inline constexpr uint64_t UNIFIED_SHARED_MEMORY_ACCESS = 1 << 0;
constexpr uint64_t UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS = 1 << 1; inline constexpr uint64_t UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS = 1 << 1;
constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS = 1 << 2; inline constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS = 1 << 2;
constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS = 1 << 3; inline constexpr uint64_t UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS = 1 << 3;

View File

@ -91,8 +91,8 @@ struct MatchCmd {
bool matchesAny = false; bool matchesAny = false;
}; };
constexpr int32_t AnyNumber = -1; inline constexpr int32_t AnyNumber = -1;
constexpr int32_t AtLeastOne = -2; inline constexpr int32_t AtLeastOne = -2;
inline std::string countToString(int32_t count) { inline std::string countToString(int32_t count) {
if (count == AnyNumber) { if (count == AnyNumber) {
return "AnyNumber"; return "AnyNumber";

View File

@ -51,8 +51,8 @@ struct AllocationEvent { // NOLINT(clang-analyzer-optin.performance.Padding)
bool fastLeakDetectionEnabled = false; bool fastLeakDetectionEnabled = false;
}; };
constexpr auto maxEvents = 1024 * 1024; inline constexpr auto maxEvents = 1024 * 1024;
constexpr auto fastEvents = 1024 * 1024; inline constexpr auto fastEvents = 1024 * 1024;
extern AllocationEvent eventsAllocated[maxEvents]; extern AllocationEvent eventsAllocated[maxEvents];
extern AllocationEvent eventsDeallocated[maxEvents]; extern AllocationEvent eventsDeallocated[maxEvents];
@ -75,11 +75,11 @@ extern bool detailedAllocationLoggingActive;
extern bool fastLeakDetectionEnabled; extern bool fastLeakDetectionEnabled;
extern void (*deleteCallback)(void *); extern void (*deleteCallback)(void *);
constexpr auto nonfailingAllocation = static_cast<size_t>(-1); inline constexpr auto nonfailingAllocation = static_cast<size_t>(-1);
constexpr auto invalidLeakIndex = static_cast<size_t>(-1); inline constexpr auto invalidLeakIndex = static_cast<size_t>(-1);
// capture allocations call stacks to print them during memory leak in ULTs // capture allocations call stacks to print them during memory leak in ULTs
constexpr bool captureCallStacks = false; inline constexpr bool captureCallStacks = false;
int detectLeaks(); int detectLeaks();
std::string printCallStack(const MemoryManagement::AllocationEvent &event); std::string printCallStack(const MemoryManagement::AllocationEvent &event);

View File

@ -9,5 +9,5 @@
#include <cstdint> #include <cstdint>
namespace NEO { namespace NEO {
constexpr uint32_t maxRootDeviceCount = 3u; inline constexpr uint32_t maxRootDeviceCount = 3u;
} // namespace NEO } // namespace NEO

View File

@ -12,8 +12,8 @@
namespace NEO { namespace NEO {
constexpr uint32_t mockRootDeviceIndex = 0u; inline constexpr uint32_t mockRootDeviceIndex = 0u;
constexpr DeviceBitfield mockDeviceBitfield(0b1); inline constexpr DeviceBitfield mockDeviceBitfield(0b1);
class MockGraphicsAllocation : public MemoryAllocation { class MockGraphicsAllocation : public MemoryAllocation {
public: public:

View File

@ -23,7 +23,7 @@
namespace NEO { namespace NEO {
class GraphicsAllocation; class GraphicsAllocation;
constexpr auto virtualAllocAddress = is64bit ? 0x7FFFF0000000 : 0xFF000000; inline constexpr auto virtualAllocAddress = is64bit ? 0x7FFFF0000000 : 0xFF000000;
class WddmMock : public Wddm { class WddmMock : public Wddm {
public: public:

View File

@ -10,5 +10,5 @@
#include "shared/test/common/tests_configuration.h" #include "shared/test/common/tests_configuration.h"
namespace NEO { namespace NEO {
constexpr TestMode defaultTestMode = TestMode::AubTests; inline constexpr TestMode defaultTestMode = TestMode::AubTests;
} // namespace NEO } // namespace NEO

View File

@ -10,5 +10,5 @@
#include "shared/test/common/tests_configuration.h" #include "shared/test/common/tests_configuration.h"
namespace NEO { namespace NEO {
constexpr TestMode defaultTestMode = TestMode::UnitTests; inline constexpr TestMode defaultTestMode = TestMode::UnitTests;
} // namespace NEO } // namespace NEO

View File

@ -9,7 +9,7 @@
#include "platforms.h" #include "platforms.h"
namespace AOT_PVC { namespace AOT_PVC {
constexpr AOT::PRODUCT_CONFIG productConfigs[] = { inline constexpr AOT::PRODUCT_CONFIG productConfigs[] = {
AOT::PVC_XL_A0, AOT::PVC_XL_A0,
AOT::PVC_XL_A0P, AOT::PVC_XL_A0P,
AOT::PVC_XT_A0, AOT::PVC_XT_A0,

View File

@ -9,7 +9,7 @@
#include "platforms.h" #include "platforms.h"
namespace AOT_DG2 { namespace AOT_DG2 {
constexpr AOT::PRODUCT_CONFIG productConfigs[] = { inline constexpr AOT::PRODUCT_CONFIG productConfigs[] = {
AOT::DG2_G10_A0, AOT::DG2_G10_A0,
AOT::DG2_G10_A1, AOT::DG2_G10_A1,
AOT::DG2_G10_B0, AOT::DG2_G10_B0,