mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 12:23:05 +08:00
Remove simplified mocs logic.
Change-Id: I9fabfea94129fbc419ab0c9bca957cf7b9952c38 Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
8410bd6e18
commit
0f122fbcee
@@ -178,11 +178,6 @@ Drm *Drm::create(int32_t deviceOrdinal) {
|
||||
// Activate the Turbo Boost Frequency feature
|
||||
ret = drmObject->enableTurboBoost();
|
||||
if (ret != 0) {
|
||||
// turbo patch not present, we are not on custom Kernel, switch to simplified Mocs selection
|
||||
// do this only for GEN9+
|
||||
if (device->pHwInfo->platform.eRenderCoreFamily >= IGFX_GEN9_CORE) {
|
||||
drmObject->setSimplifiedMocsTableUsage(true);
|
||||
}
|
||||
printDebugString(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Failed to request OCL Turbo Boost\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -37,10 +37,6 @@ GmmHelper *GmmHelper::getInstance() {
|
||||
return platform()->peekExecutionEnvironment()->getGmmHelper();
|
||||
}
|
||||
|
||||
void GmmHelper::setSimplifiedMocsTableUsage(bool value) {
|
||||
useSimplifiedMocsTable = value;
|
||||
}
|
||||
|
||||
void GmmHelper::initContext(const PLATFORM *platform,
|
||||
const FeatureTable *featureTable,
|
||||
const WorkaroundTable *workaroundTable,
|
||||
@@ -57,13 +53,6 @@ void GmmHelper::initContext(const PLATFORM *platform,
|
||||
}
|
||||
|
||||
uint32_t GmmHelper::getMOCS(uint32_t type) {
|
||||
if (useSimplifiedMocsTable) {
|
||||
if (type == GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) {
|
||||
return cacheDisabledIndex;
|
||||
} else {
|
||||
return cacheEnabledIndex;
|
||||
}
|
||||
}
|
||||
MEMORY_OBJECT_CONTROL_STATE mocs = gmmClientContext->cachePolicyGetMemoryObject(nullptr, static_cast<GMM_RESOURCE_USAGE_TYPE>(type));
|
||||
|
||||
return static_cast<uint32_t>(mocs.DwordValue);
|
||||
|
||||
@@ -33,10 +33,7 @@ class GmmHelper {
|
||||
|
||||
const HardwareInfo *getHardwareInfo();
|
||||
uint32_t getMOCS(uint32_t type);
|
||||
void setSimplifiedMocsTableUsage(bool value);
|
||||
|
||||
static constexpr uint32_t cacheDisabledIndex = 0;
|
||||
static constexpr uint32_t cacheEnabledIndex = 4;
|
||||
static constexpr uint64_t maxPossiblePitch = 2147483648;
|
||||
|
||||
template <uint8_t addressWidth = 48>
|
||||
@@ -63,7 +60,6 @@ class GmmHelper {
|
||||
void loadLib();
|
||||
void initContext(const PLATFORM *platform, const FeatureTable *featureTable, const WorkaroundTable *workaroundTable, const GT_SYSTEM_INFO *pGtSysInfo);
|
||||
|
||||
bool useSimplifiedMocsTable = false;
|
||||
const HardwareInfo *hwInfo = nullptr;
|
||||
std::unique_ptr<OsLibrary> gmmLib;
|
||||
std::unique_ptr<GmmClientContext> gmmClientContext;
|
||||
|
||||
@@ -205,12 +205,4 @@ int Drm::getErrno() {
|
||||
return errno;
|
||||
}
|
||||
|
||||
bool Drm::getSimplifiedMocsTableUsage() const {
|
||||
return useSimplifiedMocsTable;
|
||||
}
|
||||
|
||||
void Drm::setSimplifiedMocsTableUsage(bool value) {
|
||||
useSimplifiedMocsTable = value;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -72,8 +72,6 @@ class Drm {
|
||||
void setGtType(GTTYPE eGtType) { this->eGtType = eGtType; }
|
||||
GTTYPE getGtType() const { return this->eGtType; }
|
||||
MOCKABLE_VIRTUAL int getErrno();
|
||||
void setSimplifiedMocsTableUsage(bool value);
|
||||
bool getSimplifiedMocsTableUsage() const;
|
||||
bool setQueueSliceCount(uint64_t sliceCount);
|
||||
void checkQueueSliceSupport();
|
||||
uint64_t getSliceMask(uint64_t sliceCount);
|
||||
@@ -89,7 +87,6 @@ class Drm {
|
||||
int getQueueSliceCount(drm_i915_gem_context_param_sseu *sseu);
|
||||
bool sliceCountChangeSupported = false;
|
||||
drm_i915_gem_context_param_sseu sseu{};
|
||||
bool useSimplifiedMocsTable = false;
|
||||
bool preemptionSupported = false;
|
||||
int fd;
|
||||
int deviceId = 0;
|
||||
|
||||
@@ -24,30 +24,3 @@ using Gen9HardwareCommandsTest = testing::Test;
|
||||
GEN9TEST_F(Gen9HardwareCommandsTest, givenGen9PlatformWhenDoBindingTablePrefetchIsCalledThenReturnsTrue) {
|
||||
EXPECT_TRUE(HardwareCommandsHelper<FamilyType>::doBindingTablePrefetch());
|
||||
}
|
||||
|
||||
GEN9TEST_F(Gen9HardwareCommandsTest, givenBufferThatIsNotZeroCopyWhenSurfaceStateisSetThenL3IsTurnedOn) {
|
||||
MockContext context;
|
||||
|
||||
auto retVal = CL_SUCCESS;
|
||||
char ptr[16u] = {};
|
||||
|
||||
std::unique_ptr<Buffer> buffer(Buffer::create(
|
||||
&context,
|
||||
CL_MEM_USE_HOST_PTR,
|
||||
16u,
|
||||
ptr,
|
||||
retVal));
|
||||
|
||||
EXPECT_FALSE(buffer->isMemObjZeroCopy());
|
||||
|
||||
using RENDER_SURFACE_STATE = typename SKLFamily::RENDER_SURFACE_STATE;
|
||||
RENDER_SURFACE_STATE surfaceState = {};
|
||||
|
||||
auto gmmHelper = context.getDevice(0)->getExecutionEnvironment()->getGmmHelper();
|
||||
gmmHelper->setSimplifiedMocsTableUsage(true);
|
||||
|
||||
buffer->setArgStateful(&surfaceState, false, false, false, false);
|
||||
//make sure proper mocs is selected
|
||||
constexpr uint32_t expectedMocs = GmmHelper::cacheEnabledIndex;
|
||||
EXPECT_EQ(expectedMocs, surfaceState.getMemoryObjectControlStateIndexToMocsTables());
|
||||
}
|
||||
|
||||
@@ -674,22 +674,6 @@ TEST(GmmTest, givenGmmWithSetMCSInResourceInfoGpuFlagsWhenCallhasMultisampleCont
|
||||
EXPECT_TRUE(gmm->hasMultisampleControlSurface());
|
||||
}
|
||||
|
||||
TEST(GmmSimplifiedCacheSelectionPolicy, givenGmmInSimplifiedCacheSelectionPolicyWhenItIsAskedForUncachedIndexThen0IsReturned) {
|
||||
GmmHelper gmmHelper(*platformDevices);
|
||||
gmmHelper.setSimplifiedMocsTableUsage(true);
|
||||
auto index = gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
||||
auto expectedIndex = GmmHelper::cacheDisabledIndex;
|
||||
EXPECT_EQ(expectedIndex, index);
|
||||
}
|
||||
|
||||
TEST(GmmSimplifiedCacheSelectionPolicy, givenGmmInSimplifiedCacheSelectionPolicyWhenItIsAskedForCachedIndexThen4IsReturned) {
|
||||
GmmHelper gmmHelper(*platformDevices);
|
||||
gmmHelper.setSimplifiedMocsTableUsage(true);
|
||||
auto index = gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
||||
auto expectedIndex = GmmHelper::cacheEnabledIndex;
|
||||
EXPECT_EQ(expectedIndex, index);
|
||||
}
|
||||
|
||||
TEST(GmmHelperTest, whenGmmHelperIsInitializedThenClientContextIsSet) {
|
||||
ASSERT_NE(nullptr, GmmHelper::getClientContext());
|
||||
EXPECT_NE(nullptr, GmmHelper::getClientContext()->getHandle());
|
||||
|
||||
@@ -219,86 +219,6 @@ TEST_F(DrmTests, failOnParamBoost) {
|
||||
EXPECT_NE(drm, nullptr);
|
||||
}
|
||||
|
||||
#ifdef TESTS_BDW
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenBdwDeviceIsCreatedThenSimplifiedMocsSelectionIsFalse) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = IBDW_GT3_WRK_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_FALSE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TESTS_SKL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenSklDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = ISKL_GT2_DT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef TESTS_KBL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenKblDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = IKBL_GT1_ULT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef TESTS_BXT
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenBxtDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = IBXT_X_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef TESTS_GLK
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenGlkDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = IGLK_GT2_ULT_18EU_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef TESTS_CFL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenCflDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<decltype(deviceId)> backupDeviceId(&deviceId);
|
||||
VariableBackup<decltype(failOnParamBoost)> backupFailOnParamBoost(&failOnParamBoost);
|
||||
|
||||
deviceId = ICFL_GT1_S61_DT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_F(DrmTests, givenKernelSupportingTurboPatchWhenDeviceIsCreatedThenSimplifiedMocsSelectionIsFalse) {
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_FALSE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnContextCreate) {
|
||||
VariableBackup<decltype(failOnContextCreate)> backupFailOnContextCreate(&failOnContextCreate);
|
||||
|
||||
|
||||
@@ -1982,8 +1982,6 @@ HWTEST_F(BufferSetSurfaceTests, givenMisalignedPointerWhenSurfaceStateIsProgramm
|
||||
HWTEST_F(BufferSetSurfaceTests, givenBufferThatIsMisalignedWhenSurfaceStateIsBeingProgrammedThenL3CacheIsOff) {
|
||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||
|
||||
this->device->getExecutionEnvironment()->getGmmHelper()->setSimplifiedMocsTableUsage(true);
|
||||
|
||||
RENDER_SURFACE_STATE surfaceState = {};
|
||||
MockContext context;
|
||||
void *svmPtr = reinterpret_cast<void *>(0x1005);
|
||||
@@ -2001,7 +1999,6 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferThatIsMisalignedWhenSurfaceStateIsBei
|
||||
class BufferL3CacheTests : public ::testing::TestWithParam<uint64_t> {
|
||||
public:
|
||||
void SetUp() override {
|
||||
ctx.getDevice(0)->getExecutionEnvironment()->getGmmHelper()->setSimplifiedMocsTableUsage(true);
|
||||
hostPtr = reinterpret_cast<void *>(GetParam());
|
||||
}
|
||||
MockContext ctx;
|
||||
|
||||
@@ -1370,16 +1370,6 @@ HWTEST_TEMPLATED_F(DrmCommandStreamEnhancedTest, givenDrmCommandStreamReceiverWh
|
||||
EXPECT_TRUE(mm->isValidateHostMemoryEnabled());
|
||||
}
|
||||
|
||||
HWTEST_TEMPLATED_F(DrmCommandStreamTest, givenDrmCommandStreamWhenGettingMocsThenProperValueIsReturned) {
|
||||
auto mocs = platform()->peekExecutionEnvironment()->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
||||
auto expectedMocs = GmmHelper::cacheDisabledIndex;
|
||||
EXPECT_EQ(mocs, expectedMocs);
|
||||
|
||||
mocs = platform()->peekExecutionEnvironment()->getGmmHelper()->getMOCS(0);
|
||||
expectedMocs = GmmHelper::cacheEnabledIndex;
|
||||
EXPECT_EQ(mocs, expectedMocs);
|
||||
}
|
||||
|
||||
HWTEST_TEMPLATED_F(DrmCommandStreamEnhancedTest, givenAllocationWithSingleBufferObjectWhenMakeResidentBufferObjectsIsCalledThenTheBufferObjectIsMadeResident) {
|
||||
auto size = 1024u;
|
||||
auto bo = this->createBO(size);
|
||||
|
||||
Reference in New Issue
Block a user