[PATCH v2 xserver 00/11] modesetting: MS_ALL_IN_ONE

Hans de Goede hdegoede at redhat.com
Sun Jan 8 15:04:23 UTC 2017


Hi,

On 08-01-17 15:04, Yu, Qiang wrote:
>
> Hi Hans,
>
> Thanks for your info, I give it a quick try:
> Section "OutputClass"
>     Identifier "amd"
>     MatchDriver "amdgpu"
>     Driver "modesetting"
>     Option "PrimaryGPU" "yes"
> EndSection
>
> Section "OutputClass"
>     Identifier "intel"
>     MatchDriver "i915_bpo"
>     Driver "modesetting"
> EndSection
>
> Seems indeed some bugs in it, xserver start as expected with amdgpu as master
> and i915 as slave (Xorg.0.log attached), but the screen is black, and run xrandr:
> 1. "xrandr --setprovideroutputsource 1 0" won't add any iGPU's output (0 is amdgpu, 1 is intel)
> 2. "xrandr --setprovideroutputsource 0 1" crash the xserver:
> Xorg: ../../../xserver/dix/dispatch.c:4018: AttachOutputGPU: Assertion `new->isGPU' failed.
> But I believe it can be fixed.
>
> MS_ALL_IN_ONE method is my previous work when xserver has no proper PRIME sync.
> And I find it's also useful for embedded platforms like iMX6/etnaviv.

I agree that it would be great to have a solution to have things just work
on iMX6/etnaviv, but we should be able to autodetect things on such a setup
without needing a special environment variable. Just an xorg.conf Outputclass snippet
matching the drm driver and marking that with Option "PrimaryGPU" "yes" should suffice.

 > So published here.
> As the MS_ALL_IN_ONE environment variable, I can change it to be an option of modesetting.

I think we don't really need another option, the Option "PrimaryGPU" "yes" should be
sufficient, combined with bug-fixes to the modesetting driver for cases where that
does not work.

> Now as the PRIME sync is upstreamed, I think they can achieve nearly same effect in theory,

Right, so we really should use that and not add a second code path implementing in essence
the same thing.

If you could look into this and fix the modesetting driver to support this that would be
great.

> but still minor difference when implementation in each DDX like modesetting need a proper
> implementation of PresentSharedPixmap() for “OpenGL Syncing To VBlank”.

I think we should just fix things for the modesetting driver now, AFAICT most other
drivers are becoming more or less obsolete (or at least the should). Besides since your
original solution modifies the modesetting driver, it too has the drawback of only
working with the modesetting driver.

Regards,

Hans


More information about the xorg-devel mailing list