diff --git a/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp index 8c4d4a4b13..ce1a364039 100644 --- a/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp @@ -214,11 +214,14 @@ void GfxCoreHelperHw::setExtraAllocationData(AllocationData &allocationD } if (properties.allocationType == AllocationType::commandBuffer || - properties.allocationType == AllocationType::ringBuffer || - properties.allocationType == AllocationType::semaphoreBuffer) { + properties.allocationType == AllocationType::ringBuffer) { allocationData.flags.useSystemMemory = false; allocationData.flags.requiresCpuAccess = true; } + + if (properties.allocationType == AllocationType::semaphoreBuffer) { + allocationData.flags.useSystemMemory = true; + } } } diff --git a/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp b/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp index 5ebcd17b67..87054ff034 100644 --- a/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp +++ b/shared/test/unit_test/xe2_hpg_core/gfx_core_helper_tests_xe2_hpg_core.cpp @@ -778,10 +778,12 @@ XE2_HPG_CORETEST_F(GfxCoreHelperTestsXe2HpgCore, givenAllocDataWhenSetExtraAlloc if (defaultHwInfo->featureTable.flags.ftrLocalMemory) { if (allocProperties.allocationType == AllocationType::commandBuffer || - allocProperties.allocationType == AllocationType::ringBuffer || - allocProperties.allocationType == AllocationType::semaphoreBuffer) { + allocProperties.allocationType == AllocationType::ringBuffer) { EXPECT_FALSE(allocData.flags.useSystemMemory); EXPECT_TRUE(allocData.flags.requiresCpuAccess); + } else if (allocProperties.allocationType == AllocationType::semaphoreBuffer) { + EXPECT_TRUE(allocData.flags.useSystemMemory); + EXPECT_TRUE(allocData.flags.requiresCpuAccess); } else { EXPECT_FALSE(allocData.flags.useSystemMemory); EXPECT_FALSE(allocData.flags.requiresCpuAccess);