Kodi Community Forum

Full Version: Dual Screen with different resolution
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi All.
I try to find out solution how to run xbmc in fullscreen mode on dual outputs (monitors) which doesn't have same resolution. I need to have the same xbmc gui on both monitors.
I have dual head nvidia graphics card. But there is limitation that monitors should have the
same resolution to work it correctly. I have tried several dual head configurations but without any success.
I have an idea how to solve it but I need some hint to this topic.
The model situation: I have two LCD screen - one small 7" with low resolution and the second main LCD TV Screen with HD resolution.
The solution is based on separate X servers. So you run two different X servers each with apropriate resolution. The core XBMC application will be running on X server which feed main LCD TV screen. In the XBMC code will be some block that will read out back from framebuffer the output and it will be sending it with help of shared memory to the second SDL application running on second X server which feeds the small LCD screen. This application will be only scaling down the resolution and displaying it on small LCD display.
Do you think that this will work ? Or do you have any other idea how to solve this different resolution dual output problem?
Thanks Marty
Hmmm...sounds interesting! That way one would even be possible to make an actual use of those small but expensive LCDs in media center cases. Unfortunately i'm not experienced enought with SDL (but i'm currently hacking in). Nevertheless i vote for this as a feature! Maybe you open a trac feature ticket so it doesn't get lost.
AFAIK the problem is in the driver. No ammount of tricks with X are going to work around that.
You could use XCopyArea to copy the contents of the root window on one monitor to a pixmap and render that in opengl on another monitor.

Don't expect it to be very fast, also it requires you to have two screens on a single X server (which is what you want) and you probably need xinerama or twinview.
I rather don't want use xinerama or twinview in order to have both screen in fullscreen mode.
I haven't study xbmc code yet to find out if there is easy way how to read out OpenGL frame buffer, but I think there should be some easy way how to do that. The asynchronous read of opengl framebuffer should be more fast than doing it with X api.
I know that most easy way is to let to do the scale on graphics driver but I'm not sure when nvidia release this function or if they do that anyway. And for Media Center with nice smaller LCD screen on panel this function is sufficient.
I really want to reassure if this function can not be done with some actual standard ways before I go depth to xbmc code.
Or If anybody have ever tried to solve it.
The reason I recommend xinerama/twinview is so you don't have to transfer data from the videocard to system memory, that is a very slow operation and it will hurt performance a lot.
Thanks for hint. I don't know much about Xlib functions yet, but it is a good idead and it will be very fast to do all the staff on the graphics card. I have to explore the relations between X pixmap and openGL buffers (textures....). It will be very helpfulI if you have more information, similar example about this topic.
Hi.
I have hardware where I have 2 displays (small one 7" on front panel with resolution 800x480 and second is main screen where resolution can be different and probably higher 1920x1080). The OS is Ubuntu.
The system is running with Nvidia graphic card in TwinView mode where displays are next to each other (One big resolution).
It would be nice to have same output on those displays. I had idea that I have tried to implement but I wasn't successfull. The idea is that I will set VideoMode to 2720x1080 (1920+800 x 1080) and use whole resolution. Then with appropriate set of glViewport I will first render the main screen (1920x1080) and then set glViewport to the small one (800x480) and render it again (mabe with help of render to texture and fbo).
But I wasn't successfull with this glViewport. When I set it to 1920x1080 and first render the main screen it didn't scale to 1920x1080 just only cut out the whole output to 1920x1080
I don't have big picture of design xbmc in part of setting VideoMode but I would be happy If anybody could help me with this stuff.
Hi there,

Does anybody found a solution for this ?

For documentation, here is my config :

I've got a 15'' touchscreen (4/3 screen running 1024x768@50Hz) and a Sanyo PLV-Z4 projector (16/9 running 720P@50Hz or 720P@60Hz)
I've got an Asrock ION 330 with Ubuntu 9.04 installed. 15'' monitor is connected using VGA wire and projector is connected through HDMI connection.

Using nvidia 180 drivers, I was able to configure correctly xbmc for it to run on one or the other screen but... After having tweaked many times xorg.conf to get dual screen (by using twinview) and set 15'' screen at 1024x768, and projector as 720P, my results are bad :

Depending of which screen is defined as primary in xorg.conf file :
- if 15'' screen is set as primary 1024x768, projector give 4/3 screen (I do not use the right part of the screen if you prefer as it is completely black) - display is fine on 15'' screen.
- if projector is set as primary 720P, and 15'' screen is set at 800x600, 15'' screen does not show top and bottom of the screen - display is fine on Sanyo projector.
OR
- if projector is set as primary 720P, and 15'' screen is set at 1024x768, 15'' screen does not show right part of the screen (I lost my mouse on the right part of the screen if you prefer) - display is fine on Sanyo projector.

Regards,
Merged, thank you.
I wonder if one of those magnify glass apps could do this.

If anyone is looking to code something, I was able to render my 1440x900 desktop in a 800x600 window at 100 fps scaled down with a bilinear algorithm with only 4% cpu usage from xorg, using the Xrender extension.

Not all videodrivers can do this in hardware, but nvidia can.

So if you set up a dual-screen configuration with either xinerama or twinview, you can have one display show what's on the other one.
You probably won't get any vsync, but that's probably not an issue.
bobo1on1 Wrote:I wonder if one of those magnify glass apps could do this.

If anyone is looking to code something, I was able to render my 1440x900 desktop in a 800x600 window at 100 fps scaled down with a bilinear algorithm with only 4% cpu usage from xorg, using the Xrender extension.

Not all videodrivers can do this in hardware, but nvidia can.

So if you set up a dual-screen configuration with either xinerama or twinview, you can have one display show what's on the other one.
You probably won't get any vsync, but that's probably not an issue.
@bobo1on1... Can you give us a link or two to reproduce what you made as it seems it is exactly what I need. Nod
EDIT : Maybe you could just post your xorg.conf file ?

Thank you in advance

Regards,
Look at the code posted here: http://fixunix.com/xwindows/261955-rotate-pixmap.html

I couldn't get it to work with xinerama so you're either stuck with twinview or something like XShmGetImage and XShmPutImage, which is a bit slow.

My xorg.conf isn't going to help you in any way.
bobo1on1 Wrote:Look at the code posted here: http://fixunix.com/xwindows/261955-rotate-pixmap.html

I couldn't get it to work with xinerama so you're either stuck with twinview or something like XShmGetImage and XShmPutImage, which is a bit slow.

My xorg.conf isn't going to help you in any way.
Thank you bobo1on1 but this is not possible for me to use this. I am not able to developp unfortunately

I believe I'll have to wait until someone more skilled do the job Sad

Anyway, thank you for your answer

EDIT : I found this wiki page on debian website which is talking about "the ability to configure outputs dynamically (resize, rotate, move, ...)"
But this looks like chinese to me and RandR does not see my secondary screen... I'll try to have a look later but if somebody find some informations about this, any help would be highly appreciated


EDIT2 : I found an hardware box that should do the job... Even if expensive... Could some pro give their opinion on this ? thank you.

Regards,
Pages: 1 2