gtk+ and randr

Dave Airlie airlied at gmail.com
Tue Jul 22 14:04:07 PDT 2008


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.

Dave.



More information about the xorg mailing list