Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » GDI, and therefore, Draw performance on Vista
GDI, and therefore, Draw performance on Vista [message #11758] Tue, 25 September 2007 11:34 Go to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
Hi folks.

Has anybody done any work on creating a GDI+ based intermediate layer for Draw?

I'm not entirely sure, but it appears to me that Microsoft has effectively put GDI on a side track on Windows Vista. If I get it right from what I've read from a few sources on the web, any GDI drawing is now done by the CPU -- not by the GPU as before -- to an image buffer which is then pushed to the graphics device as a bitmap. The performance penalty is huge. (Using aero or not does not appear to make any difference at least on my platform: AMD64/GeForce7600GS/Vista64.)

From what I assume, GDI+ should use GPU. If anybody knows better, please let me know.

// Tom
Re: GDI, and therefore, Draw performance on Vista [message #11760 is a reply to message #11758] Tue, 25 September 2007 11:45 Go to previous messageGo to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
OK, now I know better: The situation is worse.

http://msdn2.microsoft.com/en-us/library/bb173477.aspx

Any ideas, anybody?

// Tom
Re: GDI, and therefore, Draw performance on Vista [message #11761 is a reply to message #11758] Tue, 25 September 2007 11:46 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Tom1 wrote on Tue, 25 September 2007 05:34

Hi folks.

Has anybody done any work on creating a GDI+ based intermediate layer for Draw?

I'm not entirely sure, but it appears to me that Microsoft has effectively put GDI on a side track on Windows Vista. If I get it right from what I've read from a few sources on the web, any GDI drawing is now done by the CPU -- not by the GPU as before -- to an image buffer which is then pushed to the graphics device as a bitmap. The performance penalty is huge. (Using aero or not does not appear to make any difference at least on my platform: AMD64/GeForce7600GS/Vista64.)

From what I assume, GDI+ should use GPU. If anybody knows better, please let me know.

// Tom



I have not noticed any GDI slowdown with my Vista Business.

IMO it is quite opposite - GDI+ is the software solution. Unlikely to be changed anytime soon.

OTOH, GDI+ support would be nice.

Mirek
Re: GDI, and therefore, Draw performance on Vista [message #11762 is a reply to message #11761] Tue, 25 September 2007 12:44 Go to previous messageGo to next message
Zardos is currently offline  Zardos
Messages: 62
Registered: April 2007
Member
I have noticed the performance problem, too.
That's one of the main reason I switched back to XP.
The performance problem can only be prevented if using the "Classic Interface (windows 2000 look)" in Vista.
I noticed the problem in nearly all applications not only in Upp apps. Example: Firefox, IE, ....
It was very visible if I had maximized the window and scrolled the content of the windows with the scrollbar. I'm using a 1600x1200 resolution.
Resizing windows is very sluggish, too.

The main problem seems to be a small (but IMHO very annoying) latency between the action (ex.: scolling a window with the scrollbar) and the visible execution of the action (painting the modified content of the window). It looks like Windows is preparing the windows content in a back buffer - but unfortunately - displaying the new content 2-6 screen updates later.

I used the newest graphics drivers of course.

XP seems to be so much more responsive then Vista. Vista is even more worse than KDE or GNOME. Well, thats my opinion. Don't want to start an os flame war...

- Ralf
Re: GDI, and therefore, Draw performance on Vista [message #11763 is a reply to message #11760] Tue, 25 September 2007 12:52 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Tom1 wrote on Tue, 25 September 2007 05:45

OK, now I know better: The situation is worse.

http://msdn2.microsoft.com/en-us/library/bb173477.aspx

Any ideas, anybody?

// Tom


Well, I do not see there anything that would suggest that GDI is no longer accelerated...

And I have not experienced any GUI slowdown either so far. Yes, Vista is 7-15% slower than XP when compiling....

Mirek
Re: GDI, and therefore, Draw performance on Vista [message #11764 is a reply to message #11758] Tue, 25 September 2007 12:56 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Tom1 wrote on Tue, 25 September 2007 05:34

AMD64/GeForce7600GS/Vista64.



I would vote for driver problem here... Have you tried with Vista32?

Just for record, my Vista64 HW is G965 integrated chipset (which has another stupid problem - more on that later...), Core2 2GHz, 2GB RAM, 1280x800 (HP notebook).

Mirek
Re: GDI, and therefore, Draw performance on Vista [message #11765 is a reply to message #11764] Tue, 25 September 2007 13:18 Go to previous messageGo to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
Unfortunately I do not have Vista32, just Vista64Business.

To see if this has something to do with running a 32-bit application on a 64-bit platform, I just started to build (and put up a build method for) a 64-bit version of my software using Upp709dev1. It seems, I'll need to fix (read: make 64-bit compatible) a couple of things before I can get anything to benchmark.

I'll post the results when/if I get them out.

// Tom
Re: GDI, and therefore, Draw performance on Vista [message #11766 is a reply to message #11765] Tue, 25 September 2007 14:16 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Tom1 wrote on Tue, 25 September 2007 07:18


To see if this has something to do with running a 32-bit application on a 64-bit platform,



Actually, I do not thing this is a case. But 64 vs 32 bit driver could be...

Mirek
Re: GDI, and therefore, Draw performance on Vista [message #11801 is a reply to message #11766] Wed, 26 September 2007 11:04 Go to previous messageGo to next message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
OK, finally I'm back on track. The solution to get expected performance on Vista 64 is that BackPaint() needs to be enabled on the control. This does not have noticeable speed effect on WinXP or Win2k, but on Vista it results in about 4.5x performance penalty on heavy vector graphics, if BackPaint() is not used.

Another subject: Support for Microsoft Windows SDK v6.0. I went through compiling with x64 the packages (from Upp709dev1) I need for my software and noticed some issues that need to be addressed. Please find attached the list of warnings/errors and also the MSC8x64.bm file that works with Microsoft Windows SDK v6.0 x64 on Windows Vista. I chose not to submit the fixes, since correcting the code takes less time than verifying my thoughts about it.

Mirek, I hope you can pick these up for the next developer version of Upp.

// Tom

Re: GDI, and therefore, Draw performance on Vista [message #11804 is a reply to message #11801] Wed, 26 September 2007 13:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Tom1 wrote on Wed, 26 September 2007 05:04

OK, finally I'm back on track. The solution to get expected performance on Vista 64 is that BackPaint() needs to be enabled on the control. This does not have noticeable speed effect on WinXP or Win2k, but on Vista it results in about 4.5x performance penalty on heavy vector graphics, if BackPaint() is not used.

Another subject: Support for Microsoft Windows SDK v6.0. I went through compiling with x64 the packages (from Upp709dev1) I need for my software and noticed some issues that need to be addressed. Please find attached the list of warnings/errors and also the MSC8x64.bm file that works with Microsoft Windows SDK v6.0 x64 on Windows Vista. I chose not to submit the fixes, since correcting the code takes less time than verifying my thoughts about it.

Mirek, I hope you can pick these up for the next developer version of Upp.

// Tom




Well I planned to make full 64 bit support as soon as I have my notebook back Smile

Mirek
Re: GDI, and therefore, Draw performance on Vista [message #11806 is a reply to message #11804] Wed, 26 September 2007 13:52 Go to previous message
Tom1
Messages: 1212
Registered: March 2007
Senior Contributor
Quote:

Well I planned to make full 64 bit support as soon as I have my notebook back


Great!

Thanks,

Tom
Previous Topic: A new container in works: Flex - fast insertion vector
Next Topic: Optimization Mystery...
Goto Forum:
  


Current Time: Fri Mar 29 07:18:28 CET 2024

Total time taken to generate the page: 0.01832 seconds