/* * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/test/common/cmd_parse/gen_cmd_parse.h" #include "gtest/gtest.h" using GenStruct = NEO::GEN9; using GenGfxFamily = NEO::SKLFamily; #include "shared/test/common/cmd_parse/cmd_parse_base.inl" #include "shared/test/common/cmd_parse/cmd_parse_base_mi_arb.inl" #include "shared/test/common/cmd_parse/cmd_parse_gpgpu_walker.inl" #include "shared/test/common/cmd_parse/cmd_parse_sip.inl" #include "shared/test/common/cmd_parse/hw_parse.h" #include "shared/test/common/cmd_parse/hw_parse.inl" template <> size_t CmdParse::getCommandLengthHwSpecific(void *cmd) { { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } { auto pCmd = genCmdCast(cmd); if (pCmd) return pCmd->TheStructure.Common.DwordLength + 2; } return 0; } template <> const char *CmdParse::getCommandNameHwSpecific(void *cmd) { if (nullptr != genCmdCast(cmd)) { return "GPGPU_WALKER"; } if (nullptr != genCmdCast(cmd)) { return "MEDIA_INTERFACE_DESCRIPTOR_LOAD"; } if (nullptr != genCmdCast(cmd)) { return "MEDIA_VFE_STATE"; } if (nullptr != genCmdCast(cmd)) { return "MEDIA_STATE_FLUSH"; } if (nullptr != genCmdCast(cmd)) { return "GPGPU_CSR_BASE_ADDRESS"; } if (nullptr != genCmdCast(cmd)) { return "STATE_SIP"; } return "UNKNOWN"; } template struct CmdParse; namespace NEO { template void HardwareParse::findHardwareCommands(); template void HardwareParse::findHardwareCommands(IndirectHeap *); template const void *HardwareParse::getStatelessArgumentPointer(const KernelInfo &kernelInfo, uint32_t indexArg, IndirectHeap &ioh, uint32_t rootDeviceIndex); template const typename SKLFamily::RENDER_SURFACE_STATE *HardwareParse::getSurfaceState(IndirectHeap *ssh, uint32_t index); } // namespace NEO