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

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