Patch for 3+ screens in Windows
#1
I wrote a patch against SVN head to add support for 3+ screens if anyone wants to try. It is attached to already existing ticket #7365.
Comments are welcome! I am new to this, please don't be too harsh Laugh

This was tested on Win 7 x86, with three screens plugged into ATI and nVidia cards. Everything I could think of testing worked, including DXVA and refresh rate switching.

When using fake fullscreen mode, this works best with the patch in ticket #9088 to correctly initialize the adapter of the D3DDevice.
No reservations for true fullscreen and windowed mode.
Reply
#2
It also worked on 4 screens (two per graphics card), all in different resolutions and refresh rates. There is no theoritical limit to the number of supported screens by the way.

'Blank other displays' feature updated to cover all screens but the one XBMC is displayed on.
Reply
#3
You can post your patch on trac.
Reply
#4
It's there, ticket #7365. Not my ticket, but it seemed preferred to use existing tickets.
Reply
#5
I commend CrystalP on the development of this patch. Hopefully it is released in a nightly release soon. I am anxious to try it.

I have a 3 monitor setup where one video card (a HD card) has my primary monitor and my HDTV and a second video card runs a second desktop monitor. The TV comes up as monitor 3. I can't upgrade to 9.11 because XBMC won't detect or open on #3 in fullscreen even with UltraMon.

Whenever I get a chance to try this patch, I will be sure to post my results.
Reply
#6
Thanks for your interest. The patch has been through a couple reviews/updates and I'm hopeful it will be accepted soon.

FYI ticket #9088 that helps with playback smoothness for 2 screens in fake fullscreen mode was committed a few days ago.

Have you tried playing with the placement of the screens in the Windows desktop settings?
Reply
#7
CrystalP Wrote:.

Have you tried playing with the placement of the screens in the Windows desktop settings?

I can't find a way to swap Monitor ID's within Display Settings. My second desktop monitor is #2 and my TV is #3. The only way I found to swap them was swap the cables in the back.

Working Setup:
Asus EAH4550 -> Primary Desktop Monitor (DVI - #1) and TV (HDMI - #3)
ATI Radeon 3400 -> Secondary Desktop Monitor (VGA - #2)

Tested Setup (swapped cables)
Asus EAH4550 -> Primary Desktop Monitor (DVI - #1) and Secondary Desktop Monitor (VGA - #3)
ATI Radeon 3400 -> TV (HDMI - #2)

I did get the 'tested setup' working where XBMC 9.11 recognized Monitor 2 as the TV and the correct resolution. However, I was getting horizontal lines or horizontal choppiness during busy frames in playback. I tried enabling/disabling vertical sync but that didn't help. I could only guess the 3400 card, being a few steps down from the 4550, can't handle it.

The only other option would be to physically swap the video cards on the motherboard so the 3400 is detected as the primary card, where I have my 2 desktop monitors run from that card, and then the 4550 would display to the TV hoping it would appear as monitor 2. I may try that some day. Eek
Reply
#8
CrystalP,

Do you mean...

- cloning a single screen across multiple displays? (same render on each display)
or
- splitting a single screen across multiple displays? (different render on each display)
I'm not an expert but I play one at work.
Reply
#9
Brad,

Yes, screen detection order is funky and sometimes changes from day to day!
I'm on Win 7 and XP is most likely different.

A few ideas...

- If you're running fake fullscreen, could you try a nightly SVN > 29392 in your 'Tested Setup' ? It has the patch I mentionned above to help playback on some 2 screen configurations. It does nothing for true fullscreen and windowed.

- The true fullscreen mode handles VSync a bit differently, and might help with the tearing.

- The 3400 should be powerful enough but multiple cards sometimes add playback problems. There are lots of possible combinations here... One or two cards in and 0, 1, 2 screens per card...


Note: you're running 9.11 so be aware the database format changed in the SVN versions and the scrapers/addons don't work yet. Backup is your friend.
Reply
#10
Livin,

Livin Wrote:- cloning a single screen across multiple displays? (same render on each display)
or
- splitting a single screen across multiple displays? (different render on each display)

#2, extending the desktop to multiple screens so you have different views.

I am not too hopeful it can help though, as the screen numbers seem to be what matters, and they're assigned by Windows depending on the ports in the cards, and the order of the cards.
Reply
#11
I just had to update this thread.

I have never played around with building my own XBMC SVN. I installed VB C++ Express, DirectX SDK, Tortoise, and NSIS. I followed the steps in the Windows Development page to build XBMC and applied the patch.

The batch file to build and create an installer didn't work right and I had to make a couple of changes. But I applied the patch, rebuilt, and installed over my 9.11 installation. Now my monitor #3 appears in the list of monitors. I had to set it to True Fullscreen to get rid of sync lines like you suggested CP.

I went through the program to see how it was working otherwise, and found a couple of things. First, the 'Fast Forward xx' is right justified behind the time duration. The Add-on logo is blank and if you go in there, nothing appears. Lastly, setting sound to anything other than 2.0 results in static clicking sounds occurring after coming out of fast forwarding. But surround works in 2.0 otherwise so no big deal. But these issues are probably for another thread and nothing to do with that patch.

Good job CP!! I'll have to install the official SVN release that has your patch when it comes out. Big Grin
Reply
#12
That's good to hear!

The 'Fast Forward' message is an issue of the PM3.HD skin. I suggest you try the new Confluence skin, it's very nice and receives a lot more developper attention. The Add-ons are not finished yet and scraping doesn't work.
I tried a few clips in true fullscreen and sound 2.0 or 5.1 and nothing special happened. Please try the same SVN revision without my patch to confirm whether I caused the sound issue or not.

Last thing you can try to eliminate tearing in fake fullscreen: XBMC has a workaround for some ATI driver issues that might help you, although it's meant for stuttering and not tearing. Add a sleepbeforeflip value in the advancedsettings.xml. It takes a decimal value from 0 to 1, so try a few. There is more information in the forums.

What OS are you running? Aero or not?

P.
Reply
#13
Thanks CP

I'll rebuild without your patch and post back when I get a chance. And I'll try the Confluence skin as well.

I'm not sure if this thread now still belongs in this forum or Developers but I'll continue to update this thread anyway.
Reply
#14
The patch was committed and is in SVN >= 29462. Thanks elupus!
Reply
#15
CrystalP Wrote:That's good to hear!

The 'Fast Forward' message is an issue of the PM3.HD skin. I suggest you try the new Confluence skin, it's very nice and receives a lot more developper attention. The Add-ons are not finished yet and scraping doesn't work.


What OS are you running? Aero or not?

P.

Hey CP

I am running XP SP3. My problems don't seem related to your patch. Either way, I use True Fullscreen with v-sync enabled and I don't get any lines. I tried other things including sleepbeforeflip and it didn't seem to make a difference.

Just to clarify above, when you say add-ons are not finished and scraping doesn't work, do you mean for the latest SVN releases? I downloaded the latest SVN with your patch and installed it and add-ons and plugins are not available. It was available in the stable release of Camelot. So I assume this is the case for all SVN releases.

Thanks again...and again good job on that patch...works perfectly. Big Grin
Reply

Logout Mark Read Team Forum Stats Members Help
Patch for 3+ screens in Windows0