boushidosan
Gawd
- Joined
- Dec 19, 2010
- Messages
- 551
You have earned a medal for that excellent explanation
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
SNIPPED
Sure it does...That doesn't explain why you can alter the color, scaling, and the overdrive to each individual display after it's past the SLS hardware.
It explains this perfectly as well...It also doesn't explain why each display is OFF synch with each other by a few milliseconds (easier to see in 3x1 portrait and a menu that moves across all three displays).
I don't think you quite understood the part about SLS hardware output modes in my previous post...Surely if you can post process each frame that's sent to each monitor, you can manipulate the orientation.
There is NO WAY to get the SLS hardware to put out one landscape and two portrait signals because it only had the ability to duplicate one screen mode to be applied to all output.
Do they really want to redesign their hardware and overhaul their software to handle a very small edge use case?
As far as I can tell, after poking around a bit, it IS a hardware limitation. In fact, it's caused by the same hardware limitation that causes a fixed tear to appear on one screen when Eyefinity is enabled.
To everyone who thinks it's a software problem because PLP is supported when in Extended Desktop mode, it's time for a wake-up call. When you're in extended-desktop, the hardware on the card responsible for SLS mode (eyefinity) is bypassed. Windows is allowed to see 3 separate screens, and the clock generators generating the display sync signal on the card can operate independently of one another. This allows each screen to operate at its own resolution and refresh rate while keeping independent sync settings (no tearing).
When you enable Eyefinity, the dedicated SLS hardware is inserted into the video pipeline at a very early stage, before the per-display clock generators. This dedicated hardware is fairly "dumb" and is relatively limited in regard to what input and output modes it supports, which is where the issues with V-Sync and PLP modes come from.
The SLS hardware has only ONE internal clock generator, and it can only be synced to one of the clock generators handling actual display output at any one time. Because there's only one clock generator to work with, all three output streams from the SLS hardware are running at identical display mode settings to one another before being fed into the actual display-output hardware. This holds true for bezel-corrected resolutions as well, the SLS hardware outputs 3 images at identical resolution, the display-output hardware has its sync settings altered to "crop" the extra rendered frame by moving those pixels out of bounds (which is why there's a full video reset when adjusting bezel correction).
Rotating a display to portrait requires a vastly different display mode, but the SLS hardware can only be synced to ONE of the display-output clock generators at any one time.
The breakdown is as follows:
- If you rotate one monitor in portrait, and that's the one the SLS hardware is synced to, then all output from the SLS hardware is portrait-mode.
- If you have one monitor in landscape, and it's the one the SLS hardware is synced to, then all output from the SLS hardware is landscape-mode.
The SLS hardware can accept a 4960x1600 source, but it is physically incapable of creating the individual 1200x1600 + 2560x1600 + 1200x1600 signals needed for PLP from from that 4960x1600 source.
There is the option of spoofing 7680x1600 (triple 2560x1600) by syncing the SLS hardware to the center monitor, then using the display-output hardware to crop off a MASSIVE chunk of the rendered frame so that it fits on the portrait screens to either side. There are three major problems with that, though.
- Performance would suck because you're rendering 7680x1600 but only displaying 4960x1600 of it, massive waste of resources there.
- The sides of the rendered image would be cropped off, so in many cases, your HUD would be entirely off-screen.
- You can only do so much cropping by monkeying with sync settings, that's why bezel correction is already limited in how much it can crop. it's not actually possible to remove THAT much screen using this method.
This requires dedicated hardware on the graphics card to spoof the Single Large Surface (SLS) to the operating system, and dedicated hardware to take that large image and split it into three (or more) separate images that can then be handled individually by the normal display-out hardware attached to each display head on the graphics card.
What makes you think this requires special hardware? Speculation?
Uh, the entire point of Eyefinity is to create a spanned resolution that your OS (and games) see as one big monitor. This requires dedicated hardware on the graphics card to spoof the Single Large Surface (SLS) to the operating system, and dedicated hardware to take that large image and split it into three (or more) separate images that can then be handled individually by the normal display-out hardware attached to each display head on the graphics card.
Running in Extended Desktop mode and using SoftTH (which also requires extended desktop mode) do not create a spanned resolution. Without a spanned resolution, compatibility with games isn't nearly as good.
And SoftTH isn't even close to the same thing as Eyefinity. SoftTH is a hack that works at the DirectX level to spoof a larger monitor than is actually present. Compatibility and speed are both poor because it's 100% software based. Eyefinity actually presents the OS with one large monitor, and the spanning is handled entirely in hardware, which makes it compatible and fast.
Like it or not, you need Eyefinity (SLS Mode) in order to do this properly. It's unfortunate that it can't handle mixed display modes when generating spanned display resolutions, but that's how the hardware was designed.
The end result there is VERY different from Eyefinity... how can you not see that?While that's the point and the easier it is not the necessity.
I can run EVE online across all 3 screens in PLP in boarder less windowed mode and besides bezel compensation the end result is no different to Eyefinity, the fact is windows does it without special hardware, so its not imperative to have the screens seen as one, its just the logical.
The end result there is VERY different from Eyefinity... how can you not see that?
Windows is still dealing with three separate displays in that scenario, and the game is being spanned across multiple monitors thanks to being a window. Being a window allows DWM to handle positioning rather than allowing the game to connect directly to the graphics hardware to create a surface for itself.
Using DWM as an intermediary creates a performance hit. Using DWM as an intermediary and then asking it to span across two separate display heads creates an even bigger performance hit. None of this is an issue when the card handles the spanning IN HARDWARE rather than some horrible kludge being carried out IN SOFTWARE.
Sorry, but I really don't think you quite understand the difference between a hardware-based solution like Eyefinity and a software-based one like using a window or SoftTH (or there's a language barrier that's causing issues)... Eyefinity is almost equivalent to plugging a TripleHead2Go into a single display-out on your graphics card, it handles spoofing one large display and splitting the resultant super-wide image into three parts entirely in hardware.
The only reason EVE Online sort-of works is because it just happens to support fullscreen-window mode, and also just happens to allow setting resolutions in fullscreen-window mode that are larger than the primary display. This isn't something that AMD can magically implement in all games via a driver update, it requires the developer to write support for this specific mode into the game engine itself. This is not a valid global solution for PLP gaming.
I'd love to see someone hack BF3 to do this 'software spanning' that you're doing with EVE, and report on the performance, if it's even possible to generate a scenario to measure it. I can see the argument where PLP is going to require a hardware change, but I really have to wonder if it can't be done by a driver.
Going forward, you'd think that GPU makers would want to build as much flexibility into their architectures as possible. It's pretty hard to imagine them continuing to ignore the ability to render to an arbitrary surface in hardware!
unknown one - we (i at least) really appreciate the expertise you're bringing to the argument, but as the bearer of bad news it may make you unpopular with the less knowledgeable (myself included) who just can't believe something that windows has been able to manage natively forever can't be done with our overpriced hardware that was apparently built to do it.