Create a wrapper for drm_i915_gem_context_param

Related-To: NEO-6852, NEO-6999
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2022-05-20 15:04:07 +00:00
committed by Compute-Runtime-Automation
parent 47d9d8f9e2
commit 2202d05ea1
13 changed files with 65 additions and 51 deletions

View File

@@ -4533,14 +4533,14 @@ TEST_F(DebugApiLinuxTest, GivenContextParamEventWhenTypeIsParamEngineThenEventIs
auto offset = offsetof(prelim_drm_i915_debug_event_context_param, param);
drm_i915_gem_context_param paramToCopy = {};
paramToCopy.ctx_id = contextHandle;
GemContextParam paramToCopy = {};
paramToCopy.contextId = contextHandle;
paramToCopy.size = sizeof(i915_context_param_engines) + sizeof(i915_engine_class_instance);
paramToCopy.param = I915_CONTEXT_PARAM_ENGINES;
paramToCopy.value = 0;
memcpy(ptrOffset(memory, offset), &paramToCopy, sizeof(drm_i915_gem_context_param));
memcpy(ptrOffset(memory, offset), &paramToCopy, sizeof(GemContextParam));
auto valueOffset = offsetof(drm_i915_gem_context_param, value);
auto valueOffset = offsetof(GemContextParam, value);
auto *engines = ptrOffset(memory, offset + valueOffset);
i915_context_param_engines enginesParam;
enginesParam.extensions = 0;

View File

@@ -170,7 +170,7 @@ int drmGetParam(drm_i915_getparam_t *param) {
return ret;
}
int drmSetContextParam(drm_i915_gem_context_param *param) {
int drmSetContextParam(NEO::GemContextParam *param) {
assert(param);
int ret = 0;
@@ -186,7 +186,7 @@ int drmSetContextParam(drm_i915_gem_context_param *param) {
break;
#endif
case I915_CONTEXT_PARAM_SSEU:
if (param->size == sizeof(NEO::GemContextParamSseu) && param->value != 0 && param->ctx_id == 0) {
if (param->size == sizeof(NEO::GemContextParamSseu) && param->value != 0 && param->contextId == 0) {
ret = failOnSetParamSseu;
} else {
ret = -1;
@@ -198,12 +198,12 @@ int drmSetContextParam(drm_i915_gem_context_param *param) {
}
return ret;
}
int drmGetContextParam(drm_i915_gem_context_param *param) {
int drmGetContextParam(NEO::GemContextParam *param) {
int ret = 0;
switch (param->param) {
case I915_CONTEXT_PARAM_SSEU:
if (param->size == sizeof(NEO::GemContextParamSseu) && param->value != 0 && param->ctx_id == 0) {
if (param->size == sizeof(NEO::GemContextParamSseu) && param->value != 0 && param->contextId == 0) {
ret = failOnGetParamSseu;
} else {
ret = -1;
@@ -296,10 +296,10 @@ int ioctl(int fd, unsigned long int request, ...) throw() {
res = drmGetParam(va_arg(vl, drm_i915_getparam_t *));
break;
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM:
res = drmSetContextParam(va_arg(vl, drm_i915_gem_context_param *));
res = drmSetContextParam(va_arg(vl, NEO::GemContextParam *));
break;
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM:
res = drmGetContextParam(va_arg(vl, drm_i915_gem_context_param *));
res = drmGetContextParam(va_arg(vl, NEO::GemContextParam *));
break;
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT:
res = drmContextCreate(va_arg(vl, drm_i915_gem_context_create_ext *));

View File

@@ -301,7 +301,7 @@ TEST(DrmTest, givenDrmPreemptionEnabledAndLowPriorityEngineWhenCreatingOsContext
OsContextLinux osContext4(drmMock, 0u, EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_RCS, EngineUsage::LowPriority}));
osContext4.ensureContextInitialized();
EXPECT_EQ(5u, drmMock.receivedContextParamRequestCount);
EXPECT_EQ(drmMock.storedDrmContextId, drmMock.receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmMock.storedDrmContextId, drmMock.receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_PRIORITY), drmMock.receivedContextParamRequest.param);
EXPECT_EQ(static_cast<uint64_t>(-1023), drmMock.receivedContextParamRequest.value);
EXPECT_EQ(0u, drmMock.receivedContextParamRequest.size);

View File

@@ -986,7 +986,7 @@ GraphicsAllocation *DrmMemoryManager::createGraphicsAllocationFromExistingStorag
uint64_t DrmMemoryManager::getSystemSharedMemory(uint32_t rootDeviceIndex) {
uint64_t hostMemorySize = MemoryConstants::pageSize * (uint64_t)(sysconf(_SC_PHYS_PAGES));
drm_i915_gem_context_param getContextParam = {};
GemContextParam getContextParam = {};
getContextParam.param = I915_CONTEXT_PARAM_GTT_SIZE;
[[maybe_unused]] auto ret = getDrm(rootDeviceIndex).ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &getContextParam);
DEBUG_BREAK_IF(ret != 0);

View File

@@ -295,7 +295,7 @@ int Drm::getExecSoftPin(int &execSoftPin) {
}
int Drm::enableTurboBoost() {
drm_i915_gem_context_param contextParam = {};
GemContextParam contextParam = {};
contextParam.param = I915_CONTEXT_PRIVATE_PARAM_BOOST;
contextParam.value = 1;
@@ -319,7 +319,7 @@ std::string Drm::getSysFsPciPath() {
}
int Drm::queryGttSize(uint64_t &gttSizeOutput) {
drm_i915_gem_context_param contextParam = {0};
GemContextParam contextParam = {0};
contextParam.param = I915_CONTEXT_PARAM_GTT_SIZE;
int ret = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &contextParam);
@@ -361,8 +361,8 @@ void Drm::checkQueueSliceSupport() {
}
void Drm::setLowPriorityContextParam(uint32_t drmContextId) {
drm_i915_gem_context_param gcp = {};
gcp.ctx_id = drmContextId;
GemContextParam gcp = {};
gcp.contextId = drmContextId;
gcp.param = I915_CONTEXT_PARAM_PRIORITY;
gcp.value = -1023;
@@ -371,7 +371,7 @@ void Drm::setLowPriorityContextParam(uint32_t drmContextId) {
}
int Drm::getQueueSliceCount(GemContextParamSseu *sseu) {
drm_i915_gem_context_param contextParam = {};
GemContextParam contextParam = {};
contextParam.param = I915_CONTEXT_PARAM_SSEU;
sseu->engine.engineClass = I915_ENGINE_CLASS_RENDER;
sseu->engine.engineInstance = I915_EXEC_DEFAULT;
@@ -386,11 +386,11 @@ uint64_t Drm::getSliceMask(uint64_t sliceCount) {
}
bool Drm::setQueueSliceCount(uint64_t sliceCount) {
if (sliceCountChangeSupported) {
drm_i915_gem_context_param contextParam = {};
GemContextParam contextParam = {};
sseu.sliceMask = getSliceMask(sliceCount);
contextParam.param = I915_CONTEXT_PARAM_SSEU;
contextParam.ctx_id = 0;
contextParam.contextId = 0;
contextParam.value = reinterpret_cast<uint64_t>(&sseu);
contextParam.size = sizeof(struct GemContextParamSseu);
int retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, &contextParam);
@@ -402,7 +402,7 @@ bool Drm::setQueueSliceCount(uint64_t sliceCount) {
}
void Drm::checkNonPersistentContextsSupport() {
drm_i915_gem_context_param contextParam = {};
GemContextParam contextParam = {};
contextParam.param = I915_CONTEXT_PARAM_PERSISTENCE;
auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &contextParam);
@@ -414,16 +414,16 @@ void Drm::checkNonPersistentContextsSupport() {
}
void Drm::setNonPersistentContext(uint32_t drmContextId) {
drm_i915_gem_context_param contextParam = {};
contextParam.ctx_id = drmContextId;
GemContextParam contextParam = {};
contextParam.contextId = drmContextId;
contextParam.param = I915_CONTEXT_PARAM_PERSISTENCE;
ioctl(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, &contextParam);
}
void Drm::setUnrecoverableContext(uint32_t drmContextId) {
drm_i915_gem_context_param contextParam = {};
contextParam.ctx_id = drmContextId;
GemContextParam contextParam = {};
contextParam.contextId = drmContextId;
contextParam.param = I915_CONTEXT_PARAM_RECOVERABLE;
contextParam.value = 0;
contextParam.size = 0;
@@ -482,8 +482,8 @@ void Drm::destroyDrmVirtualMemory(uint32_t drmVmId) {
}
int Drm::queryVmId(uint32_t drmContextId, uint32_t &vmId) {
drm_i915_gem_context_param param{};
param.ctx_id = drmContextId;
GemContextParam param{};
param.contextId = drmContextId;
param.value = 0;
param.param = I915_CONTEXT_PARAM_VM;
auto retVal = this->ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &param);
@@ -1315,8 +1315,8 @@ unsigned int Drm::bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, au
}
}
drm_i915_gem_context_param param{};
param.ctx_id = drmContextId;
GemContextParam param{};
param.contextId = drmContextId;
param.size = static_cast<uint32_t>(ptrDiff(contextEngines.engines + numEnginesInContext, &contextEngines));
param.param = I915_CONTEXT_PARAM_ENGINES;
param.value = castToUint64(&contextEngines);

View File

@@ -98,4 +98,10 @@ static_assert(offsetof(GemSetDomain, handle) == offsetof(drm_i915_gem_set_domain
static_assert(offsetof(GemSetDomain, readDomains) == offsetof(drm_i915_gem_set_domain, read_domains));
static_assert(offsetof(GemSetDomain, writeDomain) == offsetof(drm_i915_gem_set_domain, write_domain));
static_assert(sizeof(GemContextParam) == sizeof(drm_i915_gem_context_param));
static_assert(offsetof(GemContextParam, contextId) == offsetof(drm_i915_gem_context_param, ctx_id));
static_assert(offsetof(GemContextParam, size) == offsetof(drm_i915_gem_context_param, size));
static_assert(offsetof(GemContextParam, param) == offsetof(drm_i915_gem_context_param, param));
static_assert(offsetof(GemContextParam, value) == offsetof(drm_i915_gem_context_param, value));
} // namespace NEO

View File

@@ -110,4 +110,12 @@ struct GemSetDomain {
uint32_t readDomains;
uint32_t writeDomain;
};
struct GemContextParam {
uint32_t contextId;
uint32_t size;
uint64_t param;
uint64_t value;
};
} // namespace NEO

View File

@@ -86,7 +86,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
receivedContextCreateSetParam = *reinterpret_cast<drm_i915_gem_context_create_ext_setparam *>(create->extensions);
if (receivedContextCreateSetParam.base.name == I915_CONTEXT_CREATE_EXT_SETPARAM) {
receivedContextParamRequestCount++;
receivedContextParamRequest = receivedContextCreateSetParam.param;
receivedContextParamRequest = *reinterpret_cast<GemContextParam *>(&receivedContextCreateSetParam.param);
if (receivedContextCreateSetParam.param.param == I915_CONTEXT_PARAM_VM) {
return this->storedRetVal;
}
@@ -103,7 +103,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM) && (arg != nullptr)) {
ioctlCount.contextSetParam++;
receivedContextParamRequestCount++;
receivedContextParamRequest = *static_cast<drm_i915_gem_context_param *>(arg);
receivedContextParamRequest = *static_cast<GemContextParam *>(arg);
if (receivedContextParamRequest.param == I915_CONTEXT_PARAM_PRIORITY) {
return this->storedRetVal;
}
@@ -131,9 +131,9 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM) && (arg != nullptr)) {
ioctlCount.contextGetParam++;
receivedContextParamRequestCount++;
receivedContextParamRequest = *static_cast<drm_i915_gem_context_param *>(arg);
receivedContextParamRequest = *static_cast<GemContextParam *>(arg);
if (receivedContextParamRequest.param == I915_CONTEXT_PARAM_GTT_SIZE) {
static_cast<drm_i915_gem_context_param *>(arg)->value = this->storedGTTSize;
static_cast<GemContextParam *>(arg)->value = this->storedGTTSize;
return this->storedRetValForGetGttSize;
}
if (receivedContextParamRequest.param == I915_CONTEXT_PARAM_SSEU) {
@@ -143,12 +143,12 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
return this->storedRetValForGetSSEU;
}
if (receivedContextParamRequest.param == I915_CONTEXT_PARAM_PERSISTENCE) {
static_cast<drm_i915_gem_context_param *>(arg)->value = this->storedPersistentContextsSupport;
static_cast<GemContextParam *>(arg)->value = this->storedPersistentContextsSupport;
return this->storedRetValForPersistant;
}
if (receivedContextParamRequest.param == I915_CONTEXT_PARAM_VM) {
static_cast<drm_i915_gem_context_param *>(arg)->value = this->storedRetValForVmId;
static_cast<GemContextParam *>(arg)->value = this->storedRetValForVmId;
return 0u;
}
}

View File

@@ -204,7 +204,7 @@ class DrmMock : public Drm {
uint32_t ioctlCallsCount = 0;
uint32_t receivedContextParamRequestCount = 0;
drm_i915_gem_context_param receivedContextParamRequest = {};
GemContextParam receivedContextParamRequest = {};
uint64_t receivedRecoverableContextValue = std::numeric_limits<uint64_t>::max();
bool queryPageFaultSupportCalled = false;

View File

@@ -51,7 +51,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
}
} break;
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM: {
auto gp = static_cast<drm_i915_gem_context_param *>(arg);
auto gp = static_cast<GemContextParam *>(arg);
if (gp->param == PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAGS) {
gp->value = contextDebugSupported ? PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAG_SIP << 32 : 0;
return 0;
@@ -194,10 +194,10 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
return 0;
} break;
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM: {
const auto req = reinterpret_cast<drm_i915_gem_context_param *>(arg);
const auto req = reinterpret_cast<GemContextParam *>(arg);
if (req->param == PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAGS) {
receivedSetContextParamValue = req->value;
receivedSetContextParamCtxId = req->ctx_id;
receivedSetContextParamCtxId = req->contextId;
}
return !contextDebugSupported ? EINVAL : 0;

View File

@@ -165,7 +165,7 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM: {
ioctl_cnt.contextGetParam++;
auto getContextParam = (drm_i915_gem_context_param *)arg;
auto getContextParam = static_cast<NEO::GemContextParam *>(arg);
recordedGetContextParam = *getContextParam;
getContextParam->value = getContextParamRetValue;
} break;

View File

@@ -201,7 +201,7 @@ class DrmMockCustom : public Drm {
drm_i915_getparam_t recordedGetParam = {0};
int getParamRetValue = 0;
//DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM
drm_i915_gem_context_param recordedGetContextParam = {0};
NEO::GemContextParam recordedGetContextParam = {0};
__u64 getContextParamRetValue = 0;
//DRM_IOCTL_I915_GEM_WAIT
int64_t gemWaitTimeout = 0;

View File

@@ -143,7 +143,7 @@ static void givenEngineTypeWhenBindingDrmContextThenContextParamEngineIsSet(std:
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(haveLocalMemory ? 4u : 3u, drm->ioctlCallsCount);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(enginesStruct.engines + 1u, &enginesStruct), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -170,7 +170,7 @@ static void givenBcsEngineTypeWhenBindingDrmContextThenContextParamEngineIsSet(s
auto engineFlag = drm->bindDrmContext(drmContextId, tileId, engineType, false);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
auto extensions = drm->receivedContextParamEngines.extensions;
EXPECT_NE(0ull, extensions);
@@ -261,7 +261,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmTestXeHPAndLater, givenLinkBcsEngineWithoutMainC
} else {
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
auto extensions = drm->receivedContextParamEngines.extensions;
EXPECT_NE(0ull, extensions);
@@ -307,7 +307,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmTestXeHPAndLater, giveNotAllLinkBcsEnginesWhenBi
if (drm->supportedCopyEnginesMask.test(engineIndex)) {
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
auto extensions = drm->receivedContextParamEngines.extensions;
EXPECT_NE(0ull, extensions);
@@ -440,7 +440,7 @@ HWTEST2_F(DrmTestXeHPCAndLater, givenBcsVirtualEnginesDisabledWhenCreatingContex
auto engineFlag = drm->bindDrmContext(drmContextId, 0u, engineType, false);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -482,7 +482,7 @@ TEST(DrmTest, givenVirtualEnginesEnabledWhenCreatingContextThenEnableLoadBalanci
auto engineFlag = drm->bindDrmContext(drmContextId, 0u, engineType, false);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1 + numberOfCCS, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -524,7 +524,7 @@ TEST(DrmTest, givenVirtualEnginesEnabledWhenCreatingContextThenEnableLoadBalanci
auto engineFlag = drm->bindDrmContext(drmContextId, 0u, engineType, false);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1 + numberOfCCS, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -590,7 +590,7 @@ TEST(DrmTest, givenVirtualEnginesDisabledWhenCreatingContextThenDontEnableLoadBa
auto engineFlag = drm->bindDrmContext(drmContextId, 0u, engineType, false);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -621,7 +621,7 @@ TEST(DrmTest, givenEngineInstancedDeviceWhenCreatingContextThenDontUseVirtualEng
auto engineFlag = drm->bindDrmContext(drmContextId, 0u, engineType, true);
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -649,7 +649,7 @@ TEST(DrmTest, givenVirtualEnginesEnabledAndNotEnoughCcsEnginesWhenCreatingContex
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;
@@ -675,7 +675,7 @@ TEST(DrmTest, givenVirtualEnginesEnabledAndNonCcsEnginesWhenCreatingContextThenD
EXPECT_EQ(static_cast<unsigned int>(I915_EXEC_DEFAULT), engineFlag);
EXPECT_EQ(1u, drm->receivedContextParamRequestCount);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.ctx_id);
EXPECT_EQ(drmContextId, drm->receivedContextParamRequest.contextId);
EXPECT_EQ(static_cast<uint64_t>(I915_CONTEXT_PARAM_ENGINES), drm->receivedContextParamRequest.param);
EXPECT_EQ(ptrDiff(drm->receivedContextParamEngines.engines + 1, &drm->receivedContextParamEngines), drm->receivedContextParamRequest.size);
auto extensions = drm->receivedContextParamEngines.extensions;