LibDRM Cloned Monitor Support

Rian Quinn rianquinn at gmail.com
Tue Nov 11 17:25:58 PST 2014


Yeah, I had issues trying to get the first method to work across the board on all of the hardware that we need to support. One example that I saw was to use the second method, and then to use planes when you had to scale. So basically, if you could not find a match, you would select the lowest of the resolutions, and then setup planes for the ones that need to be scaled. From what I can see, this will end up consuming an extra frame buffer, but it takes care of the issue. 

Do you see any issues with that approach?

Thanks,
- Rian

> On Nov 11, 2014, at 8:10 PM, Rob Clark <robdclark at gmail.com> wrote:
> 
> On Tue, Nov 11, 2014 at 12:19 PM, Rian Quinn <rianquinn at gmail.com> wrote:
>> What exactly is the correct way to support cloned monitors using LibDRM. As
>> I see it, there are two methods:
>> 
>> - Use the connector array in drmModeSetCrtc
>> - Use one crtc per connector, but share the same framebuffer.
>> 
>> Right now I am using option #2 as it seems to be the most flexible, but my
>> current issue is that on laptops, the connector for the laptop's main screen
>> is only retuning 1 mode (tested on a Lenovo, and an HP folio), which means
>> that your unlikely to find a common mode between the laptop monitor, and an
>> external screen (monitor or projector).
> 
> #2 is the method that will work on all hw..  usually DE's will pick
> the closest matching modes between the two connectors/outputs, and
> truncate edges on the smaller display (via non-zero x/y offset).  Some
> hw may support upscaling to fit, although that isn't really exposed in
> a completely standard way at the moment.
> 
> BR,
> -R
> 
>> So with the above problem, right now the only thing that I know to do would
>> be to set the resolution of the laptop monitor and external monitor to be
>> their "preferred" resolution, and then copy and scale for "cloned mode"
>> which seems like a terrible idea considering the laptop monitor should be
>> able to set itself to some more basic resolutions (like 800x600).
>> 
>> - Rian
>> 
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>> 



More information about the dri-devel mailing list