Mario Kleiner
2015-Jul-19 08:34 UTC
[Nouveau] [PATCH] Add Option "DRI3" to allow to disable DRI3 under EXA.
On 07/18/2015 01:09 PM, Dave Airlie wrote:>>>> >>>> We can disable it by default on exa - intel and amd/radeon drivers also >>>> disable by default. However, on gpus >= maxwell only glamor accel is >>>> supported and glamor on nouveau is either dri3/present or no hw accel at >>>> all >>>> afaics. >>> >>> >>> You probably saw my patches to just remove glamor from nouveau :) That >>> integration doesn't support DRI2, which in turn means no core contexts >>> (due to lack of GLX_ARB_create_context_profile), and a slew of other >>> issues. Seemed easier to just tell people to go use modesetting, which >>> gets all of these things right(er). >>> >> >> Hm, a total removal would at least make me and my users rather unhappy atm., >> as without glamor no hw accel at all on >= maxwell. modesetting and nouveau >> are not on par feature-wise atm. E.g., modesetting as of the next xorg 1.18 >> server only provides pageflipping via dri3/present and without pageflipping >> it is game over for many of my use cases on nouveau-kms. Also modesetting >> currently completely lacks ZaphodHeads support. Without ZaphodHeads i can't >> have a page-flipped fullscreen window on one subset of outputs and a regular >> desktop on another subset, something that is needed for >> neuroscience/medical/vr applications. > > So what would you want in modesetting to be on par? > > DRI2 pageflipping?Probably not needed? I debugged and tested the DRI3/Present page flipping with modesetting a few months ago. Haven't retested the most recent version of the patches in x-server master, but at that time they seemed to work pretty ok. I'll give this some more testing soon. I also ran it as my desktop for 2-3 days, afair without serious issues, but that wasn't the kind of obsessive stress testing i do for the OpenGL fullscreen pageflipping stuff. I do remember dpms activity was a crasher last time i tested. Maybe resolved now?> zaphod heads? >Mostly Zaphodheads would be the really important one for me. Lack of it = show stopper for many of my users applications. Users often want to split their gpu into at least 2 x-screens: One for the "operator" to control experimental work sessions via a regular desktop GUI, the other for one unredirected kms-pageflipped fullscreen window on one or multiple attached Zaphodheads outputs for the actual presentation on the 2nd x-screen, e.g., single display, or dual display for stereoscopic stuff - stereo goggles and such, or > 2 displays for more advanced VR stuff. The page flipping is important in my case because precise timing and precise timestamping is important which we only get with page flips, also to get out pixels as bit-exact as possible without interference from compositors, e.g. texture mapping artifacts etc. On DRI3/Present, page flips are also the only way atm. to get tear-free Presents, the way it is implemented. More regular users seem to like to have a separate x-screen for TV sets and use ZaphodHeads for that. The current nouveau or radeon implementation would be a good reference for one that seems to work well with multiple ZaphodHeads per x-screen + 1 extra patch of mine against nouveau floating on nouveau-devel "[PATCH] Take shift in crtc positions for ZaphodHeads configs into account." That patch is needed for nouveau-ddx, or any generic driver that deals with nouveau-kms. Afaics the other kms drivers return a kencoder->possible_crtcs mask which allows any crtc to go with any encoder, but nouveau-kms gets that info from the VBIOS DCB and sometimes the mask is a bit more special and needs the extra treatment from that patch, or bad things will happen, e.g., on some nv-50 cards.> anything else? I would like for F23 to ship a modesetting which I can > replace intel/nouveau/ati with.Not at the moment. I'll think about it some more and give the current modesetting driver a bit more testing to see if something shows up. thanks, -mario> > Dave. >
Dave Airlie
2015-Jul-22 04:39 UTC
[Nouveau] [PATCH] Add Option "DRI3" to allow to disable DRI3 under EXA.
On 19 July 2015 at 18:34, Mario Kleiner <mario.kleiner.de at gmail.com> wrote:> On 07/18/2015 01:09 PM, Dave Airlie wrote: >>>>> >>>>> >>>>> We can disable it by default on exa - intel and amd/radeon drivers also >>>>> disable by default. However, on gpus >= maxwell only glamor accel is >>>>> supported and glamor on nouveau is either dri3/present or no hw accel >>>>> at >>>>> all >>>>> afaics. >>>> >>>> >>>> >>>> You probably saw my patches to just remove glamor from nouveau :) That >>>> integration doesn't support DRI2, which in turn means no core contexts >>>> (due to lack of GLX_ARB_create_context_profile), and a slew of other >>>> issues. Seemed easier to just tell people to go use modesetting, which >>>> gets all of these things right(er). >>>> >>> >>> Hm, a total removal would at least make me and my users rather unhappy >>> atm., >>> as without glamor no hw accel at all on >= maxwell. modesetting and >>> nouveau >>> are not on par feature-wise atm. E.g., modesetting as of the next xorg >>> 1.18 >>> server only provides pageflipping via dri3/present and without >>> pageflipping >>> it is game over for many of my use cases on nouveau-kms. Also modesetting >>> currently completely lacks ZaphodHeads support. Without ZaphodHeads i >>> can't >>> have a page-flipped fullscreen window on one subset of outputs and a >>> regular >>> desktop on another subset, something that is needed for >>> neuroscience/medical/vr applications. >> >> >> So what would you want in modesetting to be on par? >> >> DRI2 pageflipping? > > > Probably not needed? I debugged and tested the DRI3/Present page flipping > with modesetting a few months ago. Haven't retested the most recent version > of the patches in x-server master, but at that time they seemed to work > pretty ok. I'll give this some more testing soon. I also ran it as my > desktop for 2-3 days, afair without serious issues, but that wasn't the kind > of obsessive stress testing i do for the OpenGL fullscreen pageflipping > stuff. > > I do remember dpms activity was a crasher last time i tested. Maybe resolved > now? > >> zaphod heads? >> > > Mostly Zaphodheads would be the really important one for me. Lack of it > show stopper for many of my users applications. Users often want to split > their gpu into at least 2 x-screens: One for the "operator" to control > experimental work sessions via a regular desktop GUI, the other for one > unredirected kms-pageflipped fullscreen window on one or multiple attached > Zaphodheads outputs for the actual presentation on the 2nd x-screen, e.g., > single display, or dual display for stereoscopic stuff - stereo goggles and > such, or > 2 displays for more advanced VR stuff. The page flipping is > important in my case because precise timing and precise timestamping is > important which we only get with page flips, also to get out pixels as > bit-exact as possible without interference from compositors, e.g. texture > mapping artifacts etc. On DRI3/Present, page flips are also the only way > atm. to get tear-free Presents, the way it is implemented. > > More regular users seem to like to have a separate x-screen for TV sets and > use ZaphodHeads for that. > > The current nouveau or radeon implementation would be a good reference for > one that seems to work well with multiple ZaphodHeads per x-screen + 1 extra > patch of mine against nouveau floating on nouveau-devel "[PATCH] Take shift > in crtc positions for ZaphodHeads configs into account." That patch is > needed for nouveau-ddx, or any generic driver that deals with nouveau-kms. > Afaics the other kms drivers return a kencoder->possible_crtcs mask which > allows any crtc to go with any encoder, but nouveau-kms gets that info from > the VBIOS DCB and sometimes the mask is a bit more special and needs the > extra treatment from that patch, or bad things will happen, e.g., on some > nv-50 cards. > >> anything else? I would like for F23 to ship a modesetting which I can >> replace intel/nouveau/ati with. > > > Not at the moment. I'll think about it some more and give the current > modesetting driver a bit more testing to see if something shows up.Hi Mario, just to follow up, I posted a patch to xorg-devel to add Zaphod support to modesetting, it at least starts here! Can you take a look at it and let me know what else it might need doing, since I see you've been active in the other drivers. Dave.
Mario Kleiner
2015-Jul-26 08:12 UTC
[Nouveau] [PATCH] Add Option "DRI3" to allow to disable DRI3 under EXA.
On 07/22/2015 06:39 AM, Dave Airlie wrote:> On 19 July 2015 at 18:34, Mario Kleiner <mario.kleiner.de at gmail.com> wrote: >> On 07/18/2015 01:09 PM, Dave Airlie wrote: >>>>>> >>>>>> >>>>>> We can disable it by default on exa - intel and amd/radeon drivers also >>>>>> disable by default. However, on gpus >= maxwell only glamor accel is >>>>>> supported and glamor on nouveau is either dri3/present or no hw accel >>>>>> at >>>>>> all >>>>>> afaics. >>>>> >>>>> >>>>> >>>>> You probably saw my patches to just remove glamor from nouveau :) That >>>>> integration doesn't support DRI2, which in turn means no core contexts >>>>> (due to lack of GLX_ARB_create_context_profile), and a slew of other >>>>> issues. Seemed easier to just tell people to go use modesetting, which >>>>> gets all of these things right(er). >>>>> >>>> >>>> Hm, a total removal would at least make me and my users rather unhappy >>>> atm., >>>> as without glamor no hw accel at all on >= maxwell. modesetting and >>>> nouveau >>>> are not on par feature-wise atm. E.g., modesetting as of the next xorg >>>> 1.18 >>>> server only provides pageflipping via dri3/present and without >>>> pageflipping >>>> it is game over for many of my use cases on nouveau-kms. Also modesetting >>>> currently completely lacks ZaphodHeads support. Without ZaphodHeads i >>>> can't >>>> have a page-flipped fullscreen window on one subset of outputs and a >>>> regular >>>> desktop on another subset, something that is needed for >>>> neuroscience/medical/vr applications. >>> >>> >>> So what would you want in modesetting to be on par? >>> >>> DRI2 pageflipping? >> >> >> Probably not needed? I debugged and tested the DRI3/Present page flipping >> with modesetting a few months ago. Haven't retested the most recent version >> of the patches in x-server master, but at that time they seemed to work >> pretty ok. I'll give this some more testing soon. I also ran it as my >> desktop for 2-3 days, afair without serious issues, but that wasn't the kind >> of obsessive stress testing i do for the OpenGL fullscreen pageflipping >> stuff. >> >> I do remember dpms activity was a crasher last time i tested. Maybe resolved >> now? >> >>> zaphod heads? >>> >> >> Mostly Zaphodheads would be the really important one for me. Lack of it >> show stopper for many of my users applications. Users often want to split >> their gpu into at least 2 x-screens: One for the "operator" to control >> experimental work sessions via a regular desktop GUI, the other for one >> unredirected kms-pageflipped fullscreen window on one or multiple attached >> Zaphodheads outputs for the actual presentation on the 2nd x-screen, e.g., >> single display, or dual display for stereoscopic stuff - stereo goggles and >> such, or > 2 displays for more advanced VR stuff. The page flipping is >> important in my case because precise timing and precise timestamping is >> important which we only get with page flips, also to get out pixels as >> bit-exact as possible without interference from compositors, e.g. texture >> mapping artifacts etc. On DRI3/Present, page flips are also the only way >> atm. to get tear-free Presents, the way it is implemented. >> >> More regular users seem to like to have a separate x-screen for TV sets and >> use ZaphodHeads for that. >> >> The current nouveau or radeon implementation would be a good reference for >> one that seems to work well with multiple ZaphodHeads per x-screen + 1 extra >> patch of mine against nouveau floating on nouveau-devel "[PATCH] Take shift >> in crtc positions for ZaphodHeads configs into account." That patch is >> needed for nouveau-ddx, or any generic driver that deals with nouveau-kms. >> Afaics the other kms drivers return a kencoder->possible_crtcs mask which >> allows any crtc to go with any encoder, but nouveau-kms gets that info from >> the VBIOS DCB and sometimes the mask is a bit more special and needs the >> extra treatment from that patch, or bad things will happen, e.g., on some >> nv-50 cards. >> >>> anything else? I would like for F23 to ship a modesetting which I can >>> replace intel/nouveau/ati with. >> >> >> Not at the moment. I'll think about it some more and give the current >> modesetting driver a bit more testing to see if something shows up. > > Hi Mario, > > just to follow up, I posted a patch to xorg-devel to add Zaphod support > to modesetting, it at least starts here! > > Can you take a look at it and let me know what else it might need doing, > since I see you've been active in the other drivers. > > Dave. >Very cool, thanks for doing this Dave! I will try to review and test it early next week. -mario