intel/stub: plug some gaps in our ioctl faking
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 9 Dec 2020 15:57:25 +0000 (17:57 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 9 Feb 2021 21:08:52 +0000 (21:08 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

src/intel/tools/intel_noop_drm_shim.c

index 839e2401db7bf7daa59f375acb537a1fc7be4984..aee48839f7769820d0b4b1a753ee267a8f72360d 100644 (file)
@@ -92,6 +92,22 @@ i915_ioctl_gem_mmap(int fd, unsigned long request, void *arg)
    return 0;
 }
 
+static int
+i915_ioctl_gem_userptr(int fd, unsigned long request, void *arg)
+{
+   struct shim_fd *shim_fd = drm_shim_fd_lookup(fd);
+   struct drm_i915_gem_userptr *userptr = arg;
+   struct i915_bo *bo = calloc(1, sizeof(*bo));
+
+   drm_shim_bo_init(&bo->base, userptr->user_size);
+
+   userptr->handle = drm_shim_bo_get_handle(shim_fd, &bo->base);
+
+   drm_shim_bo_put(&bo->base);
+
+   return 0;
+}
+
 static int
 i915_ioctl_gem_context_create(int fd, unsigned long request, void *arg)
 {
@@ -172,6 +188,9 @@ i915_ioctl_get_param(int fd, unsigned long request, void *arg)
    case I915_PARAM_HAS_EXEC_BATCH_FIRST:
       *gp->value = true;
       return 0;
+   case I915_PARAM_HAS_EXEC_TIMELINE_FENCES:
+      *gp->value = false;
+      return 0;
    case I915_PARAM_CMD_PARSER_VERSION:
       /* Most recent version in drivers/gpu/drm/i915/i915_cmd_parser.c */
       *gp->value = 10;
@@ -327,6 +346,8 @@ static ioctl_fn_t driver_ioctls[] = {
    [DRM_I915_GEM_EXECBUFFER2] = i915_ioctl_noop,
    [DRM_I915_GEM_EXECBUFFER2_WR] = i915_ioctl_noop,
 
+   [DRM_I915_GEM_USERPTR] = i915_ioctl_gem_userptr,
+
    [DRM_I915_GEM_GET_APERTURE] = i915_gem_get_aperture,
 
    [DRM_I915_REG_READ] = i915_ioctl_noop,
@@ -334,6 +355,7 @@ static ioctl_fn_t driver_ioctls[] = {
    [DRM_I915_GEM_SET_DOMAIN] = i915_ioctl_noop,
    [DRM_I915_GEM_GET_CACHING] = i915_ioctl_noop,
    [DRM_I915_GEM_SET_CACHING] = i915_ioctl_noop,
+   [DRM_I915_GEM_GET_TILING] = i915_ioctl_noop,
    [DRM_I915_GEM_MADVISE] = i915_ioctl_noop,
    [DRM_I915_GEM_WAIT] = i915_ioctl_noop,
    [DRM_I915_GEM_BUSY] = i915_ioctl_noop,