/* * Copyright (C) 2017-2018 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include #include "runtime/commands/bxml_generator_glue.h" #include "runtime/helpers/debug_helpers.h" #include "hw_info.h" #include "igfxfmid.h" #define TILERESOURCE_CHICKENBIT_VECTOR_ADDRESS 0x4DFC #define TILERESOURCE_CHICKENBIT_VECTOR_BITMASK (1UL << 8) template struct CmdParse; namespace OCLRT { struct GEN10 { #include "runtime/gen10/hw_cmds_generated_patched.h" #include "runtime/gen10/hw_cmds_generated.h" }; struct CNLFamily : public GEN10 { using PARSE = CmdParse; using GfxFamily = CNLFamily; using WALKER_TYPE = GPGPU_WALKER; static const GPGPU_WALKER cmdInitGpgpuWalker; static const INTERFACE_DESCRIPTOR_DATA cmdInitInterfaceDescriptorData; static const MEDIA_INTERFACE_DESCRIPTOR_LOAD cmdInitMediaInterfaceDescriptorLoad; static const MEDIA_STATE_FLUSH cmdInitMediaStateFlush; static const MI_BATCH_BUFFER_END cmdInitBatchBufferEnd; static const MI_BATCH_BUFFER_START cmdInitBatchBufferStart; static const PIPE_CONTROL cmdInitPipeControl; static const MI_SEMAPHORE_WAIT cmdInitMiSemaphoreWait; static const RENDER_SURFACE_STATE cmdRenderSurfaceState; static constexpr bool supportsCmdSet(GFXCORE_FAMILY cmdSetBaseFamily) { return cmdSetBaseFamily == IGFX_GEN8_CORE; } }; struct CNL : public CNLFamily { static const PLATFORM platform; static const HardwareInfo hwInfo; static const uint32_t threadsPerEu = 7; static const uint32_t maxEuPerSubslice = 8; static const uint32_t maxSlicesSupported = 4; static const uint32_t maxSubslicesSupported = 9; static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable, const std::string &hwInfoConfig); }; class CNL_2x5x8 : public CNL { public: static void setupHardwareInfo(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class CNL_2x4x8 : public CNL { public: static void setupHardwareInfo(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class CNL_1x3x8 : public CNL { public: static void setupHardwareInfo(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class CNL_1x2x8 : public CNL { public: static void setupHardwareInfo(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class CNL_4x9x8 : public CNL { public: static void setupHardwareInfo(GT_SYSTEM_INFO *gtSysInfo, FeatureTable *featureTable, bool setupFeatureTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; } // namespace OCLRT