Revert "feature: enable dummy blit WA for PVC"
This reverts commit fb9d225495
.
Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
This commit is contained in:
parent
486cc71b76
commit
0b64240deb
|
@ -10,7 +10,6 @@
|
|||
#include "shared/source/command_container/command_encoder.h"
|
||||
#include "shared/source/command_container/encode_surface_state.h"
|
||||
#include "shared/source/gmm_helper/gmm_helper.h"
|
||||
#include "shared/source/helpers/blit_commands_helper.h"
|
||||
#include "shared/source/helpers/definitions/command_encoder_args.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/source/indirect_heap/indirect_heap.h"
|
||||
|
@ -774,7 +773,7 @@ HWTEST2_F(CommandListCreate, givenImmediateCopyOnlyCmdListWhenAppendBarrierThenI
|
|||
cmdList, ptrOffset(commandList->getCmdContainer().getCommandStream()->getCpuBase(), 0), commandList->getCmdContainer().getCommandStream()->getUsed()));
|
||||
auto itor = find<MI_FLUSH_DW *>(cmdList.begin(), cmdList.end());
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs)) {
|
||||
itor++;
|
||||
}
|
||||
EXPECT_NE(cmdList.end(), itor);
|
||||
|
@ -816,7 +815,7 @@ HWTEST2_F(CommandListCreate, givenImmediateCopyOnlyCmdListWhenAppendWaitOnEvents
|
|||
cmdList, ptrOffset(commandList->getCmdContainer().getCommandStream()->getCpuBase(), 0), commandList->getCmdContainer().getCommandStream()->getUsed()));
|
||||
auto itor = find<MI_FLUSH_DW *>(cmdList.begin(), cmdList.end());
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs)) {
|
||||
itor++;
|
||||
}
|
||||
EXPECT_NE(cmdList.end(), itor);
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/helpers/blit_commands_helper.h"
|
||||
#include "shared/source/helpers/definitions/command_encoder_args.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/test/common/cmd_parse/gen_cmd_parse.h"
|
||||
|
@ -478,7 +477,7 @@ HWTEST2_F(CommandListAppendUsedPacketSignalEvent,
|
|||
expectedSize));
|
||||
|
||||
uint32_t miFlushCountFactor = 1;
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
miFlushCountFactor = 2;
|
||||
}
|
||||
auto expectedMiFlushCount = packets * miFlushCountFactor;
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
*/
|
||||
|
||||
#include "shared/source/command_container/implicit_scaling.h"
|
||||
#include "shared/source/helpers/blit_commands_helper.h"
|
||||
#include "shared/source/helpers/definitions/command_encoder_args.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/test/common/cmd_parse/gen_cmd_parse.h"
|
||||
|
@ -615,7 +614,7 @@ HWTEST2_F(CommandListAppendUsedPacketSignalEvent,
|
|||
|
||||
uint32_t expectedMiFlushCount = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
expectedMiFlushCount = 2;
|
||||
}
|
||||
|
||||
|
@ -657,7 +656,7 @@ HWTEST2_F(CommandListAppendUsedPacketSignalEvent,
|
|||
|
||||
uint32_t expectedMiFlushCount = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
expectedMiFlushCount = 2;
|
||||
}
|
||||
|
||||
|
@ -701,7 +700,7 @@ HWTEST2_F(CommandListAppendUsedPacketSignalEvent,
|
|||
|
||||
uint32_t expectedMiFlushCount = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
expectedMiFlushCount = 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "shared/source/gmm_helper/gmm_helper.h"
|
||||
#include "shared/source/gmm_helper/gmm_lib.h"
|
||||
#include "shared/source/helpers/api_specific_config.h"
|
||||
#include "shared/source/helpers/blit_commands_helper.h"
|
||||
#include "shared/source/helpers/definitions/command_encoder_args.h"
|
||||
#include "shared/source/helpers/preamble.h"
|
||||
#include "shared/source/indirect_heap/indirect_heap.h"
|
||||
|
@ -728,7 +727,7 @@ struct CommandListSignalAllEventPacketFixture : public ModuleFixture {
|
|||
if constexpr (copyOnly == 1) {
|
||||
uint32_t flushCmdWaFactor = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
flushCmdWaFactor++;
|
||||
}
|
||||
|
||||
|
@ -968,7 +967,7 @@ struct CommandListSignalAllEventPacketFixture : public ModuleFixture {
|
|||
|
||||
uint32_t flushCmdWaFactor = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
flushCmdWaFactor++;
|
||||
}
|
||||
|
||||
|
@ -1177,7 +1176,7 @@ struct CommandListSignalAllEventPacketFixture : public ModuleFixture {
|
|||
if constexpr (copyOnly == 1) {
|
||||
uint32_t flushCmdWaFactor = 1;
|
||||
NEO::EncodeDummyBlitWaArgs waArgs{true, &(device->getNEODevice()->getRootDeviceEnvironmentRef())};
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > NEO::BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs)) {
|
||||
if (MockEncodeMiFlushDW<FamilyType>::getWaSize(waArgs) > 0) {
|
||||
flushCmdWaFactor++;
|
||||
}
|
||||
|
||||
|
|
|
@ -1008,6 +1008,24 @@ HWTEST_F(BcsTests, givenImageAndBufferBlitDirectionsWhenIsImageOperationIsCalled
|
|||
EXPECT_EQ(isImageDirection, blitProperties.isImageOperation());
|
||||
}
|
||||
}
|
||||
template <typename FamilyType>
|
||||
void verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator) {
|
||||
const auto &productHelper = rootDeviceEnvironment->getProductHelper();
|
||||
if (productHelper.isDummyBlitWaRequired()) {
|
||||
auto dummyBltCmd = genCmdCast<typename FamilyType::XY_COLOR_BLT *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, dummyBltCmd);
|
||||
|
||||
auto expectedX2 = 1u;
|
||||
auto expectedY2 = 4u;
|
||||
uint32_t expectedPitch = 4096u;
|
||||
auto expectedDestinationBaseAddress = rootDeviceEnvironment->getDummyAllocation()->getGpuAddress();
|
||||
|
||||
EXPECT_EQ(expectedDestinationBaseAddress, dummyBltCmd->getDestinationBaseAddress());
|
||||
EXPECT_EQ(expectedX2, dummyBltCmd->getDestinationX2CoordinateRight());
|
||||
EXPECT_EQ(expectedY2, dummyBltCmd->getDestinationY2CoordinateBottom());
|
||||
EXPECT_EQ(expectedPitch, dummyBltCmd->getDestinationPitch());
|
||||
}
|
||||
}
|
||||
|
||||
struct RelaxedOrderingBcsTests : public BcsTests {
|
||||
void SetUp() override {
|
||||
|
@ -1227,7 +1245,7 @@ HWTEST_F(BcsTests, givenBltSizeWithLeftoverWhenDispatchedThenProgramAllRequiredC
|
|||
EXPECT_EQ(expectedWidth, bltCmd->getSourcePitch());
|
||||
|
||||
if (BlitCommandsHelper<FamilyType>::miArbCheckWaRequired()) {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
auto miFlush = genCmdCast<typename FamilyType::MI_FLUSH_DW *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miFlush);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &(pDevice->getRootDeviceEnvironmentRef())};
|
||||
|
@ -1236,7 +1254,7 @@ HWTEST_F(BcsTests, givenBltSizeWithLeftoverWhenDispatchedThenProgramAllRequiredC
|
|||
EXPECT_NE(nullptr, miFlush);
|
||||
}
|
||||
} else {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
}
|
||||
auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miArbCheckCmd);
|
||||
|
@ -1464,7 +1482,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
offset += (expectedWidth * expectedHeight);
|
||||
|
||||
if (BlitCommandsHelper<FamilyType>::miArbCheckWaRequired()) {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
auto miFlush = genCmdCast<typename FamilyType::MI_FLUSH_DW *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miFlush);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &(pDevice->getRootDeviceEnvironmentRef())};
|
||||
|
@ -1473,7 +1491,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
EXPECT_NE(nullptr, miFlush);
|
||||
}
|
||||
} else {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
}
|
||||
|
||||
auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
|
||||
|
@ -1568,7 +1586,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
offset += (expectedWidth * expectedHeight);
|
||||
|
||||
if (BlitCommandsHelper<FamilyType>::miArbCheckWaRequired()) {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
auto miFlush = genCmdCast<typename FamilyType::MI_FLUSH_DW *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miFlush);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &(pDevice->getRootDeviceEnvironmentRef())};
|
||||
|
@ -1577,7 +1595,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
EXPECT_NE(nullptr, miFlush);
|
||||
}
|
||||
} else {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
}
|
||||
auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miArbCheckCmd);
|
||||
|
@ -1662,7 +1680,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
offset += (expectedWidth * expectedHeight);
|
||||
|
||||
if (BlitCommandsHelper<FamilyType>::miArbCheckWaRequired()) {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
auto miFlush = genCmdCast<typename FamilyType::MI_FLUSH_DW *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miFlush);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &(pDevice->getRootDeviceEnvironmentRef())};
|
||||
|
@ -1671,7 +1689,7 @@ HWTEST_P(BcsDetaliedTestsWithParams, givenBltSizeWithLeftoverWhenDispatchedThenP
|
|||
EXPECT_NE(nullptr, miFlush);
|
||||
}
|
||||
} else {
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
verifyDummyBlitWa<FamilyType>(&(pDevice->getRootDeviceEnvironmentRef()), cmdIterator);
|
||||
}
|
||||
auto miArbCheckCmd = genCmdCast<typename FamilyType::MI_ARB_CHECK *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, miArbCheckCmd);
|
||||
|
|
|
@ -276,36 +276,6 @@ uint64_t BlitCommandsHelper<Family>::getMaxBlitHeightOverride(const RootDeviceEn
|
|||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
void BlitCommandsHelper<Family>::dispatchDummyBlit(LinearStream &linearStream, EncodeDummyBlitWaArgs &waArgs) {
|
||||
using MEM_SET = typename Family::MEM_SET;
|
||||
|
||||
if (BlitCommandsHelper<Family>::isDummyBlitWaNeeded(waArgs)) {
|
||||
auto blitCmd = Family::cmdInitMemSet;
|
||||
auto &rootDeviceEnvironment = waArgs.rootDeviceEnvironment;
|
||||
|
||||
rootDeviceEnvironment->initDummyAllocation();
|
||||
auto dummyAllocation = rootDeviceEnvironment->getDummyAllocation();
|
||||
blitCmd.setDestinationStartAddress(dummyAllocation->getGpuAddress());
|
||||
|
||||
constexpr uint32_t memSetSize = 32 * MemoryConstants::kiloByte;
|
||||
blitCmd.setFillWidth(memSetSize);
|
||||
blitCmd.setDestinationPitch(memSetSize);
|
||||
|
||||
auto cmd = linearStream.getSpaceForCmd<MEM_SET>();
|
||||
*cmd = blitCmd;
|
||||
waArgs.isWaRequired = false;
|
||||
}
|
||||
}
|
||||
|
||||
template <>
|
||||
size_t BlitCommandsHelper<Family>::getDummyBlitSize(const EncodeDummyBlitWaArgs &waArgs) {
|
||||
if (BlitCommandsHelper<Family>::isDummyBlitWaNeeded(waArgs)) {
|
||||
return sizeof(typename Family::MEM_SET);
|
||||
}
|
||||
return 0u;
|
||||
}
|
||||
|
||||
template class CommandStreamReceiverHw<Family>;
|
||||
template struct BlitCommandsHelper<Family>;
|
||||
template void BlitCommandsHelper<Family>::appendBlitCommandsForBuffer<typename Family::XY_COPY_BLT>(const BlitProperties &blitProperties, typename Family::XY_COPY_BLT &blitCmd, const RootDeviceEnvironment &rootDeviceEnvironment);
|
||||
|
|
|
@ -73,11 +73,6 @@ bool ProductHelperHw<gfxProduct>::isDisableOverdispatchAvailable(const HardwareI
|
|||
return getSteppingFromHwRevId(hwInfo) >= REVISION_B;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isDummyBlitWaRequired() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isSystolicModeConfigurable(const HardwareInfo &hwInfo) const {
|
||||
return PVC::isAtMostXtA0(hwInfo);
|
||||
|
|
|
@ -244,6 +244,10 @@ template <>
|
|||
bool ProductHelperHw<gfxProduct>::isCalculationForDisablingEuFusionWithDpasNeeded(const HardwareInfo &hwInfo) const {
|
||||
return DG2::isG10(hwInfo) || DG2::isG11(hwInfo) || DG2::isG12(hwInfo);
|
||||
}
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isDummyBlitWaRequired() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::disableL3CacheForDebug(const HardwareInfo &hwInfo) const {
|
||||
|
|
|
@ -99,7 +99,6 @@ struct UnitTestHelper {
|
|||
static bool expectNullDsh(const DeviceInfo &deviceInfo);
|
||||
|
||||
static bool findStateCacheFlushPipeControl(LinearStream &csrStream);
|
||||
static void verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator);
|
||||
};
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -150,8 +150,4 @@ size_t UnitTestHelper<GfxFamily>::getAdditionalDshSize(uint32_t iddCount) {
|
|||
return iddCount * sizeof(typename GfxFamily::INTERFACE_DESCRIPTOR_DATA);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void UnitTestHelper<GfxFamily>::verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator) {
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -119,23 +119,4 @@ size_t UnitTestHelper<GfxFamily>::getAdditionalDshSize(uint32_t iddCount) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void UnitTestHelper<GfxFamily>::verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator) {
|
||||
const auto &productHelper = rootDeviceEnvironment->getProductHelper();
|
||||
if (productHelper.isDummyBlitWaRequired()) {
|
||||
using XY_COLOR_BLT = typename GfxFamily::XY_COLOR_BLT;
|
||||
auto dummyBltCmd = genCmdCast<XY_COLOR_BLT *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, dummyBltCmd);
|
||||
|
||||
auto expectedDestinationBaseAddress = rootDeviceEnvironment->getDummyAllocation()->getGpuAddress();
|
||||
|
||||
EXPECT_EQ(expectedDestinationBaseAddress, dummyBltCmd->getDestinationBaseAddress());
|
||||
EXPECT_EQ(XY_COLOR_BLT::COLOR_DEPTH::COLOR_DEPTH_64_BIT_COLOR, dummyBltCmd->getColorDepth());
|
||||
EXPECT_EQ(1u, dummyBltCmd->getDestinationX2CoordinateRight());
|
||||
EXPECT_EQ(4u, dummyBltCmd->getDestinationY2CoordinateBottom());
|
||||
EXPECT_EQ(static_cast<uint32_t>(MemoryConstants::pageSize), dummyBltCmd->getDestinationPitch());
|
||||
EXPECT_EQ(XY_COLOR_BLT::DESTINATION_SURFACE_TYPE::DESTINATION_SURFACE_TYPE_2D, dummyBltCmd->getDestinationSurfaceType());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -42,21 +42,6 @@ bool UnitTestHelper<Family>::getComputeDispatchAllWalkerFromFrontEndCommand(cons
|
|||
return feCmd.getComputeDispatchAllWalkerEnable();
|
||||
}
|
||||
|
||||
template <>
|
||||
void UnitTestHelper<Family>::verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator) {
|
||||
const auto &productHelper = rootDeviceEnvironment->getProductHelper();
|
||||
if (productHelper.isDummyBlitWaRequired()) {
|
||||
auto dummyBltCmd = genCmdCast<typename Family::MEM_SET *>(*(cmdIterator++));
|
||||
EXPECT_NE(nullptr, dummyBltCmd);
|
||||
|
||||
uint32_t expectedSize = 32 * MemoryConstants::kiloByte;
|
||||
auto expectedGpuBaseAddress = rootDeviceEnvironment->getDummyAllocation()->getGpuAddress();
|
||||
|
||||
EXPECT_EQ(expectedGpuBaseAddress, dummyBltCmd->getDestinationStartAddress());
|
||||
EXPECT_EQ(expectedSize, dummyBltCmd->getDestinationPitch());
|
||||
EXPECT_EQ(expectedSize, dummyBltCmd->getFillWidth());
|
||||
}
|
||||
}
|
||||
template struct UnitTestHelper<Family>;
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -696,7 +696,6 @@ HWTEST_F(BlitTests, givenPlatformWhenCallingDispatchPreBlitCommandThenNoneMiFlus
|
|||
blitPropertiesContainer1.push_back(blitProperties);
|
||||
blitPropertiesContainer1.push_back(blitProperties);
|
||||
blitPropertiesContainer1.push_back(blitProperties);
|
||||
blitPropertiesContainer1.push_back(blitProperties);
|
||||
|
||||
auto estimatedSizeWithoutNode = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize(
|
||||
blitPropertiesContainer1, false, true, false, false, pDevice->getRootDeviceEnvironment());
|
||||
|
@ -705,7 +704,6 @@ HWTEST_F(BlitTests, givenPlatformWhenCallingDispatchPreBlitCommandThenNoneMiFlus
|
|||
blitPropertiesContainer2.push_back(blitProperties);
|
||||
blitPropertiesContainer2.push_back(blitProperties);
|
||||
blitPropertiesContainer2.push_back(blitProperties);
|
||||
blitPropertiesContainer2.push_back(blitProperties);
|
||||
auto estimatedSizeWithNode = BlitCommandsHelper<FamilyType>::estimateBlitCommandsSize(
|
||||
blitPropertiesContainer2, false, true, false, false, pDevice->getRootDeviceEnvironment());
|
||||
EXPECT_NE(estimatedSizeWithoutNode, estimatedSizeWithNode);
|
||||
|
|
|
@ -15,10 +15,8 @@
|
|||
#include "shared/source/helpers/local_memory_access_modes.h"
|
||||
#include "shared/source/os_interface/product_helper.h"
|
||||
#include "shared/source/os_interface/product_helper_hw.h"
|
||||
#include "shared/test/common/cmd_parse/hw_parse.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/helpers/raii_product_helper.h"
|
||||
#include "shared/test/common/helpers/unit_test_helper.h"
|
||||
#include "shared/test/common/mocks/mock_execution_environment.h"
|
||||
#include "shared/test/common/mocks/mock_gmm.h"
|
||||
#include "shared/test/common/mocks/mock_gmm_client_context.h"
|
||||
|
@ -513,7 +511,8 @@ class TestDummyBlitMockProductHelper : public ProductHelperHw<gfxProduct> {
|
|||
uint32_t dummyBlitRequired = true;
|
||||
};
|
||||
|
||||
HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenDummyBlitWaRequiredThenDummyBlitIsProgrammedCorrectly, IsXeHPOrAbove) {
|
||||
HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenDummyBlitWaRequiredThenColorBltProgrammedCorrectly, IsXeHPOrAbove) {
|
||||
using XY_COLOR_BLT = typename FamilyType::XY_COLOR_BLT;
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
debugManager.flags.ForceDummyBlitWa.set(-1);
|
||||
|
||||
|
@ -545,19 +544,30 @@ HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenDummyBlitWaRequiredThenDummyBlitI
|
|||
EXPECT_EQ(0u, stream.getUsed());
|
||||
|
||||
EncodeDummyBlitWaArgs waArgsWhenBcs{true, &rootDeviceEnvironment};
|
||||
expectedSize = sizeof(XY_COLOR_BLT);
|
||||
val = BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgsWhenBcs);
|
||||
EXPECT_NE(0u, val);
|
||||
EXPECT_EQ(expectedSize, val);
|
||||
BlitCommandsHelper<FamilyType>::dispatchDummyBlit(stream, waArgsWhenBcs);
|
||||
EXPECT_NE(nullptr, rootDeviceEnvironment.getDummyAllocation());
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(stream);
|
||||
EXPECT_EQ(expectedSize, stream.getUsed());
|
||||
GenCmdList cmdList;
|
||||
ASSERT_TRUE(FamilyType::Parse::parseCommandBuffer(
|
||||
cmdList, ptrOffset(stream.getCpuBase(), 0), stream.getUsed()));
|
||||
auto itor = find<XY_COLOR_BLT *>(cmdList.begin(), cmdList.end());
|
||||
EXPECT_NE(cmdList.end(), itor);
|
||||
auto cmd = genCmdCast<XY_COLOR_BLT *>(*itor);
|
||||
|
||||
auto cmdIterator = hwParser.cmdList.begin();
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&rootDeviceEnvironment, cmdIterator);
|
||||
EXPECT_EQ(rootDeviceEnvironment.getDummyAllocation()->getGpuAddress(), cmd->getDestinationBaseAddress());
|
||||
EXPECT_EQ(XY_COLOR_BLT::COLOR_DEPTH::COLOR_DEPTH_64_BIT_COLOR, cmd->getColorDepth());
|
||||
EXPECT_EQ(1u, cmd->getDestinationX2CoordinateRight());
|
||||
EXPECT_EQ(4u, cmd->getDestinationY2CoordinateBottom());
|
||||
EXPECT_EQ(static_cast<uint32_t>(MemoryConstants::pageSize), cmd->getDestinationPitch());
|
||||
EXPECT_EQ(XY_COLOR_BLT::DESTINATION_SURFACE_TYPE::DESTINATION_SURFACE_TYPE_2D, cmd->getDestinationSurfaceType());
|
||||
}
|
||||
|
||||
HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenForceDummyBlitWaSetThenDummyBlitProgrammedCorrectly, IsXeHPOrAbove) {
|
||||
HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenForceDummyBlitWaSetThenColorBltProgrammedCorrectly, IsXeHPOrAbove) {
|
||||
using XY_COLOR_BLT = typename FamilyType::XY_COLOR_BLT;
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
debugManager.flags.ForceDummyBlitWa.set(1);
|
||||
|
||||
|
@ -584,41 +594,30 @@ HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenForceDummyBlitWaSetThenDummyBlitP
|
|||
EXPECT_EQ(0u, stream.getUsed());
|
||||
|
||||
EncodeDummyBlitWaArgs waArgsWhenBcs{true, &rootDeviceEnvironment};
|
||||
expectedSize = sizeof(XY_COLOR_BLT);
|
||||
val = BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgsWhenBcs);
|
||||
EXPECT_NE(0u, val);
|
||||
EXPECT_EQ(expectedSize, val);
|
||||
BlitCommandsHelper<FamilyType>::dispatchDummyBlit(stream, waArgsWhenBcs);
|
||||
EXPECT_NE(nullptr, rootDeviceEnvironment.getDummyAllocation());
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(stream);
|
||||
EXPECT_EQ(expectedSize, stream.getUsed());
|
||||
GenCmdList cmdList;
|
||||
ASSERT_TRUE(FamilyType::Parse::parseCommandBuffer(
|
||||
cmdList, ptrOffset(stream.getCpuBase(), 0), stream.getUsed()));
|
||||
auto itor = find<XY_COLOR_BLT *>(cmdList.begin(), cmdList.end());
|
||||
EXPECT_NE(cmdList.end(), itor);
|
||||
auto cmd = genCmdCast<XY_COLOR_BLT *>(*itor);
|
||||
|
||||
auto cmdIterator = hwParser.cmdList.begin();
|
||||
UnitTestHelper<FamilyType>::verifyDummyBlitWa(&rootDeviceEnvironment, cmdIterator);
|
||||
}
|
||||
|
||||
struct DummyBlitWithColorBlt {
|
||||
template <PRODUCT_FAMILY productFamily>
|
||||
static constexpr bool isMatched() {
|
||||
return IsXeHPOrAbove::isMatched<productFamily>() && IsNotXeHpcCore::isMatched<productFamily>();
|
||||
}
|
||||
};
|
||||
using DummyBlitWithMemSet = IsXeHpcCore;
|
||||
|
||||
HWTEST2_F(BlitTests, whenGettingSizeForDummyBlitThenColorBltSizeIsReturned, DummyBlitWithColorBlt) {
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
debugManager.flags.ForceDummyBlitWa.set(1);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &pDevice->getRootDeviceEnvironmentRef()};
|
||||
EXPECT_EQ(sizeof(typename FamilyType::XY_COLOR_BLT), BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs));
|
||||
}
|
||||
|
||||
HWTEST2_F(BlitTests, whenGettingSizeForDummyBlitThenMemSetSizeIsReturned, DummyBlitWithMemSet) {
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
debugManager.flags.ForceDummyBlitWa.set(1);
|
||||
EncodeDummyBlitWaArgs waArgs{true, &pDevice->getRootDeviceEnvironmentRef()};
|
||||
EXPECT_EQ(sizeof(typename FamilyType::MEM_SET), BlitCommandsHelper<FamilyType>::getDummyBlitSize(waArgs));
|
||||
EXPECT_EQ(rootDeviceEnvironment.getDummyAllocation()->getGpuAddress(), cmd->getDestinationBaseAddress());
|
||||
EXPECT_EQ(XY_COLOR_BLT::COLOR_DEPTH::COLOR_DEPTH_64_BIT_COLOR, cmd->getColorDepth());
|
||||
EXPECT_EQ(1u, cmd->getDestinationX2CoordinateRight());
|
||||
EXPECT_EQ(4u, cmd->getDestinationY2CoordinateBottom());
|
||||
EXPECT_EQ(static_cast<uint32_t>(MemoryConstants::pageSize), cmd->getDestinationPitch());
|
||||
EXPECT_EQ(XY_COLOR_BLT::DESTINATION_SURFACE_TYPE::DESTINATION_SURFACE_TYPE_2D, cmd->getDestinationSurfaceType());
|
||||
}
|
||||
|
||||
HWTEST2_F(BlitTests, givenDispatchDummyBlitWhenDummyBlitWaNotRequiredThenAdditionalCommandsAreNotProgrammed, IsXeHPOrAbove) {
|
||||
using XY_COLOR_BLT = typename FamilyType::XY_COLOR_BLT;
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
debugManager.flags.ForceDummyBlitWa.set(-1);
|
||||
auto &rootDeviceEnvironment = static_cast<MockRootDeviceEnvironment &>(pDevice->getRootDeviceEnvironmentRef());
|
||||
|
|
|
@ -10,4 +10,3 @@
|
|||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenAskedIfIsBlitSplitEnqueueWARequiredThenReturnFalse, IGFX_PVC);
|
||||
HWTEST_EXCLUDE_PRODUCT(BlitTests, GivenCpuAccessToLocalMemoryWhenGettingMaxBlitSizeThenValuesAreOverriden_BlitPlatforms, IGFX_PVC);
|
||||
HWTEST_EXCLUDE_PRODUCT(GfxCoreHelperTest, GivenCooperativeEngineSupportedAndNotUsedWhenAdjustMaxWorkGroupCountIsCalledThenSmallerValueIsReturned, IGFX_PVC);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnFalse, IGFX_PVC);
|
||||
|
|
|
@ -199,9 +199,4 @@ PVCTEST_F(GfxCoreHelperTestsPvc, GivenCooperativeEngineSupportedAndNotUsedWhenAd
|
|||
}
|
||||
}
|
||||
}
|
||||
PVCTEST_F(GfxCoreHelperTestsPvc, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnTrue) {
|
||||
auto &productHelper = getHelper<ProductHelper>();
|
||||
EXPECT_TRUE(productHelper.isDummyBlitWaRequired());
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -26,4 +26,3 @@ HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenIsAdjustWalkOrde
|
|||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenGetMediaFrequencyTileIndexCallThenFalseReturn, IGFX_ARROWLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckBlitEnqueueAllowedThenReturnTrue, IGFX_ARROWLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, whenGettingPreferredAllocationMethodThenNoPreferenceIsReturned, IGFX_ARROWLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnFalse, IGFX_ARROWLAKE);
|
||||
|
|
|
@ -28,10 +28,11 @@ HWTEST_EXCLUDE_PRODUCT(MemoryManagerTests, givenEnabledLocalMemoryWhenAllocateKe
|
|||
HWTEST_EXCLUDE_PRODUCT(SbaTest, givenStateBaseAddressAndDebugFlagSetWhenAppendExtraCacheSettingsThenProgramCorrectL1CachePolicy_IsAtLeastXeHpgCore, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(XeHpgSbaTest, givenSpecificProductFamilyWhenAppendingSbaThenProgramWBPL1CachePolicy, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(GfxCoreHelperTest, GivenZeroSlmSizeWhenComputeSlmSizeIsCalledThenCorrectValueIsReturned, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTestXeHpgCore, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnTrue, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(CommandEncodeStatesTestDg2AndLater, GivenVariousSlmTotalSizesAndSettingRevIDToDifferentValuesWhenSetAdditionalInfoIsCalledThenCorrectValuesAreSet_IsXeHpgCore, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperCommonTest, givenHwHelperWhenIsFusedEuDisabledForDpasCalledThenFalseReturned, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperCommonTest, givenProductHelperWhenCallingIsCalculationForDisablingEuFusionWithDpasNeededThenFalseReturned, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, whenDisableL3ForDebugCalledThenFalseIsReturned, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(WddmMemoryManagerSimpleTest, givenLinearStreamWhenItIsAllocatedThenItIsInLocalMemoryHasCpuPointerAndHasStandardHeap64kbAsGpuAddress, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, GivenSingleCCSEnabledSetupThenCorrectCommandsAreAdded_IsXeHpgCore, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenComputeModeProgrammingWhenRequiredGRFNumberIsLowerThan128ThenSmallGRFModeIsProgrammed_IsXeHpgCore, IGFX_DG2);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenComputeModeProgrammingWhenRequiredGRFNumberIsLowerThan128ThenSmallGRFModeIsProgrammed_IsXeHpgCore, IGFX_DG2);
|
|
@ -11,8 +11,9 @@ HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenSamplerStateWhenAdjustSamplerStat
|
|||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenAskedIfBlitterForImagesIsSupportedThenFalseIsReturned, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenAskedIfTile64With3DSurfaceOnBCSIsSupportedThenTrueIsReturned, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenIsSystolicModeConfigurabledThenFalseIsReturned, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnFalse, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(CommandEncodeStatesTest, givenEventAddressWhenEncodeThenMocsFromGmmHelperIsSet, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(XeHPAndLaterPreemptionTests, GivenDebuggerUsedWhenProgrammingStateSipThenStateSipIsAdded, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenComputeModeCmdSizeWhenLargeGrfModeChangeIsRequiredThenSCMCommandSizeIsCalculated, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenCoherencyWithSharedHandlesWhenCommandSizeIsCalculatedThenCorrectCommandSizeIsReturned, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenCoherencyWithoutSharedHandlesWhenCommandSizeIsCalculatedThenCorrectCommandSizeIsReturned, IGFX_XE_HPG_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenCoherencyWithoutSharedHandlesWhenCommandSizeIsCalculatedThenCorrectCommandSizeIsReturned, IGFX_XE_HPG_CORE);
|
|
@ -142,6 +142,11 @@ XE_HPG_CORETEST_F(GfxCoreHelperTestXeHpgCore, GivenVariousValuesWhenAlignSlmSize
|
|||
EXPECT_EQ(65536u, gfxCoreHelper.alignSlmSize(65536));
|
||||
}
|
||||
|
||||
XE_HPG_CORETEST_F(ProductHelperTestXeHpgCore, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnTrue) {
|
||||
auto &productHelper = getHelper<ProductHelper>();
|
||||
EXPECT_TRUE(productHelper.isDummyBlitWaRequired());
|
||||
}
|
||||
|
||||
XE_HPG_CORETEST_F(GfxCoreHelperTestXeHpgCore, givenGfxCoreHelperWhenCheckTimestampWaitSupportForQueuesThenReturnFalse) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
EXPECT_FALSE(gfxCoreHelper.isTimestampWaitSupportedForQueues());
|
||||
|
|
|
@ -21,4 +21,3 @@ HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenAskedIfPatIndexP
|
|||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenIsAdjustWalkOrderAvailableCallThenFalseReturn, IGFX_METEORLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckBlitEnqueueAllowedThenReturnTrue, IGFX_METEORLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, whenGettingPreferredAllocationMethodThenNoPreferenceIsReturned, IGFX_METEORLAKE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnFalse, IGFX_METEORLAKE);
|
||||
|
|
|
@ -350,8 +350,4 @@ HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCallIsCachingOnCpuAvail
|
|||
|
||||
HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCallIsNewCoherencyModelSupportedThenTrueIsReturned, IsXeLpg) {
|
||||
EXPECT_TRUE(productHelper->isNewCoherencyModelSupported());
|
||||
}
|
||||
|
||||
HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnTrue, IsXeLpg) {
|
||||
EXPECT_TRUE(productHelper->isDummyBlitWaRequired());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue