diff options
author | Rob Clark <robclark@freedesktop.org> | 2017-08-23 17:08:39 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2017-11-04 17:23:20 -0400 |
commit | 7064b2eae9c136162e5c7f25571d63f71d066887 (patch) | |
tree | 6c5a1c056465be9af38b1bce6904999d839288f0 /freedreno/freedreno_pipe.c | |
parent | 62e0767b816cb52b35226d439090ef580bd60b01 (diff) | |
download | drm-7064b2eae9c136162e5c7f25571d63f71d066887.tar.gz |
freedreno: submit-queue context priority
With a new-enough kernel to support prioritized submit-queues, we can
expose priority level support to mesa. Open a submit queue associated
with the fd_pipe and pass it's id back to SUBMIT ioctl.
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Diffstat (limited to 'freedreno/freedreno_pipe.c')
-rw-r--r-- | freedreno/freedreno_pipe.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/freedreno/freedreno_pipe.c b/freedreno/freedreno_pipe.c index e69cb28c..1540474b 100644 --- a/freedreno/freedreno_pipe.c +++ b/freedreno/freedreno_pipe.c @@ -33,8 +33,12 @@ #include "freedreno_drmif.h" #include "freedreno_priv.h" +/** + * priority of zero is highest priority, and higher numeric values are + * lower priorities + */ struct fd_pipe * -fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id) +fd_pipe_new2(struct fd_device *dev, enum fd_pipe_id id, uint32_t prio) { struct fd_pipe *pipe; uint64_t val; @@ -44,7 +48,12 @@ fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id) return NULL; } - pipe = dev->funcs->pipe_new(dev, id); + if ((prio != 1) && (fd_device_version(dev) < FD_VERSION_SUBMIT_QUEUES)) { + ERROR_MSG("invalid priority!"); + return NULL; + } + + pipe = dev->funcs->pipe_new(dev, id, prio); if (!pipe) { ERROR_MSG("allocation failed"); return NULL; @@ -59,6 +68,12 @@ fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id) return pipe; } +struct fd_pipe * +fd_pipe_new(struct fd_device *dev, enum fd_pipe_id id) +{ + return fd_pipe_new2(dev, id, 1); +} + void fd_pipe_del(struct fd_pipe *pipe) { pipe->funcs->destroy(pipe); |