B+ slows dramatically with 2 monitors.

BlitzPlus Forums/BlitzPlus Programming/B+ slows dramatically with 2 monitors.

Cold Harbour(Posted 2004) [#1]
Blitz+ canvas operations slow in dual screen.

I’ve noticed that Blitz Plus canvas operations (Displaying text or graphics on a canvas) are very slow if you move the app window to a second monitor.

I have a favor to ask. If you have two monitors can you run my test app and see if the number at the bottom changes as you move the window between monitors.

I get a dramatic difference. The app is 100's of times slower if the window is in on the 2nd monitor.

Any ideas on if this is a Blitz+ problem or a graphics card problem?

I have a Matrox G550. Identical resolutions , both 16bit color, different refresh rates.

Thanks a lot for any help here!
debugwindow=CreateWindow( "debug",0,0,900,700,main,3)

debugcanvas=CreateCanvas(10,10,800,600,debugwindow)

SetBuffer CanvasBuffer(debugcanvas)

num=0
timetemp#=MilliSecs()

While WaitEvent(1)<>$803

	For f=1 To 100

		Color Rand(0,255),Rand(0,255),Rand(0,255)

		Text Rnd(0,700),Rnd(0,500),Chr(Rand(50,80))

	Next
	
	num=num+1
	
	If timetemp- MilliSecs()<-1000
	
		Cls
		
		Color 255,255,255
	
		Text 0,550,num
		
		num=0
		
		timetemp#=MilliSecs()
	
	EndIf
	
	FlipCanvas debugcanvas

Wend

End



Who was John Galt?(Posted 2004) [#2]
Sorry I don't have 2 monitors to try it with and I'm not that well up on B+ app stuff, but I thought 2 monitors just appeared internally as if it was a single screen. I reckon it might be the fact that you are using FlipCanvas with 2 monitors running at diff speeds. Can you turn off the vertical blanking wait on Flipcanvas?


Cold Harbour(Posted 2004) [#3]
RAM, yes you can do a
FlipCanvas debugcanvas,False

but it's still the same. Nice theory though.

The window can be spread across two screens but if any part of the canvas touches the other screen it slows down.


Who was John Galt?(Posted 2004) [#4]
Well I'm all out of ideas!


Orca(Posted 2004) [#5]
Yup I noticed this as well :/


Tracer(Posted 2004) [#6]
yup same here, with three monitors.. the left and right ones slow down like hell, the middle one always works fine.

Tracer


Warren(Posted 2004) [#7]
This is because generally on multiple monitor systems only the primary monitor is hardware accelerated. This is changing, but it's not widespread yet...


pantsonhead.com(Posted 2004) [#8]
I discovered this same effect a few days ago and was going to play with SetGfxDriver to see how to manage the delay... but I haven't got back to it yet. I guess that's not going to have much effect on a GUI app though.


Cold Harbour(Posted 2004) [#9]
Thanks all for the input. On the Matrox G550 - my card - both are h/w accelerated but the Gendacs run at slightly different speeds - primary is faster.

But all I'm doing is sending some text to a canvas - like just about every Windows app does. I can run just about any app in the 2nd monitor and never notice any slowdown.

This has to be an architectural problem with Blitz+ canvases.

POedBoy & Tracer would you mind telling me what gfx card you're using. Thanks!


Warren(Posted 2004) [#10]
A canvas is an accelerated surface. Doesn't matter what you're sending to it, it's hardware accelerated. If it's on the second monitor, it's going to slow down.

If you were just using edit and button controls, no, you wouldn't see any slowdown...


Cold Harbour(Posted 2004) [#11]
Fixed it.

What I did was to draw everything to the imagebuffer and then pop the image onto the canvas.

This speeded things up a lot and runs nice again. I'll have to rejig my app a fair bit but at least it's fixed.

Thanks for all the input that led me to think up a solution!

Cheers


Cold Harbour(Posted 2004) [#12]
In the interests of fairness I just want to add to this long dead thread.

B+ does work perfectly with dual monitors. The problem was with the crappy Matrox drivers.

*sniff* sorry B+, how could I ever think it was your fault.