Make all gmm helper members non-static

Change-Id: Idb399aa275d66905040b6317d3888c94ffb98c55
This commit is contained in:
Mateusz Jablonski
2018-07-27 13:59:39 +02:00
committed by sys_ocldev
parent 1bc7275de7
commit 89cf7532ea
12 changed files with 137 additions and 128 deletions

View File

@@ -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");
}

View File

@@ -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();

View File

@@ -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

View File

@@ -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 = {};

View File

@@ -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);

View File

@@ -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>

View File

@@ -223,4 +223,12 @@ int Drm::getErrno() {
return errno;
}
bool Drm::getSimplifiedMocsTableUsage() const {
return useSimplifiedMocsTable;
}
void Drm::setSimplifiedMocsTableUsage(bool value) {
useSimplifiedMocsTable = value;
}
} // namespace OCLRT

View File

@@ -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;

View File

@@ -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;
};

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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;