mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
performance: Do not create global fence allocation on integrated
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
900683b979
commit
6bf5183eff
@@ -246,13 +246,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaMiMemFenceTestXe2HpgCore, givenSystemMemo
|
||||
commandStreamReceiver.flushBcsTask(blitPropertiesContainer, false, false, *pDevice);
|
||||
EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
if (!pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
}
|
||||
}
|
||||
|
||||
struct SystemMemoryFenceViaComputeWalkerTest : public UltCommandStreamReceiverTest {
|
||||
@@ -282,13 +284,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaComputeWalkerTestXe2HpgCore, givenSystemM
|
||||
commandStreamReceiver.programEnginePrologue(cmdStream);
|
||||
EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
if (!pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
}
|
||||
}
|
||||
|
||||
XE2_HPG_CORETEST_F(SystemMemoryFenceViaComputeWalkerTestXe2HpgCore, givenSystemMemoryFenceGeneratedAsPostSyncOperationInComputeWalkerWhenDispatchWalkerIsCalledThenSystemMemoryFenceRequestInPostSyncDataIsProgrammed) {
|
||||
@@ -346,13 +350,15 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceViaKernelInstructionTestXe2HpgCore, givenSys
|
||||
commandStreamReceiver.programEnginePrologue(cmdStream);
|
||||
EXPECT_TRUE(commandStreamReceiver.isEnginePrologueSent);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
if (!pDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(cmdStream);
|
||||
auto itorSystemMemFenceAddress = find<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorSystemMemFenceAddress);
|
||||
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
auto systemMemFenceAddressCmd = genCmdCast<STATE_SYSTEM_MEM_FENCE_ADDRESS *>(*itorSystemMemFenceAddress);
|
||||
EXPECT_EQ(commandStreamReceiver.globalFenceAllocation->getGpuAddress(), systemMemFenceAddressCmd->getSystemMemoryFenceAddress());
|
||||
}
|
||||
}
|
||||
|
||||
struct SystemMemoryFenceInDefaultConfigurationTest : public UltCommandStreamReceiverTest {
|
||||
@@ -373,6 +379,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS;
|
||||
using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;
|
||||
using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE;
|
||||
if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MockKernelWithInternals kernel(*pClDevice);
|
||||
MockContext context(pClDevice);
|
||||
@@ -396,13 +405,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
auto &postSyncData = walkerCmd->getPostSync();
|
||||
EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest());
|
||||
|
||||
if (MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) {
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
|
||||
XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
@@ -410,6 +417,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS;
|
||||
using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;
|
||||
using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE;
|
||||
if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MockKernelWithInternals kernel(*pClDevice);
|
||||
MockContext context(pClDevice);
|
||||
@@ -434,13 +444,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
auto &postSyncData = walkerCmd->getPostSync();
|
||||
EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest());
|
||||
|
||||
if (MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) {
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
|
||||
XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
@@ -448,6 +456,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS;
|
||||
using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;
|
||||
using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE;
|
||||
if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MockKernelWithInternals kernel(*pClDevice);
|
||||
MockContext context(pClDevice);
|
||||
@@ -472,13 +483,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
auto &postSyncData = walkerCmd->getPostSync();
|
||||
EXPECT_FALSE(postSyncData.getSystemMemoryFenceRequest());
|
||||
|
||||
if (MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) {
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
|
||||
auto event = castToObject<Event>(kernelEvent);
|
||||
event->release();
|
||||
@@ -489,6 +498,9 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
using STATE_SYSTEM_MEM_FENCE_ADDRESS = typename FamilyType::STATE_SYSTEM_MEM_FENCE_ADDRESS;
|
||||
using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;
|
||||
using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE;
|
||||
if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MockKernelWithInternals kernel(*pClDevice);
|
||||
MockContext context(pClDevice);
|
||||
@@ -514,13 +526,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
auto &postSyncData = walkerCmd->getPostSync();
|
||||
EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest());
|
||||
|
||||
if (MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) {
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
|
||||
auto event = castToObject<Event>(kernelEvent);
|
||||
event->release();
|
||||
@@ -532,6 +542,10 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
using COMPUTE_WALKER = typename FamilyType::COMPUTE_WALKER;
|
||||
using MI_MEM_FENCE = typename FamilyType::MI_MEM_FENCE;
|
||||
|
||||
if (pClDevice->getHardwareInfo().capabilityTable.isIntegratedDevice) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
MockKernelWithInternals kernel(*pClDevice);
|
||||
MockContext context(pClDevice);
|
||||
MockCommandQueueHw<FamilyType> commandQueue(&context, pClDevice, nullptr);
|
||||
@@ -557,13 +571,11 @@ XE2_HPG_CORETEST_F(SystemMemoryFenceInDefaultConfigurationTestXe2HpgCore,
|
||||
auto &postSyncData = walkerCmd->getPostSync();
|
||||
EXPECT_TRUE(postSyncData.getSystemMemoryFenceRequest());
|
||||
|
||||
if (MemorySynchronizationCommands<FamilyType>::getSizeForAdditonalSynchronization(pClDevice->getRootDeviceEnvironment()) > 0) {
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
}
|
||||
auto itorMiMemFence = find<MI_MEM_FENCE *>(hwParser.cmdList.begin(), hwParser.cmdList.end());
|
||||
ASSERT_NE(hwParser.cmdList.end(), itorMiMemFence);
|
||||
auto fenceCmd = genCmdCast<MI_MEM_FENCE *>(*itorMiMemFence);
|
||||
ASSERT_NE(nullptr, fenceCmd);
|
||||
EXPECT_EQ(MI_MEM_FENCE::FENCE_TYPE::FENCE_TYPE_RELEASE, fenceCmd->getFenceType());
|
||||
|
||||
auto event = castToObject<Event>(kernelEvent);
|
||||
event->release();
|
||||
|
||||
Reference in New Issue
Block a user