drm/freedreno
Rob Clark 6f0f6cee5e freedreno: clamp priority based on # of rings
In case of a kernel that is new enough to support multiple submit-
queues, but with an adreno generation which doesn't support multiple
prioritized ringbuffers, we'd attempt to open a submit-queue with
prio=1 (medium), which is rejected by the kernel.

This could happen either w/ an older mesa (which uses fd_pipe_new())
or a newer mesa which defaults to prio=1 if no pipe context priority
flags are set.

The simple answer to fix both cases is to clamp the requested priority
according to the number of rings.  This might not do exactly what you
want, if we hypothetically had 2 rings (it would result in requested
medium priority being high priority instead of low priority).  But the
number of rings (for hw gen's that support this) is purely a software
construct, so the easy answer there is to have the kernel advertise at
least 3 rings if it supports more than one.  There isn't really any
reason to do otherwise.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
2018-01-26 15:29:10 -05:00
..
kgsl freedreno: submit-queue context priority 2017-11-04 17:23:20 -04:00
msm freedreno: clamp priority based on # of rings 2018-01-26 15:29:10 -05:00
Android.mk android: introduce Android.common.mk to reduce boilerplate 2017-01-27 15:48:16 +00:00
Makefile.am freedreno: valgrind support 2017-03-23 15:22:30 -04:00
Makefile.sources freedreno: move bo-cache to it's own file 2016-07-20 19:42:21 -04:00
freedreno-symbol-check freedreno: add the API fd_pipe_new2 to the symbol test 2017-11-07 11:21:32 +00:00
freedreno_bo.c freedreno: prevent deadlock in error path 2017-08-07 14:16:41 +01:00
freedreno_bo_cache.c freedreno: valgrind support 2017-03-23 15:22:30 -04:00
freedreno_device.c freedreno: fix double-free on exit 2017-04-15 14:43:17 -04:00
freedreno_drmif.h freedreno: submit-queue context priority 2017-11-04 17:23:20 -04:00
freedreno_pipe.c freedreno: submit-queue context priority 2017-11-04 17:23:20 -04:00
freedreno_priv.h freedreno: clamp priority based on # of rings 2018-01-26 15:29:10 -05:00
freedreno_ringbuffer.c freedreno: 64bit support 2016-11-26 12:51:38 -05:00
freedreno_ringbuffer.h freedreno: 64bit support 2016-11-26 12:51:38 -05:00
libdrm_freedreno.pc.in freedreno: add freedreno DRM 2013-02-14 12:13:15 -05:00
meson.build meson: set proper pkg-config version for libdrm_freedreno 2018-01-25 10:29:31 -08:00