All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: amd-gfx@lists.freedesktop.org,
	"Michel Dänzer" <michel@daenzer.net>,
	"open list" <linux-kernel@vger.kernel.org>,
	dri-devel@lists.freedesktop.org,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH] drm: fourcc byteorder: brings header file comments in line with reality.
Date: Sat, 22 Apr 2017 23:59:25 +0200	[thread overview]
Message-ID: <1492898365.25675.77.camel@redhat.com> (raw)
In-Reply-To: <20170422100522.GS30290@intel.com>

  Hi,

> > I guess that makes changing drm_mode_legacy_fb_format + drivers a
> > reasonable option ...
> 
> Yeah, I came to the same conclusion after chatting with some
> folks on irc.
> 
> So my current idea is that we change any driver that wants to follow the
> CPU endianness to declare support for big endian formats if the CPU is
> big endian. Presumably these are mostly the virtual GPU drivers.

Agree.  Easy.

> Additonally we'll make the mapping performed by drm_mode_legacy_fb_format()
> driver controlled.

I don't think this is useful.  IMO drm_mode_legacy_fb_format should
return host endian formats unconditionally.

> That way drivers that got changed to follow CPU
> endianness can return a framebuffer that matches CPU endianness. And
> drivers that expect the GPU endianness to not depend on the CPU
> endianness will keep working as they do now. The downside is that users
> of the legacy addfb ioctl will need to magically know which endianness
> they will get, but that is apparently already the case.

Existing userspace expects host endian, and IMO we should maintain that
behavior.

> And users of
> addfb2 will keep on specifying the endianness explicitly with
> DRM_FORMAT_BIG_ENDIAN vs. 0.

I'd drop DRM_FORMAT_BIG_ENDIAN.

At least for the virt drivers it doesn't buy us anything.  They support
32bpp / 8 bpc formats only[1], and for those I can specify the
byteswapped format version without a bigendian flag because we have
fourccs for everything we need.


There is a WIP patch series at
https://www.kraxel.org/cgit/linux/log/?h=drm-byteorder

Needs more testing and better commit messages.  /me plans to polish &
post next week, but feel free to look and comment.

cheers,
  Gerd

[1] Everything else is a PITA to deal with on the host side because
    I can't offload that to pixman.  There is no support for
    PIXMAN_r5g6b5 or PIXMAN_x2b10g10r10 in non-host byte order.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Gerd Hoffmann <kraxel@redhat.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: "Christian König" <christian.koenig@amd.com>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"David Airlie" <airlied@linux.ie>,
	"Michel Dänzer" <michel@daenzer.net>,
	"open list" <linux-kernel@vger.kernel.org>,
	dri-devel@lists.freedesktop.org,
	"Pekka Paalanen" <ppaalanen@gmail.com>,
	"Sean Paul" <seanpaul@chromium.org>,
	amd-gfx@lists.freedesktop.org,
	"Alex Deucher" <alexdeucher@gmail.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Ilia Mirkin" <imirkin@alum.mit.edu>
Subject: Re: [PATCH] drm: fourcc byteorder: brings header file comments in line with reality.
Date: Sat, 22 Apr 2017 23:59:25 +0200	[thread overview]
Message-ID: <1492898365.25675.77.camel@redhat.com> (raw)
In-Reply-To: <20170422100522.GS30290@intel.com>

  Hi,

> > I guess that makes changing drm_mode_legacy_fb_format + drivers a
> > reasonable option ...
> 
> Yeah, I came to the same conclusion after chatting with some
> folks on irc.
> 
> So my current idea is that we change any driver that wants to follow the
> CPU endianness to declare support for big endian formats if the CPU is
> big endian. Presumably these are mostly the virtual GPU drivers.

Agree.  Easy.

> Additonally we'll make the mapping performed by drm_mode_legacy_fb_format()
> driver controlled.

I don't think this is useful.  IMO drm_mode_legacy_fb_format should
return host endian formats unconditionally.

> That way drivers that got changed to follow CPU
> endianness can return a framebuffer that matches CPU endianness. And
> drivers that expect the GPU endianness to not depend on the CPU
> endianness will keep working as they do now. The downside is that users
> of the legacy addfb ioctl will need to magically know which endianness
> they will get, but that is apparently already the case.

Existing userspace expects host endian, and IMO we should maintain that
behavior.

> And users of
> addfb2 will keep on specifying the endianness explicitly with
> DRM_FORMAT_BIG_ENDIAN vs. 0.

I'd drop DRM_FORMAT_BIG_ENDIAN.

At least for the virt drivers it doesn't buy us anything.  They support
32bpp / 8 bpc formats only[1], and for those I can specify the
byteswapped format version without a bigendian flag because we have
fourccs for everything we need.


There is a WIP patch series at
https://www.kraxel.org/cgit/linux/log/?h=drm-byteorder

Needs more testing and better commit messages.  /me plans to polish &
post next week, but feel free to look and comment.

cheers,
  Gerd

[1] Everything else is a PITA to deal with on the host side because
    I can't offload that to pixman.  There is no support for
    PIXMAN_r5g6b5 or PIXMAN_x2b10g10r10 in non-host byte order.

  reply	other threads:[~2017-04-22 21:59 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-21  7:58 [PATCH] drm: fourcc byteorder: brings header file comments in line with reality Gerd Hoffmann
2017-04-21  7:58 ` Gerd Hoffmann
2017-04-21  8:06 ` Pekka Paalanen
2017-04-21  8:06   ` Pekka Paalanen
2017-04-21  9:38   ` Gerd Hoffmann
2017-04-21  9:38     ` Gerd Hoffmann
     [not found]     ` <1492767508.25675.23.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-21  9:44       ` Ville Syrjälä
2017-04-21  9:44         ` Ville Syrjälä
     [not found] ` <20170421075825.6307-1-kraxel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-21  9:25   ` Ville Syrjälä
2017-04-21  9:25     ` Ville Syrjälä
2017-04-21  9:50     ` Gerd Hoffmann
2017-04-21  9:50       ` Gerd Hoffmann
     [not found]       ` <1492768218.25675.33.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-21 11:05         ` Ville Syrjälä
2017-04-21 11:05           ` Ville Syrjälä
2017-04-21 11:08       ` Ville Syrjälä
2017-04-21 11:08         ` Ville Syrjälä
     [not found]         ` <20170421110804.GH30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-21 11:40           ` Pekka Paalanen
2017-04-21 11:40             ` Pekka Paalanen
2017-04-21 11:49             ` Ville Syrjälä
2017-04-21 11:49               ` Ville Syrjälä
2017-04-21 12:02               ` Christian König
2017-04-21 11:41         ` Gerd Hoffmann
2017-04-21 11:41           ` Gerd Hoffmann
2017-04-21 11:42         ` Christian König
     [not found]           ` <f1b0ae60-b20e-ad52-7fbf-32f2c045f5fc-5C7GfCeVMHo@public.gmane.org>
2017-04-21 13:12             ` Gerd Hoffmann
2017-04-21 13:12               ` Gerd Hoffmann
     [not found]               ` <1492780323.25675.45.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-21 13:21                 ` Christian König
2017-04-21 13:21                   ` Christian König
2017-04-21 13:27                   ` Christian König
2017-04-21 13:27                     ` Christian König
     [not found]                     ` <fab1354d-bb5d-b196-a698-f465906ffc68-5C7GfCeVMHo@public.gmane.org>
2017-04-21 15:21                       ` Harry Wentland
2017-04-21 15:21                         ` Harry Wentland
2017-04-21 16:14                 ` Gerd Hoffmann
2017-04-21 16:14                   ` Gerd Hoffmann
     [not found]                   ` <1492791271.25675.57.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-22 10:05                     ` Ville Syrjälä
2017-04-22 10:05                       ` Ville Syrjälä
2017-04-22 21:59                       ` Gerd Hoffmann [this message]
2017-04-22 21:59                         ` Gerd Hoffmann
     [not found]                       ` <20170422100522.GS30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-24  6:57                         ` Michel Dänzer
2017-04-24  6:57                           ` Michel Dänzer
     [not found]                           ` <de9e5634-ca98-d0e4-e715-c48c860328b2-otUistvHUpPR7s880joybQ@public.gmane.org>
2017-04-24 13:03                             ` Ville Syrjälä
2017-04-24 13:03                               ` Ville Syrjälä
     [not found]                               ` <20170424130348.GV30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-25  1:12                                 ` Michel Dänzer
2017-04-25  1:12                                   ` Michel Dänzer
     [not found]                                   ` <d5c73823-4d63-c44d-8ba9-54f5e80c5497-otUistvHUpPR7s880joybQ@public.gmane.org>
2017-04-25  3:08                                     ` Michel Dänzer
2017-04-25  3:08                                       ` Michel Dänzer
2017-04-25 10:26                                   ` Ville Syrjälä
2017-04-25 10:26                                     ` Ville Syrjälä
     [not found]                                     ` <20170425102607.GL30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-26  2:10                                       ` Michel Dänzer
2017-04-26  2:10                                         ` Michel Dänzer
2017-05-11 21:23         ` Pavel Machek
2017-05-11 21:23           ` Pavel Machek
2017-05-12  9:10           ` Ville Syrjälä
2017-05-12  9:10             ` Ville Syrjälä
2017-04-21 14:49   ` Ilia Mirkin
2017-04-21 14:49     ` Ilia Mirkin
     [not found]     ` <CAKb7Uvgx2_O8y+HWGv8TEv0BqpXrLL5SdAt2d3gh6g69U6F=Sw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-21 16:59       ` Ville Syrjälä
2017-04-21 16:59         ` Ville Syrjälä
     [not found]         ` <20170421165907.GQ30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-22  5:07           ` Ilia Mirkin
2017-04-22  5:07             ` Ilia Mirkin
2017-04-22  9:50             ` Ville Syrjälä
2017-04-22  9:50               ` Ville Syrjälä
     [not found]               ` <20170422095056.GR30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-22 13:40                 ` Ilia Mirkin
2017-04-22 13:40                   ` Ilia Mirkin
2017-04-22 13:48                   ` Ilia Mirkin
2017-04-22 13:48                     ` Ilia Mirkin
     [not found]                     ` <CAKb7Uvig0J2rg=yJT4g8OuqR9RW4x2TzK-DA_zs_Qc_up4dACQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-22 19:24                       ` Ilia Mirkin
2017-04-22 19:24                         ` Ilia Mirkin
2017-04-24  6:33                         ` Michel Dänzer

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=1492898365.25675.77.camel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michel@daenzer.net \
    --cc=ville.syrjala@linux.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.