From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1162258AbdD0GqH convert rfc822-to-8bit (ORCPT ); Thu, 27 Apr 2017 02:46:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57104 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1162238AbdD0Gpx (ORCPT ); Thu, 27 Apr 2017 02:45:53 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DB36C804F2 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=kraxel@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DB36C804F2 Message-ID: <1493275550.31995.31.camel@redhat.com> Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to drm_mode_legacy_fb_format From: Gerd Hoffmann To: Michel =?ISO-8859-1?Q?D=E4nzer?= Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, open list , amd-gfx@lists.freedesktop.org Date: Thu, 27 Apr 2017 08:45:50 +0200 In-Reply-To: <6bd62182-0de5-a8a7-78c3-029fc73ecc91@daenzer.net> References: <20170424062532.26722-1-kraxel@redhat.com> <20170424062532.26722-4-kraxel@redhat.com> <3b872a56-80b5-0c44-712f-a9517489eb24@daenzer.net> <1493185990.23739.7.camel@redhat.com> <8f91cc58-16dc-5899-66b6-06d430a18801@daenzer.net> <1493208671.23739.19.camel@redhat.com> <6bd62182-0de5-a8a7-78c3-029fc73ecc91@daenzer.net> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Mime-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 27 Apr 2017 06:45:52 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, > > That is done using the RADEON_TILING_SWAP_{16,32}BIT flag mentioned in > > another thread? > > Right. > > > > What about dumb bos? You've mentioned the swap flag isn't used for > > those. Which implies they are in little endian byte order (both gpu and > > cpu view). > > Right, AFAICT from looking at the code. Ok. And I also don't see an easy way to make them big endian (cpu view) using swapping with the existing drm interfaces, given we apply a format when we put the bo into use as framebuffer, not when creating it. So userspace can: (1) create dumb bo, (2) map bo, (3) write something bo, (4) create fb + attach to crtc. And at (3) we don't know the format yet, so we can't configure swapping accordingly. So just not using the swapping indeed looks like the only sensible option. Which in turn implies there is no BGRA8888 support for dumb bos. Hmm, I can see the problem. Userspace expectation appears to be that ADDFB configures a native endian framebuffer, which the driver simply can't do on bigendian. So, what can/should the driver do here? Throw errors for ADDFB and force userspace to use ADDFB2? From a design point of view the best option, but in the other hand I suspect that could break the xorg radeon driver ... cheers, Gerd From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to drm_mode_legacy_fb_format Date: Thu, 27 Apr 2017 08:45:50 +0200 Message-ID: <1493275550.31995.31.camel@redhat.com> References: <20170424062532.26722-1-kraxel@redhat.com> <20170424062532.26722-4-kraxel@redhat.com> <3b872a56-80b5-0c44-712f-a9517489eb24@daenzer.net> <1493185990.23739.7.camel@redhat.com> <8f91cc58-16dc-5899-66b6-06d430a18801@daenzer.net> <1493208671.23739.19.camel@redhat.com> <6bd62182-0de5-a8a7-78c3-029fc73ecc91@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <6bd62182-0de5-a8a7-78c3-029fc73ecc91-otUistvHUpPR7s880joybQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Michel =?ISO-8859-1?Q?D=E4nzer?= Cc: Daniel Vetter , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, open list , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org ICBIaSwKCj4gPiBUaGF0IGlzIGRvbmUgdXNpbmcgdGhlIFJBREVPTl9USUxJTkdfU1dBUF97MTYs MzJ9QklUIGZsYWcgbWVudGlvbmVkIGluCj4gPiBhbm90aGVyIHRocmVhZD8KPiAKPiBSaWdodC4K PiAKPiAKPiA+IFdoYXQgYWJvdXQgZHVtYiBib3M/ICBZb3UndmUgbWVudGlvbmVkIHRoZSBzd2Fw IGZsYWcgaXNuJ3QgdXNlZCBmb3IKPiA+IHRob3NlLiAgV2hpY2ggaW1wbGllcyB0aGV5IGFyZSBp biBsaXR0bGUgZW5kaWFuIGJ5dGUgb3JkZXIgKGJvdGggZ3B1IGFuZAo+ID4gY3B1IHZpZXcpLgo+ IAo+IFJpZ2h0LCBBRkFJQ1QgZnJvbSBsb29raW5nIGF0IHRoZSBjb2RlLgoKT2suCgpBbmQgSSBh bHNvIGRvbid0IHNlZSBhbiBlYXN5IHdheSB0byBtYWtlIHRoZW0gYmlnIGVuZGlhbiAoY3B1IHZp ZXcpCnVzaW5nIHN3YXBwaW5nIHdpdGggdGhlIGV4aXN0aW5nIGRybSBpbnRlcmZhY2VzLCBnaXZl biB3ZSBhcHBseSBhIGZvcm1hdAp3aGVuIHdlIHB1dCB0aGUgYm8gaW50byB1c2UgYXMgZnJhbWVi dWZmZXIsIG5vdCB3aGVuIGNyZWF0aW5nIGl0LiAgU28KdXNlcnNwYWNlIGNhbjogKDEpIGNyZWF0 ZSBkdW1iIGJvLCAoMikgbWFwIGJvLCAoMykgd3JpdGUgc29tZXRoaW5nIGJvLAooNCkgY3JlYXRl IGZiICsgYXR0YWNoIHRvIGNydGMuICBBbmQgYXQgKDMpIHdlIGRvbid0IGtub3cgdGhlIGZvcm1h dAp5ZXQsIHNvIHdlIGNhbid0IGNvbmZpZ3VyZSBzd2FwcGluZyBhY2NvcmRpbmdseS4KClNvIGp1 c3Qgbm90IHVzaW5nIHRoZSBzd2FwcGluZyBpbmRlZWQgbG9va3MgbGlrZSB0aGUgb25seSBzZW5z aWJsZQpvcHRpb24uICBXaGljaCBpbiB0dXJuIGltcGxpZXMgdGhlcmUgaXMgbm8gQkdSQTg4ODgg c3VwcG9ydCBmb3IgZHVtYgpib3MuICBIbW0sIEkgY2FuIHNlZSB0aGUgcHJvYmxlbS4gIFVzZXJz cGFjZSBleHBlY3RhdGlvbiBhcHBlYXJzIHRvIGJlCnRoYXQgQURERkIgY29uZmlndXJlcyBhIG5h dGl2ZSBlbmRpYW4gZnJhbWVidWZmZXIsIHdoaWNoIHRoZSBkcml2ZXIKc2ltcGx5IGNhbid0IGRv IG9uIGJpZ2VuZGlhbi4KClNvLCB3aGF0IGNhbi9zaG91bGQgdGhlIGRyaXZlciBkbyBoZXJlPyAg VGhyb3cgZXJyb3JzIGZvciBBRERGQiBhbmQKZm9yY2UgdXNlcnNwYWNlIHRvIHVzZSBBRERGQjI/ ICBGcm9tIGEgZGVzaWduIHBvaW50IG9mIHZpZXcgdGhlIGJlc3QKb3B0aW9uLCBidXQgaW4gdGhl IG90aGVyIGhhbmQgSSBzdXNwZWN0IHRoYXQgY291bGQgYnJlYWsgdGhlIHhvcmcgcmFkZW9uCmRy aXZlciAuLi4KCmNoZWVycywKICBHZXJkCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK