intel: Add and use intel_gem_create_context()

Add intel_gem_create_context() to common/intel_gem.c/h and use it
on Iris, Crocus, ANV and HASVK.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18974>
This commit is contained in:
José Roberto de Souza
2022-10-05 08:20:47 -07:00
committed by Marge Bot
parent ce4a7e7d40
commit f928ead625
14 changed files with 28 additions and 68 deletions
+10
View File
@@ -58,6 +58,16 @@ intel_gem_supports_syncobj_wait(int fd)
return ret == -1 && errno == ETIME;
}
bool
intel_gem_create_context(int fd, uint32_t *context_id)
{
struct drm_i915_gem_context_create create = {};
if (intel_ioctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create))
return false;
*context_id = create.ctx_id;
return true;
}
bool
intel_gem_create_context_engines(int fd,
const struct intel_query_engine_info *info,
+1
View File
@@ -159,6 +159,7 @@ intel_i915_query_alloc(int fd, uint64_t query_id, int32_t *query_length)
bool intel_gem_supports_syncobj_wait(int fd);
bool intel_gem_create_context(int fd, uint32_t *context_id);
bool
intel_gem_create_context_engines(int fd,
const struct intel_query_engine_info *info,
+1 -1
View File
@@ -124,7 +124,7 @@ if with_tests and not with_platform_android
],
gnu_symbol_visibility : 'hidden',
include_directories : [inc_include, inc_src, inc_intel],
link_with : [libintel_dev],
link_with : [libintel_dev, libintel_common],
dependencies : [dep_libdrm, idep_gtest, idep_genxml, idep_mesautil],
install : install_intel_gpu_tests,
)
+3 -5
View File
@@ -28,6 +28,7 @@
#include <gtest/gtest.h>
#include "c99_compat.h"
#include "common/intel_gem.h"
#include "dev/intel_device_info.h"
#include "drm-uapi/i915_drm.h"
#include "genxml/gen_macros.h"
@@ -128,7 +129,7 @@ public:
}
int fd;
int ctx_id;
uint32_t ctx_id;
intel_device_info devinfo;
uint32_t batch_bo_handle;
@@ -209,10 +210,7 @@ mi_builder_test::SetUp()
}
ASSERT_TRUE(i < max_devices) << "Failed to find a DRM device";
drm_i915_gem_context_create ctx_create = drm_i915_gem_context_create();
ASSERT_EQ(drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE,
(void *)&ctx_create), 0) << strerror(errno);
ctx_id = ctx_create.ctx_id;
ASSERT_TRUE(intel_gem_create_context(fd, &ctx_id)) << strerror(errno);
if (GFX_VER >= 8) {
/* On gfx8+, we require softpin */