All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Kleiner <mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Keith Packard <keithp-aN4HjG94KOLQT0dZR+AlfA@public.gmane.org>,
	Daniel Vetter <daniel-/w4YWyX8dFk@public.gmane.org>
Cc: xorg-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: Proposal for RandR version 1.6, Leases and EDID-based output grabs
Date: Mon, 10 Apr 2017 19:47:23 +0200	[thread overview]
Message-ID: <ef1fb4fc-94b9-ed5c-f2c1-8ff0f003f132@gmail.com> (raw)
In-Reply-To: <864ly4glvd.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>

On 04/04/2017 06:48 PM, Keith Packard wrote:
> Daniel Vetter <daniel@ffwll.ch> writes:
>
>> Yeah I think that's a pretty neat idea to reduce the lease complexity even
>> more. If the VR compositor is unhappy and wants a different mode, it can
>> simply nuke the lease and as for a new one. Forgot to say that :-)
>
> Not sure it changes the lease complexity, but it reduces the potential
> interference with the X server after the lease is created.
>
> Hrm. Thinking about the impact on X a bit more, this seems hard - you
> can't just display the root window in the HMD, so you need a frame
> buffer to use. The VR compositor can construct this knowing the planned
> X mode, but, we then have to wire it through the whole X mode set
> infrastructure, which is not exactly set up to do that.
>
> I'll go look at the code in more detail, but I suspect the easiest
> plan will be to have the VR compositor set its own mode. That may fail
> if X is consuming too many display resources, but that doesn't seem
> significantly different from having the lease fail.
>
> This doesn't change the kernel API at all, so we can figure out the X
> bits separately from the kernel bits.
>

Hi,

as input from a highly interested future user of such api's:

An additional use case beyond VR compositors, at least highly valuable 
for my kind of apps (= neuroscience / vision science / medical research 
toolkits) would be to get fullscreen exclusive control over regular 
outputs / displays. My use cases run about 98% of the time in fullscreen 
exclusive mode and want as little interference from the windowing system 
/ desktop environment as possible, with as much low level control as 
possible. It still needs windowed mode for same cases and needs a 
windowing system up and running.

Atm. under X i have to hope that fullscreen unredirection works to get 
me page flipping for single display monoscopic stimulation and 
dual-display stereoscopic stuff. And then there's the popular "Regular 
desktop GUI for interaction" + separate displays for "fullscreen + page 
flipping for controlled presentation" case.

Atm. i have to use custom xorg.confs + dual/multi-x-screen + 
ZaphodHeads, a static configuration with all the logout/login dance / no 
display hotplug for configuration change. Workable under X (minus the 
occasional ZaphodHeads corner case bugs), but somewhat clunky.

So if this would give me a plug & play dynamic replacement for 
ZaphodHeads and xorg.conf fiddling that would be _very_ valuable.

The RRCreateLease requests looks as if i could get that for regular 
non-HMD video outputs as well?

And the RRCreateOutputGrab would be mostly to avoid flicker when 
plugging HMD's or other special purpose devices, but wouldn't be 
strictly needed for a regular X-client to get a lease on a set of outputs?

As far as controllable properties on a lease go, i'd find it very useful 
if i could have control over framebuffer formats, e.g., being able to 
select 10 bit scanout formats would be very useful, but is afaik 
something that X currently doesn't expose with most drivers, especially 
not for regular desktop mode.

Set/Get Gamma tables, dithering properties, other output properties, 
modesetting would be also important. On X i can do that via RandR, but 
in the Wayland world, much of this stuff is afaik often restricted to 
privileged clients or proprietary per-compositor protocols. That's a big 
upcoming problem for me in the Wayland world, and lease support could be 
a very good solution for me.

If the underlying DRM leases allow me to control this stuff, and Wayland 
would gain similar extensions to lease outputs for fullscreen exclusive 
control, i could have one drm/kms backend that can be mostly agnostic of 
X vs. Wayland / different Wayland compositor flavors.

Basically my vote to expose as much flexility in modesetting / 
properties for the exposed leases as possible on the kernel and X side.

thanks,
-mario

>
>
> _______________________________________________
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
>
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

  parent reply	other threads:[~2017-04-10 17:47 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-01 22:58 Proposal for RandR version 1.6, Leases and EDID-based output grabs "Keith Packard"
2017-04-02 15:43 ` Daniel Vetter
     [not found]   ` <20170402154302.zd7nmqf7vtcvgssu-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-02 19:58     ` Keith Packard
2017-04-03  7:45       ` Daniel Vetter
     [not found]         ` <20170403074528.c7vwoi3mg7yeojdr-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-03 16:41           ` Keith Packard
2017-04-03 22:07             ` Daniel Vetter
     [not found]               ` <20170403220749.5ujhdzuy6dnikwry-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-03 22:50                 ` Keith Packard
2017-04-04  7:02                   ` Daniel Vetter
     [not found]                     ` <20170404070242.rphtgg4yopek2sf7-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-04 15:53                       ` Keith Packard
2017-04-04 15:59                         ` Daniel Vetter
     [not found]                           ` <20170404155923.wllkgop2fyj7wydt-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-04 16:48                             ` Keith Packard
     [not found]                               ` <864ly4glvd.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-04-10 17:47                                 ` Mario Kleiner [this message]
2017-04-10 18:11                                   ` Keith Packard
2017-04-10 20:05                                     ` Mario Kleiner
     [not found]                                       ` <d6040e25-326c-90dd-bc47-d88e6823e9a3-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-10 21:16                                         ` Keith Packard
2017-04-10 18:45                       ` Alex Deucher
2017-04-10 19:39                         ` Keith Packard
2017-04-07  0:17 ` Michel Dänzer
     [not found]   ` <4caa78af-7dc8-fbcf-d2ca-285d4554f5c9-otUistvHUpPR7s880joybQ@public.gmane.org>
2017-04-07  3:02     ` Keith Packard
     [not found]       ` <86zifsyl6o.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-04-07  7:56         ` Pekka Paalanen
2017-04-09 17:27           ` Keith Packard
2017-04-10 11:35             ` Pekka Paalanen
2017-04-28 22:03               ` Keith Packard
     [not found]                 ` <86lgqkw5p6.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-02  7:39                   ` Pekka Paalanen
2017-05-02 14:45                     ` Keith Packard
     [not found]                       ` <868tmfl3lm.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-03  7:08                         ` Pekka Paalanen
2017-05-04  2:04                           ` Keith Packard
     [not found]                             ` <86tw5174y1.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-04  8:13                               ` Pekka Paalanen
2017-05-04 18:02                                 ` Keith Packard
     [not found]                                   ` <86inlg7b5n.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-05  8:20                                     ` Pekka Paalanen
2017-05-05 14:25                                       ` Keith Packard
2017-05-06 11:34                                         ` Mario Kleiner
     [not found]                                           ` <7f68d9fe-a40f-cfb2-3efd-1149d93bb5cb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-06 15:19                                             ` Keith Packard
2017-05-08  7:33                                             ` Pekka Paalanen
2017-05-10  0:29                                             ` Dave Airlie
     [not found]                                         ` <867f1v1iut.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-08 10:47                                           ` Pekka Paalanen
2017-05-08 15:29                                             ` Keith Packard
     [not found]                                               ` <86fugfxt7p.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2017-05-09  7:08                                                 ` Pekka Paalanen
2017-04-29  5:52 ` Proposal for RandR version 1.6, Leases [v2] Keith Packard

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=ef1fb4fc-94b9-ed5c-f2c1-8ff0f003f132@gmail.com \
    --to=mario.kleiner.de-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=daniel-/w4YWyX8dFk@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=keithp-aN4HjG94KOLQT0dZR+AlfA@public.gmane.org \
    --cc=xorg-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.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 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.