From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: "Zhou, David(ChunMing)" <David1.Zhou@amd.com>,
Lionel Landwerlin <lionel.g.landwerlin@intel.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>
Cc: Dave Airlie <airlied@redhat.com>,
"Koenig, Christian" <Christian.Koenig@amd.com>,
Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH v2] drm: introduce a capability flag for syncobj timeline support
Date: Tue, 16 Apr 2019 15:47:16 +0200 [thread overview]
Message-ID: <e9b064f1-24bb-ce54-c29b-caa25f77e89c@gmail.com> (raw)
In-Reply-To: <g473ssb6g9in1c36xw9ju8l5wdtvp-gvzol4w0y5mw-vlv3bo-vpqqv0-zerdqu2r22c19rx4b444q5wxby0nnbgied56objhf-84ko14jpv2kg-7irzs22147wm852jmw-8a0k7hka8nozq4k7d5.1555420499452@email.android.com>
[-- Attachment #1.1: Type: text/plain, Size: 5097 bytes --]
I can't judge if that UAPI is actually sufficient, but the rest still
looks good to me.
Acked-by: Christian König <christian.koenig@amd.com>
Christian.
Am 16.04.19 um 15:15 schrieb Zhou, David(ChunMing):
> Reviewed-by: Chunming Zhou <david1.zhou@amd.com> for series.
>
> -------- Original Message --------
> Subject: [PATCH v2] drm: introduce a capability flag for syncobj
> timeline support
> From: Lionel Landwerlin
> To: dri-devel@lists.freedesktop.org
> CC: Lionel Landwerlin ,"Koenig, Christian" ,Dave Airlie ,Daniel Vetter
> ,"Zhou, David(ChunMing)"
>
> Unfortunately userspace users of this API cannot be publicly disclosed
> yet.
>
> This commit effectively disables timeline syncobj ioctls for all
> drivers. Each driver wishing to support this feature will need to
> expose DRIVER_SYNCOBJ_TIMELINE.
>
> v2: Add uAPI capability check (Christian)
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> Reviewed-by: Christian König <christian.koenig@amd.com> (v1)
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Chunming Zhou <david1.zhou@amd.com>
> ---
> drivers/gpu/drm/drm_ioctl.c | 3 +++
> drivers/gpu/drm/drm_syncobj.c | 10 +++++-----
> include/drm/drm_drv.h | 7 +++++++
> include/uapi/drm/drm.h | 1 +
> 4 files changed, 16 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
> index d337f161909c..15ca94338d55 100644
> --- a/drivers/gpu/drm/drm_ioctl.c
> +++ b/drivers/gpu/drm/drm_ioctl.c
> @@ -245,6 +245,9 @@ static int drm_getcap(struct drm_device *dev, void
> *data, struct drm_file *file_
> case DRM_CAP_SYNCOBJ:
> req->value = drm_core_check_feature(dev, DRIVER_SYNCOBJ);
> return 0;
> + case DRM_CAP_SYNCOBJ_TIMELINE:
> + req->value = drm_core_check_feature(dev,
> DRIVER_SYNCOBJ_TIMELINE);
> + return 0;
> }
>
> /* Other caps only work with KMS drivers */
> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
> index fb65f13d25cf..72a38ff6e3e4 100644
> --- a/drivers/gpu/drm/drm_syncobj.c
> +++ b/drivers/gpu/drm/drm_syncobj.c
> @@ -755,7 +755,7 @@ drm_syncobj_transfer_ioctl(struct drm_device *dev,
> void *data,
> struct drm_syncobj_transfer *args = data;
> int ret;
>
> - if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
> + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
> return -EOPNOTSUPP;
>
> if (args->pad)
> @@ -1106,7 +1106,7 @@ drm_syncobj_timeline_wait_ioctl(struct
> drm_device *dev, void *data,
> struct drm_syncobj **syncobjs;
> int ret = 0;
>
> - if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
> + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
> return -EOPNOTSUPP;
>
> if (args->flags & ~(DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL |
> @@ -1210,7 +1210,7 @@ drm_syncobj_timeline_signal_ioctl(struct
> drm_device *dev, void *data,
> uint32_t i, j;
> int ret;
>
> - if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
> + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
> return -EOPNOTSUPP;
>
> if (args->pad != 0)
> @@ -1281,8 +1281,8 @@ int drm_syncobj_query_ioctl(struct drm_device
> *dev, void *data,
> uint32_t i;
> int ret;
>
> - if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
> - return -ENODEV;
> + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
> + return -EOPNOTSUPP;
>
> if (args->pad != 0)
> return -EINVAL;
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 5cc7f728ec73..68ca736c548d 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -91,6 +91,13 @@ enum drm_driver_feature {
> * submission.
> */
> DRIVER_SYNCOBJ = BIT(5),
> + /**
> + * @DRIVER_SYNCOBJ_TIMELINE:
> + *
> + * Driver supports the timeline flavor of &drm_syncobj for
> explicit
> + * synchronization of command submission.
> + */
> + DRIVER_SYNCOBJ_TIMELINE = BIT(6),
>
> /* IMPORTANT: Below are all the legacy flags, add new ones
> above. */
>
> diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
> index 236b01a1fabf..661d73f9a919 100644
> --- a/include/uapi/drm/drm.h
> +++ b/include/uapi/drm/drm.h
> @@ -649,6 +649,7 @@ struct drm_gem_open {
> #define DRM_CAP_PAGE_FLIP_TARGET 0x11
> #define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
> #define DRM_CAP_SYNCOBJ 0x13
> +#define DRM_CAP_SYNCOBJ_TIMELINE 0x14
>
> /** DRM_IOCTL_GET_CAP ioctl argument type */
> struct drm_get_cap {
> --
> 2.21.0.392.gf8f6787159e
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
[-- Attachment #1.2: Type: text/html, Size: 9043 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-04-16 13:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-16 12:30 [PATCH 1/2] drm: report consistent errors when checking syncobj capibility Lionel Landwerlin
2019-04-16 12:30 ` [PATCH 2/2] drm: introduce a capability flag for syncobj timeline support Lionel Landwerlin
2019-04-16 12:57 ` [PATCH v2] " Lionel Landwerlin
2019-04-16 13:15 ` Zhou, David(ChunMing)
2019-04-16 13:47 ` Christian König [this message]
2019-04-16 19:53 ` [PATCH " Dave Airlie
2019-05-01 9:00 ` Lionel Landwerlin
2019-04-16 12:40 ` [PATCH 1/2] drm: report consistent errors when checking syncobj capibility Christian König
2019-04-16 12:43 ` Daniel Vetter
2019-04-16 12:44 ` Koenig, Christian
2019-04-16 12:43 ` Lionel Landwerlin
-- strict thread matches above, loose matches on Subject: below --
2019-05-01 9:24 [PATCH v2] drm: introduce a capability flag for syncobj timeline support Koenig, Christian
2019-05-01 12:01 ` Dave Airlie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e9b064f1-24bb-ce54-c29b-caa25f77e89c@gmail.com \
--to=ckoenig.leichtzumerken@gmail.com \
--cc=Christian.Koenig@amd.com \
--cc=David1.Zhou@amd.com \
--cc=airlied@redhat.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=lionel.g.landwerlin@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.