/* * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/source/gen9/hw_cmds_base.h" #include "shared/test/common/test_macros/header/per_product_test_definitions.h" #include "shared/test/common/test_macros/test.h" using namespace NEO; using Gen9HwCmdTest = ::testing::Test; GEN9TEST_F(Gen9HwCmdTest, givenRenderSurfaceStateWhenProgrammingMocsThenMocsIndexIsSetProperly) { auto renderSurfaceState = FamilyType::cmdInitRenderSurfaceState; uint32_t mocs = 4u; uint32_t expectedMocsIndex = (mocs >> 1); renderSurfaceState.setMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, renderSurfaceState.TheStructure.Common.MemoryObjectControlState_IndexToMocsTables); } GEN9TEST_F(Gen9HwCmdTest, givenStateBaseAddressWhenProgrammingMocsThenMocsIndexIsSetProperly) { auto stateBaseAddress = FamilyType::cmdInitStateBaseAddress; uint32_t mocs = 4u; uint32_t expectedMocsIndex = (mocs >> 1); stateBaseAddress.setGeneralStateMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.GeneralStateMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setStatelessDataPortAccessMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.StatelessDataPortAccessMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setSurfaceStateMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.SurfaceStateMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setDynamicStateMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.DynamicStateMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setIndirectObjectMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.IndirectObjectMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setInstructionMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.InstructionMemoryObjectControlState_IndexToMocsTables); stateBaseAddress.setBindlessSurfaceStateMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.BindlessSurfaceStateMemoryObjectControlState_IndexToMocsTables); } GEN9TEST_F(Gen9HwCmdTest, givenMediaSurfaceStateWhenProgrammingMocsThenMocsIndexIsSetProperly) { auto mediaSurfaceState = FamilyType::cmdInitMediaSurfaceState; uint32_t mocs = 4u; uint32_t expectedMocsIndex = (mocs >> 1); mediaSurfaceState.setSurfaceMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, mediaSurfaceState.TheStructure.Common.SurfaceMemoryObjectControlState_IndexToMocsTables); }