mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 08:53:55 +08:00
Make all gmm helper members non-static
Change-Id: Idb399aa275d66905040b6317d3888c94ffb98c55
This commit is contained in:
committed by
sys_ocldev
parent
1bc7275de7
commit
89cf7532ea
@@ -211,7 +211,7 @@ Drm *Drm::create(int32_t deviceOrdinal) {
|
||||
//turbo patch not present, we are not on custom Kernel, switch to simplified Mocs selection
|
||||
//do this only for GEN9+
|
||||
if (device->pHwInfo->pPlatform->eRenderCoreFamily >= IGFX_GEN9_CORE) {
|
||||
GmmHelper::useSimplifiedMocsTable = true;
|
||||
drmObject->setSimplifiedMocsTableUsage(true);
|
||||
}
|
||||
printDebugString(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Failed to request OCL Turbo Boost\n");
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ void Gmm::queryImageParams(ImageInfo &imgInfo) {
|
||||
}
|
||||
|
||||
uint32_t Gmm::queryQPitch(GMM_RESOURCE_TYPE resType) {
|
||||
if (GmmHelper::hwInfo->pPlatform->eRenderCoreFamily == IGFX_GEN8_CORE && resType == GMM_RESOURCE_TYPE::RESOURCE_3D) {
|
||||
if (GmmHelper::getInstance()->getHardwareInfo()->pPlatform->eRenderCoreFamily == IGFX_GEN8_CORE && resType == GMM_RESOURCE_TYPE::RESOURCE_3D) {
|
||||
return 0;
|
||||
}
|
||||
return gmmResourceInfo->getQPitch();
|
||||
|
||||
@@ -41,10 +41,18 @@ GmmClientContext *GmmHelper::getClientContext() {
|
||||
return getInstance()->gmmClientContext.get();
|
||||
}
|
||||
|
||||
const HardwareInfo *GmmHelper::getHardwareInfo() {
|
||||
return hwInfo;
|
||||
}
|
||||
|
||||
GmmHelper *GmmHelper::getInstance() {
|
||||
return platform()->peekExecutionEnvironment()->getGmmHelper();
|
||||
}
|
||||
|
||||
void GmmHelper::setSimplifiedMocsTableUsage(bool value) {
|
||||
useSimplifiedMocsTable = value;
|
||||
}
|
||||
|
||||
void GmmHelper::initContext(const PLATFORM *pPlatform,
|
||||
const FeatureTable *pSkuTable,
|
||||
const WorkaroundTable *pWaTable,
|
||||
@@ -159,15 +167,11 @@ GMM_YUV_PLANE GmmHelper::convertPlane(OCLPlane oclPlane) {
|
||||
|
||||
return GMM_NO_PLANE;
|
||||
}
|
||||
GmmHelper::GmmHelper(const HardwareInfo *pHwInfo) {
|
||||
GmmHelper::hwInfo = pHwInfo;
|
||||
GmmHelper::GmmHelper(const HardwareInfo *pHwInfo) : hwInfo(pHwInfo) {
|
||||
initContext(pHwInfo->pPlatform, pHwInfo->pSkuTable, pHwInfo->pWaTable, pHwInfo->pSysInfo);
|
||||
}
|
||||
GmmHelper::~GmmHelper() {
|
||||
gmmEntries.pfnDestroySingletonContext();
|
||||
};
|
||||
bool GmmHelper::useSimplifiedMocsTable = false;
|
||||
decltype(GmmHelper::createGmmContextWrapperFunc) GmmHelper::createGmmContextWrapperFunc = GmmClientContextBase::create<GmmClientContext>;
|
||||
|
||||
const HardwareInfo *GmmHelper::hwInfo = nullptr;
|
||||
} // namespace OCLRT
|
||||
|
||||
@@ -44,7 +44,9 @@ class GmmHelper {
|
||||
GmmHelper(const HardwareInfo *hwInfo);
|
||||
MOCKABLE_VIRTUAL ~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;
|
||||
@@ -55,6 +57,7 @@ class GmmHelper {
|
||||
|
||||
static GmmClientContext *getClientContext();
|
||||
static GmmHelper *getInstance();
|
||||
|
||||
static void queryImgFromBufferParams(ImageInfo &imgInfo, GraphicsAllocation *gfxAlloc);
|
||||
static GMM_CUBE_FACE_ENUM getCubeFaceIndex(uint32_t target);
|
||||
static bool allowTiling(const cl_image_desc &imageDesc);
|
||||
@@ -65,13 +68,12 @@ class GmmHelper {
|
||||
|
||||
static std::unique_ptr<GmmClientContext> (*createGmmContextWrapperFunc)(GMM_CLIENT, GmmExportEntries &);
|
||||
|
||||
static bool useSimplifiedMocsTable;
|
||||
static const HardwareInfo *hwInfo;
|
||||
|
||||
protected:
|
||||
void loadLib();
|
||||
void initContext(const PLATFORM *pPlatform, const FeatureTable *pSkuTable, const WorkaroundTable *pWaTable, const GT_SYSTEM_INFO *pGtSysInfo);
|
||||
|
||||
bool useSimplifiedMocsTable = false;
|
||||
const HardwareInfo *hwInfo = nullptr;
|
||||
std::unique_ptr<OsLibrary> gmmLib;
|
||||
std::unique_ptr<GmmClientContext> gmmClientContext;
|
||||
GmmExportEntries gmmEntries = {};
|
||||
|
||||
@@ -96,8 +96,10 @@ Buffer *Buffer::create(Context *context,
|
||||
bool alignementSatisfied = true;
|
||||
bool allocateMemory = true;
|
||||
bool copyMemoryFromHostPtr = false;
|
||||
|
||||
GraphicsAllocation::AllocationType allocationType = getGraphicsAllocationType(flags, context->isSharedContext, GmmHelper::hwInfo->capabilityTable.ftrRenderCompressedBuffers);
|
||||
GraphicsAllocation::AllocationType allocationType = getGraphicsAllocationType(
|
||||
flags,
|
||||
context->isSharedContext,
|
||||
context->getDevice(0)->getHardwareInfo().capabilityTable.ftrRenderCompressedBuffers);
|
||||
|
||||
MemoryManager *memoryManager = context->getMemoryManager();
|
||||
UNRECOVERABLE_IF(!memoryManager);
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#include "runtime/command_stream/linear_stream.h"
|
||||
#include "hw_cmds.h"
|
||||
#include "runtime/execution_environment/execution_environment.h"
|
||||
#include "runtime/gmm_helper/gmm_helper.h"
|
||||
#include "runtime/helpers/aligned_memory.h"
|
||||
#include "runtime/helpers/preamble.h"
|
||||
#include "runtime/mem_obj/buffer.h"
|
||||
@@ -31,6 +33,7 @@
|
||||
#include "runtime/os_interface/linux/drm_memory_manager.h"
|
||||
#include "runtime/os_interface/linux/drm_neo.h"
|
||||
#include "runtime/os_interface/linux/os_interface.h"
|
||||
#include "runtime/platform/platform.h"
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
@@ -45,6 +48,8 @@ DrmCommandStreamReceiver<GfxFamily>::DrmCommandStreamReceiver(const HardwareInfo
|
||||
execObjectsStorage.reserve(512);
|
||||
CommandStreamReceiver::osInterface = std::unique_ptr<OSInterface>(new OSInterface());
|
||||
CommandStreamReceiver::osInterface.get()->get()->setDrm(this->drm);
|
||||
auto gmmHelper = platform()->peekExecutionEnvironment()->getGmmHelper();
|
||||
gmmHelper->setSimplifiedMocsTableUsage(this->drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
|
||||
@@ -223,4 +223,12 @@ int Drm::getErrno() {
|
||||
return errno;
|
||||
}
|
||||
|
||||
bool Drm::getSimplifiedMocsTableUsage() const {
|
||||
return useSimplifiedMocsTable;
|
||||
}
|
||||
|
||||
void Drm::setSimplifiedMocsTableUsage(bool value) {
|
||||
useSimplifiedMocsTable = value;
|
||||
}
|
||||
|
||||
} // namespace OCLRT
|
||||
|
||||
@@ -77,8 +77,11 @@ 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;
|
||||
|
||||
protected:
|
||||
bool useSimplifiedMocsTable = false;
|
||||
int fd;
|
||||
int deviceId;
|
||||
int revisionId;
|
||||
|
||||
@@ -21,8 +21,11 @@
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "runtime/execution_environment/execution_environment.h"
|
||||
#include "runtime/gmm_helper/gmm_helper.h"
|
||||
#include "runtime/helpers/options.h"
|
||||
#include "runtime/mem_obj/image.h"
|
||||
#include "runtime/platform/platform.h"
|
||||
#include "unit_tests/mocks/mock_context.h"
|
||||
#include "CL/cl.h"
|
||||
#include <cassert>
|
||||
@@ -125,11 +128,13 @@ class ImageClearColorFixture {
|
||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||
using AUXILIARY_SURFACE_MODE = typename FamilyType::RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE;
|
||||
|
||||
ImageClearColorFixture() : image(nullptr), imageHw(nullptr) {
|
||||
localHwInfo.capabilityTable.ftrRenderCompressedImages = true;
|
||||
}
|
||||
void SetUp() {
|
||||
GmmHelper::hwInfo = &localHwInfo;
|
||||
localHwInfo = *OCLRT::platformDevices[0];
|
||||
localHwInfo.capabilityTable.ftrRenderCompressedImages = true;
|
||||
|
||||
OCLRT::platformImpl.reset();
|
||||
OCLRT::constructPlatform()->peekExecutionEnvironment()->initGmm(&localHwInfo);
|
||||
|
||||
surfaceState = RENDER_SURFACE_STATE::sInit();
|
||||
surfaceState.setAuxiliarySurfaceMode(AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E);
|
||||
}
|
||||
@@ -142,11 +147,11 @@ class ImageClearColorFixture {
|
||||
}
|
||||
|
||||
RENDER_SURFACE_STATE surfaceState;
|
||||
HardwareInfo localHwInfo = *GmmHelper::hwInfo;
|
||||
HardwareInfo localHwInfo = {};
|
||||
|
||||
protected:
|
||||
MockContext context;
|
||||
|
||||
std::unique_ptr<Image> image;
|
||||
ImageHw *imageHw;
|
||||
ImageHw *imageHw = nullptr;
|
||||
};
|
||||
|
||||
@@ -607,9 +607,8 @@ TEST(GmmTest, givenInvalidFlagsSetWhenAskedForUnifiedAuxTranslationCapabilityThe
|
||||
|
||||
TEST(GmmTest, givenHwInfoWhenDeviceIsCreatedTheSetThisHwInfoToGmmHelper) {
|
||||
HardwareInfo localHwInfo = **platformDevices;
|
||||
|
||||
std::unique_ptr<MockDevice> device(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&localHwInfo));
|
||||
EXPECT_EQ(&localHwInfo, GmmHelper::hwInfo);
|
||||
EXPECT_EQ(&localHwInfo, device->getGmmHelper()->getHardwareInfo());
|
||||
}
|
||||
|
||||
TEST(GmmTest, whenResourceIsCreatedThenHandleItsOwnership) {
|
||||
@@ -641,21 +640,19 @@ TEST(GmmTest, whenResourceIsCreatedThenHandleItsOwnership) {
|
||||
}
|
||||
|
||||
TEST(GmmSimplifiedCacheSelectionPolicy, givenGmmInSimplifiedCacheSelectionPolicyWhenItIsAskedForUncachedIndexThen0IsReturned) {
|
||||
GmmHelper::useSimplifiedMocsTable = true;
|
||||
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);
|
||||
GmmHelper::useSimplifiedMocsTable = false;
|
||||
}
|
||||
|
||||
TEST(GmmSimplifiedCacheSelectionPolicy, givenGmmInSimplifiedCacheSelectionPolicyWhenItIsAskedForCachedIndexThen4IsReturned) {
|
||||
GmmHelper::useSimplifiedMocsTable = true;
|
||||
GmmHelper gmmHelper(*platformDevices);
|
||||
gmmHelper.setSimplifiedMocsTableUsage(true);
|
||||
auto index = gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
||||
auto expectedIndex = GmmHelper::cacheEnabledIndex;
|
||||
EXPECT_EQ(expectedIndex, index);
|
||||
GmmHelper::useSimplifiedMocsTable = false;
|
||||
}
|
||||
|
||||
TEST(GmmHelperTest, whenGmmHelperIsInitializedThenClientContextIsSet) {
|
||||
|
||||
@@ -21,12 +21,10 @@
|
||||
*/
|
||||
|
||||
#include "mock_os_layer.h"
|
||||
#include "runtime/gmm_helper/gmm_helper.h"
|
||||
#include "runtime/helpers/aligned_memory.h"
|
||||
#include "runtime/helpers/basic_math.h"
|
||||
#include "runtime/os_interface/linux/allocator_helper.h"
|
||||
#include "unit_tests/custom_event_listener.h"
|
||||
#include "unit_tests/helpers/variable_backup.h"
|
||||
#include "test.h"
|
||||
|
||||
using namespace OCLRT;
|
||||
@@ -56,38 +54,38 @@ class DrmTestsFixture {
|
||||
typedef Test<DrmTestsFixture> DrmTests;
|
||||
|
||||
TEST_F(DrmTests, getReturnsNull) {
|
||||
auto ptr = Drm::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = Drm::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, getNoOverrun) {
|
||||
//negative device ordinal
|
||||
auto ptr = Drm::get(-1);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = Drm::get(-1);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
|
||||
//some high value
|
||||
ptr = Drm::get(1 << (sizeof(int32_t) * 8 - 2));
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = Drm::get(1 << (sizeof(int32_t) * 8 - 2));
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, closeNotOpened) {
|
||||
auto ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, openClose) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, closeNoOverrun) {
|
||||
@@ -99,8 +97,8 @@ TEST_F(DrmTests, closeNoOverrun) {
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createReturnsDrm) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
|
||||
drm_i915_getparam_t getParam;
|
||||
int lDeviceId;
|
||||
@@ -111,7 +109,7 @@ TEST_F(DrmTests, createReturnsDrm) {
|
||||
// check if device works, although there was EINTR error from KMD
|
||||
getParam.param = I915_PARAM_CHIPSET_ID;
|
||||
getParam.value = &lDeviceId;
|
||||
auto ret = ptr->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
auto ret = drm->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
EXPECT_EQ(0, ret);
|
||||
EXPECT_EQ(deviceId, lDeviceId);
|
||||
|
||||
@@ -121,7 +119,7 @@ TEST_F(DrmTests, createReturnsDrm) {
|
||||
// check if device works, although there was EAGAIN error from KMD
|
||||
getParam.param = I915_PARAM_CHIPSET_ID;
|
||||
getParam.value = &lDeviceId;
|
||||
ret = ptr->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
ret = drm->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
EXPECT_EQ(0, ret);
|
||||
EXPECT_EQ(deviceId, lDeviceId);
|
||||
|
||||
@@ -131,217 +129,204 @@ TEST_F(DrmTests, createReturnsDrm) {
|
||||
// we failed with any other error code
|
||||
getParam.param = I915_PARAM_CHIPSET_ID;
|
||||
getParam.value = &lDeviceId;
|
||||
ret = ptr->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
ret = drm->ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
EXPECT_EQ(-1, ret);
|
||||
EXPECT_EQ(deviceId, lDeviceId);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createTwiceReturnsSameDrm) {
|
||||
auto ptr1 = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr1, nullptr);
|
||||
auto ptr2 = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr2, nullptr);
|
||||
EXPECT_EQ(ptr1, ptr2);
|
||||
auto drm1 = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm1, nullptr);
|
||||
auto drm2 = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm2, nullptr);
|
||||
EXPECT_EQ(drm1, drm2);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createDriFallback) {
|
||||
haveDri = 1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createNoDevice) {
|
||||
haveDri = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createNoOverrun) {
|
||||
auto ptr = DrmWrap::createDrm(-1);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(-1);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
|
||||
ptr = DrmWrap::createDrm(1 << (sizeof(int32_t) * 8 - 2));
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::createDrm(1 << (sizeof(int32_t) * 8 - 2));
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createUnknownDevice) {
|
||||
deviceId = -1;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, createNoSoftPin) {
|
||||
haveSoftPin = 0;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnDeviceId) {
|
||||
failOnDeviceId = -1;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnRevisionId) {
|
||||
failOnRevisionId = -1;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnSoftPin) {
|
||||
failOnSoftPin = -1;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnParamBoost) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
failOnParamBoost = -1;
|
||||
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
//non-fatal error - issue warning only
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
}
|
||||
|
||||
#ifdef SUPPORT_BDW
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenBdwDeviceIsCreatedThenSimplifiedMocsSelectionIsFalse) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = IBDW_GT3_WRK_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_FALSE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_FALSE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef SUPPORT_SKL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenSklDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = ISKL_GT2_DT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_TRUE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef SUPPORT_KBL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenKblDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = IKBL_GT1_ULT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_TRUE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef SUPPORT_BXT
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenBxtDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = IBXT_X_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_TRUE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef SUPPORT_GLK
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenGlkDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = IGLK_GT2_ULT_18EU_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_TRUE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
#ifdef SUPPORT_CFL
|
||||
TEST_F(DrmTests, givenKernelNotSupportingTurboPatchWhenCflDeviceIsCreatedThenSimplifiedMocsSelectionIsTrue) {
|
||||
VariableBackup<bool> useSimplifiedMocsTableBckp(&GmmHelper::useSimplifiedMocsTable);
|
||||
useSimplifiedMocsTableBckp = false;
|
||||
deviceId = ICFL_GT1_S61_DT_DEVICE_F0_ID;
|
||||
failOnParamBoost = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_TRUE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_TRUE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_F(DrmTests, givenKernelSupportingTurboPatchWhenDeviceIsCreatedThenSimplifiedMocsSelectionIsFalse) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
EXPECT_FALSE(GmmHelper::useSimplifiedMocsTable);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
EXPECT_FALSE(drm->getSimplifiedMocsTableUsage());
|
||||
}
|
||||
|
||||
#if defined(I915_PARAM_HAS_PREEMPTION)
|
||||
TEST_F(DrmTests, checkPreemption) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
bool ret = ptr->hasPreemption();
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
bool ret = drm->hasPreemption();
|
||||
EXPECT_EQ(ret, true);
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_F(DrmTests, failOnContextCreate) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
failOnContextCreate = -1;
|
||||
bool ret = ptr->hasPreemption();
|
||||
bool ret = drm->hasPreemption();
|
||||
EXPECT_EQ(ret, false);
|
||||
failOnContextCreate = 0;
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnSetPriority) {
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_NE(drm, nullptr);
|
||||
failOnSetPriority = -1;
|
||||
bool ret = ptr->hasPreemption();
|
||||
bool ret = drm->hasPreemption();
|
||||
EXPECT_EQ(ret, false);
|
||||
failOnSetPriority = 0;
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnDrmGetVersion) {
|
||||
failOnDrmVersion = -1;
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
failOnDrmVersion = 0;
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(DrmTests, failOnInvalidDeviceName) {
|
||||
strcpy(providedDrmVersion, "NA");
|
||||
auto ptr = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
auto drm = DrmWrap::createDrm(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
failOnDrmVersion = 0;
|
||||
strcpy(providedDrmVersion, "i915");
|
||||
DrmWrap::closeDevice(0);
|
||||
|
||||
ptr = DrmWrap::get(0);
|
||||
EXPECT_EQ(ptr, nullptr);
|
||||
drm = DrmWrap::get(0);
|
||||
EXPECT_EQ(drm, nullptr);
|
||||
}
|
||||
|
||||
TEST(AllocatorHelper, givenExpectedSizeToMapWhenGetSizetoMapCalledThenExpectedValueReturned) {
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
#include "runtime/helpers/options.h"
|
||||
#include "gmm_memory.h"
|
||||
#include "gmm_client_context.h"
|
||||
#include "runtime/platform/platform.h"
|
||||
#include "runtime/execution_environment/execution_environment.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
using namespace OCLRT;
|
||||
|
||||
Reference in New Issue
Block a user