From: Thierry Reding <thierry.reding@gmail.com>
To: "Stéphane Marchesin" <marcheu@chromium.org>
Cc: linux-tegra@vger.kernel.org, linux-api@vger.kernel.org,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH 2/4] drm/tegra: Add SET/GET_TILING IOCTLs
Date: Thu, 12 Jun 2014 09:01:01 +0200 [thread overview]
Message-ID: <20140612070100.GA17027@ulmo> (raw)
In-Reply-To: <CADMs+9YJgP7GqG0qhaTzd8QtANnTb4yFq2GkAYiS_U+HFw+e0w@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2519 bytes --]
On Wed, Jun 11, 2014 at 10:43:30AM -0700, Stéphane Marchesin wrote:
> On Tue, Jun 10, 2014 at 4:04 AM, Thierry Reding
> <thierry.reding@gmail.com> wrote:
> > From: Thierry Reding <treding@nvidia.com>
> >
> > Currently the tiling parameters of buffer objects can only be set at
> > allocation time, and only a single tiled mode is supported. This new
> > DRM_TEGRA_GEM_SET_TILING IOCTL allows more modes to be set and also
> > allows the tiling mode to be changed after the allocation. This will
> > enable the Tegra DRM driver to import buffers from a GPU and directly
> > scan them out by configuring the display controller appropriately.
>
> I was wondering why not support the new tiling modes on creation as
> well, I guess because you don't have room for height in the creation
> ioctl?
Yes, back at the time when the GEM_CREATE IOCTL was added we only left
enough room for "flags", so it'll be difficult to add support for the
newer tiling modes.
One possibility that I see is to extend struct drm_tegra_gem_create in a
backwards-compatible way and make new fields dependent on some new flag,
somewhat like this:
#define DRM_TEGRA_GEM_CREATE_BLOCK_LINEAR (1 << 3)
struct drm_tegra_gem_create {
__u64 size;
__u32 flags;
__u32 handle;
__u32 height;
__u32 pad;
};
Then the DRM driver can parse the height field only if the BLOCK_LINEAR
flag is set.
To be honest, though, I'd prefer to deprecate the flags at creation if
these patches get merged so that we can have a standard way of setting
these rather than a few.
Do you see any particular advantages in specifying the tiling mode at
creation time?
> > diff --git a/include/uapi/drm/tegra_drm.h b/include/uapi/drm/tegra_drm.h
> > index b75482112428..0829f75eb986 100644
> > --- a/include/uapi/drm/tegra_drm.h
> > +++ b/include/uapi/drm/tegra_drm.h
> > @@ -129,6 +129,27 @@ struct drm_tegra_submit {
> > __u32 reserved[5]; /* future expansion */
> > };
> >
> > +#define DRM_TEGRA_GEM_TILING_MODE_PITCH 0
> > +#define DRM_TEGRA_GEM_TILING_MODE_TILED 1
> > +#define DRM_TEGRA_GEM_TILING_MODE_BLOCK 2
> > +
> > +struct drm_tegra_gem_set_tiling {
> > + /* input */
> > + __u32 handle;
> > + __u32 mode;
> > + __u32 value;
>
> This seems to only be used for height, if so should it be called height?
The idea here was to have a generic name here so that it could be more
easily extended if/when newer tiling modes are introduced.
Thierry
[-- Attachment #1.2: Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2014-06-12 7:01 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-10 11:04 [PATCH 1/4] drm/tegra: Implement more tiling modes Thierry Reding
[not found] ` <1402398294-10252-1-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-06-10 11:04 ` [PATCH 2/4] drm/tegra: Add SET/GET_TILING IOCTLs Thierry Reding
[not found] ` <1402398294-10252-2-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-06-11 17:43 ` Stéphane Marchesin
2014-06-12 7:01 ` Thierry Reding [this message]
2014-06-10 11:04 ` [PATCH 3/4] drm/tegra: Add SET/GET_FLAGS IOCTLs Thierry Reding
[not found] ` <1402398294-10252-3-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-06-11 16:21 ` Stéphane Marchesin
2014-06-12 7:18 ` Thierry Reding
2014-06-12 9:28 ` Daniel Vetter
2014-06-12 11:02 ` Thierry Reding
2014-06-10 11:04 ` [PATCH 4/4] drm/tegra: Allow non-authenticated processes to create buffer objects Thierry Reding
[not found] ` <1402398294-10252-4-git-send-email-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-06-11 16:17 ` Stéphane Marchesin
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=20140612070100.GA17027@ulmo \
--to=thierry.reding@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=marcheu@chromium.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).