fix: DO not use ULLS additional sync on integrated device
Related-To: NEO-8067 Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
parent
ddffb8a67f
commit
44a2df9485
|
@ -21,6 +21,7 @@
|
|||
#include "shared/source/helpers/definitions/command_encoder_args.h"
|
||||
#include "shared/source/helpers/flush_stamp.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/helpers/logical_state_helper.h"
|
||||
#include "shared/source/helpers/ptr_math.h"
|
||||
#include "shared/source/memory_manager/allocation_properties.h"
|
||||
|
@ -61,7 +62,13 @@ DirectSubmissionHw<GfxFamily, Dispatcher>::DirectSubmissionHw(const DirectSubmis
|
|||
disableCacheFlush = !!DebugManager.flags.DirectSubmissionDisableCacheFlush.get();
|
||||
}
|
||||
|
||||
miMemFenceRequired = productHelper.isGlobalFenceInDirectSubmissionRequired(*hwInfo);
|
||||
if (hwInfo->capabilityTable.isIntegratedDevice) {
|
||||
miMemFenceRequired = false;
|
||||
sfenceMode = DirectSubmissionSfenceMode::Disabled;
|
||||
} else {
|
||||
miMemFenceRequired = productHelper.isGlobalFenceInDirectSubmissionRequired(*hwInfo);
|
||||
}
|
||||
|
||||
if (DebugManager.flags.DirectSubmissionInsertExtraMiMemFenceCommands.get() == 0) {
|
||||
miMemFenceRequired = false;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ DrmDirectSubmission<GfxFamily, Dispatcher>::DrmDirectSubmission(const DirectSubm
|
|||
auto &drm = osContextLinux->getDrm();
|
||||
drm.setDirectSubmissionActive(true);
|
||||
|
||||
auto usePciBarrier = true;
|
||||
auto usePciBarrier = !this->hwInfo->capabilityTable.isIntegratedDevice;
|
||||
if (DebugManager.flags.DirectSubmissionPCIBarrier.get() != -1) {
|
||||
usePciBarrier = DebugManager.flags.DirectSubmissionPCIBarrier.get();
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ struct DirectSubmissionDispatchMiMemFenceTest : public DirectSubmissionDispatchB
|
|||
DirectSubmissionDispatchBufferTest::SetUp();
|
||||
|
||||
auto &productHelper = pDevice->getProductHelper();
|
||||
miMemFenceSupported = productHelper.isGlobalFenceInDirectSubmissionRequired(pDevice->getHardwareInfo());
|
||||
miMemFenceSupported = pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice ? false : productHelper.isGlobalFenceInDirectSubmissionRequired(pDevice->getHardwareInfo());
|
||||
}
|
||||
|
||||
template <typename FamilyType>
|
||||
|
@ -1009,7 +1009,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, givenDebugFlagSetWhenDispatchingWor
|
|||
|
||||
EXPECT_TRUE(directSubmission.dispatchCommandBuffer(batchBuffer, flushStamp));
|
||||
|
||||
uint32_t expectedCount = (debugFlag == -1) ? 2 : static_cast<uint32_t>(debugFlag);
|
||||
uint32_t expectedCount = (debugFlag == -1) ? (pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice ? 0 : 2) : static_cast<uint32_t>(debugFlag);
|
||||
|
||||
EXPECT_EQ(initialCounterValue + expectedCount, CpuIntrinsicsTests::sfenceCounter);
|
||||
}
|
||||
|
@ -1032,7 +1032,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, givenDebugFlagSetWhenStoppingRingbu
|
|||
|
||||
EXPECT_TRUE(directSubmission.stopRingBuffer());
|
||||
|
||||
uint32_t expectedCount = (debugFlag == -1) ? 2 : static_cast<uint32_t>(debugFlag);
|
||||
uint32_t expectedCount = (debugFlag == -1) ? (pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice ? 0 : 2) : static_cast<uint32_t>(debugFlag);
|
||||
|
||||
EXPECT_EQ(initialCounterValue + expectedCount, CpuIntrinsicsTests::sfenceCounter);
|
||||
}
|
||||
|
|
|
@ -226,7 +226,11 @@ HWTEST_F(DrmDirectSubmissionTest, givenPciBarrierWhenCreateDirectSubmissionThenP
|
|||
MockDrmDirectSubmission<FamilyType, RenderDispatcher<FamilyType>> directSubmission(commandStreamReceiver);
|
||||
|
||||
EXPECT_NE(nullptr, directSubmission.pciBarrierPtr);
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
if (device->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
EXPECT_EQ(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
} else {
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
}
|
||||
EXPECT_FALSE(directSubmission.miMemFenceRequired);
|
||||
|
||||
SysCalls::munmap(ptr, MemoryConstants::pageSize);
|
||||
|
@ -247,8 +251,13 @@ HWTEST_F(DrmDirectSubmissionTest, givenPciBarrierWhenCreateDirectSubmissionAndMm
|
|||
MockDrmDirectSubmission<FamilyType, RenderDispatcher<FamilyType>> directSubmission(commandStreamReceiver);
|
||||
|
||||
EXPECT_EQ(nullptr, directSubmission.pciBarrierPtr);
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
EXPECT_EQ(directSubmission.miMemFenceRequired, device->getRootDeviceEnvironment().getHelper<ProductHelper>().isGlobalFenceInDirectSubmissionRequired(device->getHardwareInfo()));
|
||||
if (device->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
EXPECT_EQ(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
} else {
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
}
|
||||
auto expectMiMemFence = device->getHardwareInfo().capabilityTable.isIntegratedDevice ? false : device->getRootDeviceEnvironment().getHelper<ProductHelper>().isGlobalFenceInDirectSubmissionRequired(device->getHardwareInfo());
|
||||
EXPECT_EQ(directSubmission.miMemFenceRequired, expectMiMemFence);
|
||||
|
||||
SysCalls::munmap(ptr, MemoryConstants::pageSize);
|
||||
}
|
||||
|
@ -267,8 +276,13 @@ HWTEST_F(DrmDirectSubmissionTest, givenPciBarrierDisabledWhenCreateDirectSubmiss
|
|||
MockDrmDirectSubmission<FamilyType, RenderDispatcher<FamilyType>> directSubmission(commandStreamReceiver);
|
||||
|
||||
EXPECT_EQ(nullptr, directSubmission.pciBarrierPtr);
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
EXPECT_EQ(directSubmission.miMemFenceRequired, device->getRootDeviceEnvironment().getHelper<ProductHelper>().isGlobalFenceInDirectSubmissionRequired(device->getHardwareInfo()));
|
||||
if (device->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
EXPECT_EQ(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
} else {
|
||||
EXPECT_NE(DirectSubmissionSfenceMode::Disabled, directSubmission.sfenceMode);
|
||||
}
|
||||
auto expectMiMemFence = device->getHardwareInfo().capabilityTable.isIntegratedDevice ? false : device->getRootDeviceEnvironment().getHelper<ProductHelper>().isGlobalFenceInDirectSubmissionRequired(device->getHardwareInfo());
|
||||
EXPECT_EQ(directSubmission.miMemFenceRequired, expectMiMemFence);
|
||||
|
||||
SysCalls::munmap(ptr, MemoryConstants::pageSize);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue