/* * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/source/gen12lp/hw_cmds_base.h" #include "shared/test/common/test_macros/hw_test.h" using namespace NEO; using Gen12lpHwCmdTest = ::testing::Test; GEN12LPTEST_F(Gen12lpHwCmdTest, givenRenderSurfaceStateWhenProgrammingMocsThenMocsIndexIsSetProperly) { auto renderSurfaceState = FamilyType::cmdInitRenderSurfaceState; uint32_t mocs = 4u; uint32_t expectedMocsIndex = (mocs >> 1); renderSurfaceState.setMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, renderSurfaceState.TheStructure.Common.MemoryObjectControlStateIndexToMocsTables); } GEN12LPTEST_F(Gen12lpHwCmdTest, 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); stateBaseAddress.setBindlessSamplerStateMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, stateBaseAddress.TheStructure.Common.BindlessSamplerStateMemoryObjectControlState_IndexToMocsTables); } GEN12LPTEST_F(Gen12lpHwCmdTest, givenMediaSurfaceStateWhenProgrammingMocsThenMocsIndexIsSetProperly) { auto mediaSurfaceState = FamilyType::cmdInitMediaSurfaceState; uint32_t mocs = 4u; uint32_t expectedMocsIndex = (mocs >> 1); mediaSurfaceState.setSurfaceMemoryObjectControlState(mocs); EXPECT_EQ(expectedMocsIndex, mediaSurfaceState.TheStructure.Common.SurfaceMemoryObjectControlStateIndexToMocsTables); }