gtk+ and randr

Maarten Maathuis madman2003 at gmail.com
Tue Jul 22 14:19:54 PDT 2008


On Tue, Jul 22, 2008 at 11:04 PM, Dave Airlie <airlied at gmail.com> wrote:
> On Wed, Jul 23, 2008 at 3:19 AM, Alex Deucher <alexdeucher at gmail.com> wrote:
>> On Tue, Jul 22, 2008 at 12:38 PM, Eric Piel <E.A.B.Piel at tudelft.nl> wrote:
>>> Alex Deucher schreef:
>>>>
>>>> On Tue, Jul 22, 2008 at 4:18 AM, Eric Piel <E.A.B.Piel at tudelft.nl> wrote:
>>>>>
>>>>> Alex Deucher schreef:
>>>>>>
>>>>>> On Mon, Jul 21, 2008 at 6:39 PM, Ben Gamari <ben at mw0.ath.cx> wrote:
>>>>>>>
>>>>>>> On Intel hardware it seems to probe the outputs and re-acquire EDID
>>>>>>> information, which in itself seems to usually cause loss of sync. It
>>>>>>> seems this is what XRRGetScreenResources() is supposed to do so I
>>>>>>> really
>>>>>>> don't see any way to avoid the cost.
>>>>>>
>>>>>> If you have monitors with EDIDs plugged into your connectors, then
>>>>>> you're fine.  if you have nothing on one or more connectors or a
>>>>>> monitor without an EDID, you may get flickering as the driver attempts
>>>>>> to use load detection to sense the presence of a monitor since there
>>>>>> is no EDID.
>>>>>
>>>>> With my i965 and a monitor _with_ EDID connected to the VGA output, I do
>>>>> get
>>>>> flickering (the screen turns black for one second). So, it seems the
>>>>> flickering happens all the time. Is it a bug in the intel driver? Or
>>>>> maybe
>>>>> it's because there is also a TV output? (that would be nasty because the
>>>>> laptop don't even have the plug!)
>>>>
>>>> TV is load detection only, so it's probably the tv port.  I suspect
>>>> your laptop needs a quirk to ignore the tv connector.
>>>
>>> Oh well, I've doubled checked, and if you buy the "media station" for my
>>> laptop, the tv connector is available. So it's better not to disable it
>>> completely!
>>>
>>> Still, isn't it strange that the fact there is a "load detection" on the TV
>>> output affects the VGA output?
>>
>> No, load detection requires a crtc as you need to send a signal to the
>> tv dac to check the load.  So what happens is the crtc that's
>> currently driving one of the other outputs is borrowed temporarily to
>> do the load detection, hence the flicker.
>>
>
> I've been thinking about this and I think we should change the
> detection ordering.
>
> Instead of just going through the outputs one by one we should go
> through the outputs that
> were connected the last time we checked first. So if for example on
> radeon we have a shared DAC,
> we can see the VGA is still connected to it, and not bother with TV
> load detection. This should remove
> some of the flickering cases we see today on radeon.. On intel if we
> can't get a crtc we shouldn't bother load detecting
> instead of stealing a crtc from an active output.

This is very device dependent, and randr-1.2 has "no idea" of all
this. For modesetting-101 a fill_all_modes function could do the trick
and something similar could also be done for randr-1.2. It all boils
down to handing more control to the driver. Maybe randr-1.3 could also
replace other functions with stuff a la set_mode_major.

Maarten.

>
> Dave.
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>



More information about the xorg mailing list