Dual Monitor slowdown

BlitzMax Forums/BlitzMax Programming/Dual Monitor slowdown

jp22(Posted 2008) [#1]
OK, so i've got an app which takes X time to process.
I'm using Flip 0, as I don't care about waiting for vblank.

I'm running on two monitors (with a NVidia Quadro FX1400):

Monitor A: 1600 *1200
Monitor B: 1920 * 1200

With the app (it's a windows prog) runs on Monitor A, it runs nice and fast. BUT, dragging the window onto Monitor B, and it slows down a LOT.

I'm using the MilliSecs command to compare the time between screen refreshes. On Monitor A, this is around 0-1, but on Monitor B it's up at 20-30.

To test this, I've just got one function in a main tight loop:


Graphics 1400,900,0

Function UTILITY_Flip()

d=MilliSecs()-LastSync
SetColor 0,255,0
jDrawText (SyncCount/60)+" Sync: "+d,800,10
SetColor 255,255,255

LastSync=MilliSecs()
SyncCount:+1

Flip 0

id=PollEvent()
If id=259
Print "quit"
End
EndIf

End Function


Function jDrawText (n$,x,y)

h=TextHeight(n$)
w=200

GetColor r,g,b
SetColor 0,0,0
DrawRect x,y,w,h
SetColor r,g,b
DrawText n$,x,y

End Function

If I set the graphics to

Graphics 1400,90,0

..it's better, but the SyncCount still goes up much slower on Monitor B.

Other people have also tested this with their dual monitors and get the same kind of issue.

Anyone have any ideas? (and yes, i've tried turing hardware acceleration to full / off, but it makes no difference)


Dreamora(Posted 2008) [#2]
It makes no difference to what you set the hardware acceleration.
The moment you push it to screen 2 it will be dual screen hardware acceleration which means degrade of performance as the screen area gets larger.

Just don't do it and you do not have a problem.
Do it and be aware that dualscreen hardware acceleration has its price.

That simple it is.


jp22(Posted 2008) [#3]
Changing to GL drivers seems to help a lot..


Dreamora(Posted 2008) [#4]
Thats clear, DX7 never was supposed to be used on such systems, back then there was no graphic hardware capable of it, most cards were not even capable of doing 1024x768 fullscreen hardware acceleration on 32bit depth.


xlsior(Posted 2008) [#5]
IIRC the 2nd monitor will use software 3D acceleration, not hardware. DX/driver issue, not Blitzmax...


Nigel Brown(Posted 2010) [#6]
A heads up for those that still care, Windows Embedded Standard 2001 does not suffer from this problem (maybe true for Windows 7)! A bold statement I know but as a crude example I wrote an application that when ran under XPe and dragged to the second monitor the frame rate fell from 100FPS to 8FPS the same on 2011 Quebec was 70FPS on both screens.