Skip to content

Commit 56a164f

Browse files
Debug mask support to force uncached Gmm usage type
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
1 parent 5f38555 commit 56a164f

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed

opencl/test/unit_test/gmm_helper/gmm_helper_tests.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,24 @@ TEST(GmmTest, givenConstSurfaceWhenDebugFlagIsSetThenReturnUncachedType) {
939939
CacheSettingsHelper::getGmmUsageType(AllocationType::CONSTANT_SURFACE, false, *defaultHwInfo));
940940
}
941941

942+
TEST(GmmTest, givenUncachedDebugFlagMaskSetWhenAskingForUsageTypeThenReturnUncached) {
943+
DebugManagerStateRestore restore;
944+
945+
constexpr int64_t bufferMask = 1 << (static_cast<int64_t>(AllocationType::BUFFER) - 1);
946+
constexpr int64_t imageMask = 1 << (static_cast<int64_t>(AllocationType::IMAGE) - 1);
947+
948+
DebugManager.flags.ForceUncachedGmmUsageType.set(bufferMask | imageMask);
949+
950+
EXPECT_EQ(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED,
951+
CacheSettingsHelper::getGmmUsageType(AllocationType::BUFFER, false, *defaultHwInfo));
952+
953+
EXPECT_EQ(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED,
954+
CacheSettingsHelper::getGmmUsageType(AllocationType::IMAGE, false, *defaultHwInfo));
955+
956+
EXPECT_NE(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED,
957+
CacheSettingsHelper::getGmmUsageType(AllocationType::BUFFER_HOST_MEMORY, false, *defaultHwInfo));
958+
}
959+
942960
TEST(GmmTest, givenAllocationForStatefulAccessWhenDebugFlagIsSetThenReturnUncachedType) {
943961
DebugManagerStateRestore restore;
944962
DebugManager.flags.DisableCachingForStatefulBufferAccess.set(true);

opencl/test/unit_test/test_files/igdrcl.config

+2-1
Original file line numberDiff line numberDiff line change
@@ -422,4 +422,5 @@ DirectSubmissionInsertSfenceInstructionPriorToSubmission = -1
422422
EnableTimestampWaitForEvents = -1
423423
ForceWddmLowPriorityContextValue = -1
424424
EnableDebuggerMmapMemoryAccess = 0
425-
FailBuildProgramWithStatefulAccess = -1
425+
FailBuildProgramWithStatefulAccess = -1
426+
ForceUncachedGmmUsageType = 0

shared/source/debug_settings/debug_variables_base.inl

+1
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, ForceDefaultHeapSize, -1, "-1: no force (64kb),
417417
DECLARE_DEBUG_VARIABLE(int32_t, PreferCopyEngineForCopyBufferToBuffer, -1, "-1: default, 0: prefer EUs, 1: prefer blitter")
418418
DECLARE_DEBUG_VARIABLE(int64_t, ForceSystemMemoryPlacement, 0, "0: default, >0: (bitmask) for given Graphics Allocation Type, force system memory placement")
419419
DECLARE_DEBUG_VARIABLE(int64_t, ForceNonSystemMemoryPlacement, 0, "0: default, >0: (bitmask) for given Graphics Allocation Type, force non-system memory placement")
420+
DECLARE_DEBUG_VARIABLE(int64_t, ForceUncachedGmmUsageType, 0, "0: default, >0: (bitmask) for given Graphics Allocation Type, force uncached gmm resource type")
420421
DECLARE_DEBUG_VARIABLE(int64_t, DisableIndirectAccess, -1, "0: default, 0: Use indirect access settings provided by application, 1: Disable indirect access and ignore settings provided by application")
421422
DECLARE_DEBUG_VARIABLE(int32_t, UseVmBind, -1, "Use new residency model on Linux (requires kernel support), -1: default, 0: disabled, 1: enabled")
422423
DECLARE_DEBUG_VARIABLE(int32_t, PassBoundBOToExec, -1, "Pass bound BOs to exec call to keep dependencies")

shared/source/gmm_helper/cache_settings_helper.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
namespace NEO {
1616

1717
GMM_RESOURCE_USAGE_TYPE_ENUM CacheSettingsHelper::getGmmUsageType(AllocationType allocationType, bool forceUncached, const HardwareInfo &hwInfo) {
18+
if (DebugManager.flags.ForceUncachedGmmUsageType.get()) {
19+
if ((1llu << (static_cast<int64_t>(allocationType) - 1)) & DebugManager.flags.ForceUncachedGmmUsageType.get()) {
20+
forceUncached = true;
21+
}
22+
}
23+
1824
if (forceUncached || DebugManager.flags.ForceAllResourcesUncached.get()) {
1925
return getDefaultUsageTypeWithCachingDisabled(allocationType);
2026
} else {

0 commit comments

Comments
 (0)