summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Engestrom <eric@igalia.com>2022-11-02 18:11:26 +0000
committerMarge Bot <emma+marge@anholt.net>2022-11-08 21:23:27 +0000
commit83b1cb936e757194010d77322fe60a999ed02605 (patch)
treea746f6f13478415fec93ec832dfa7383a4e0daef
parent2c5b1d0e3b111708f0a660b687fbc0231b4d19f3 (diff)
vc4: add DRM_VC4_CREATE_SHADER_BO support to drm-shim
Signed-off-by: Eric Engestrom <eric@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19305>
-rw-r--r--src/broadcom/drm-shim/vc4_noop.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/broadcom/drm-shim/vc4_noop.c b/src/broadcom/drm-shim/vc4_noop.c
index 3f85158e6df..b9c83db8313 100644
--- a/src/broadcom/drm-shim/vc4_noop.c
+++ b/src/broadcom/drm-shim/vc4_noop.c
@@ -51,6 +51,20 @@ vc4_ioctl_create_bo(int fd, unsigned long request, void *arg)
}
static int
+vc4_ioctl_create_shader_bo(int fd, unsigned long request, void *arg)
+{
+ struct shim_fd *shim_fd = drm_shim_fd_lookup(fd);
+ struct drm_vc4_create_shader_bo *create = arg;
+ struct shim_bo *bo = calloc(1, sizeof(*bo));
+
+ drm_shim_bo_init(bo, create->size);
+ create->handle = drm_shim_bo_get_handle(shim_fd, bo);
+ drm_shim_bo_put(bo);
+
+ return 0;
+}
+
+static int
vc4_ioctl_mmap_bo(int fd, unsigned long request, void *arg)
{
struct shim_fd *shim_fd = drm_shim_fd_lookup(fd);
@@ -101,6 +115,7 @@ vc4_ioctl_get_param(int fd, unsigned long request, void *arg)
static ioctl_fn_t driver_ioctls[] = {
[DRM_VC4_CREATE_BO] = vc4_ioctl_create_bo,
+ [DRM_VC4_CREATE_SHADER_BO] = vc4_ioctl_create_shader_bo,
[DRM_VC4_MMAP_BO] = vc4_ioctl_mmap_bo,
[DRM_VC4_GET_PARAM] = vc4_ioctl_get_param,
[DRM_VC4_GET_TILING] = vc4_ioctl_noop,