/* * Copyright (C) 2018-2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "unit_tests/command_stream/compute_mode_tests.h" TGLLPTEST_F(ComputeModeRequirements, givenCsrRequestFlagsWithSharedHandlesWhenCommandSizeIsCalculatedThenCorrectCommandSizeIsReturned) { SetUpImpl(); using STATE_COMPUTE_MODE = typename FamilyType::STATE_COMPUTE_MODE; using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; auto cmdsSize = sizeof(STATE_COMPUTE_MODE) + sizeof(PIPE_CONTROL); char buff[1024]; LinearStream stream(buff, 1024); overrideComputeModeRequest(false, false, true); auto retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(false, true, true); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(true, true, true); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(true, false, true); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(false, false, true, true, 127u, false); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); } TGLLPTEST_F(ComputeModeRequirements, givenCsrRequestFlagsWithoutSharedHandlesWhenCommandSizeIsCalculatedThenCorrectCommandSizeIsReturned) { SetUpImpl(); using STATE_COMPUTE_MODE = typename FamilyType::STATE_COMPUTE_MODE; auto cmdsSize = sizeof(STATE_COMPUTE_MODE); char buff[1024]; LinearStream stream(buff, 1024); overrideComputeModeRequest(false, false, false); auto retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(0u, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(0u, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(true, true, false); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(true, false, false); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); stream.replaceBuffer(buff, 1024); overrideComputeModeRequest(false, false, false, true, 127u, false); retSize = getCsrHw()->getCmdSizeForComputeMode(); EXPECT_EQ(cmdsSize, retSize); getCsrHw()->programComputeMode(stream, flags); EXPECT_EQ(cmdsSize, stream.getUsed()); }