Hi, I'm having some performance problems with a game. I'd like to find out which graphics API it uses( DDraw, Direct2D, etc.) to see if there's something I can tweak in windows, or otherwise, to make it run better.
It's purely a 2D game, called Distant Worlds. On my system(Win7 64bit) it's not using my graphics card at all, just the CPU. People on XP are not reporting graphics slowdowns however. This initially led me to believe that it might be using DDraw, since I believe they removed hardware acceleration support for that API with Vista/7. I once had a similar problem with the DDraw game Space Empires 5 which would run great on WinXP but not on Vista or 7.
The only .dll files in the game directory is couple of lua5.1 and interop files. The game requires DirectX( it uses DirectSound ) but I don't know if it's related to the graphics. It also requires .NET framework.
Anyway, if it really is DDraw then I suppose there's not much that can be done about the performance. But I'd like to know for sure. Is there an easy way to do this?
Identifying graphics API used by game
Assuming you have Visual Studio installed:
[font=courier new,courier,monospace]dumpbin /imports foo.exe[/font]
[font=courier new,courier,monospace]dumpbin /imports foo.exe[/font]
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]
Maybe check out Dependency Walker too?
http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux
Thanks for the help. None of them showed anything significant on the main executable(Distantworlds.exe), just Kernel32, but I did find GDI32.dll in another executable( DistWorldrez.exe). Couldn't find much else graphics related. However, I thought GDI was hardware accelerated on Win7 given WDM was running and you had WDDM1.1, yet I'm not seeing any GPU activity at all, nor am I able to monitor fps. Any ideas?
Also found User32, Ole32, OlePro32 and some others of less interest.
Also found User32, Ole32, OlePro32 and some others of less interest.
I imagine direct x just looking at the system reqs:
Minimum System Requirements for PC Game – Distant Worlds
* OS: Windows XP SP2 / Windows Vista / Windows 7
* CPU: Intel Pentium IV at 1.5 GHz
* RAM: 1 GB
* HDD: 500 MB free disk space
* Graphics: 32 MB Graphics Memory
* Sound Card: DirectX 9 Compatible
* DirectX: Version 9.0c
Minimum System Requirements for PC Game – Distant Worlds
* OS: Windows XP SP2 / Windows Vista / Windows 7
* CPU: Intel Pentium IV at 1.5 GHz
* RAM: 1 GB
* HDD: 500 MB free disk space
* Graphics: 32 MB Graphics Memory
* Sound Card: DirectX 9 Compatible
* DirectX: Version 9.0c
Well, I know it uses DirectSound, as mentioned. I think it also uses it to display the opening movie. But I don't see any indications of it using any DirectX API for the graphics.
Just can't figure out why it won't run with hardware acceleration.
Here's the dumpbin log for DistWorldrez.exe, the other one was uninteresting.
Just can't figure out why it won't run with hardware acceleration.
Here's the dumpbin log for DistWorldrez.exe, the other one was uninteresting.
However, I thought GDI was hardware accelerated on Win7 given WDM was running and you had WDDM1.1, yet I'm not seeing any GPU activity at all, nor am I able to monitor fps.
GDI is distant legacy, but it may still be used. Since it is not longer relevant in era of GPU-based desktop, drivers may choose to offer only baseline support for backward compatibility and no notable acceleration.
So despite being an old and trivial API, driver vendors simply ignore it since it's not on critical path of today's software. It's perfectly possible for GDI-based app to perform worse on today's hardware than it did during it's prime.
Same can happen to older DX APIs. Modern cards sell for latest greatest DX11 hyperhtreaded benchmarks, the rest isn't really considered beyond "it works". Even fixed function pipeline will soon be or already is there.
I see what you're saying, but from what I can tell GDI is still supported, even with hardware acceleration. It was even 'fixed' from Vista, where it was solely CPU-based.
See: http://msdn.microsof...p/ff729480.aspx
See: http://msdn.microsof...p/ff729480.aspx
Availability of Hardware Acceleration
GDI is hardware accelerated on Windows XP, and accelerated on Windows 7 when the Desktop Window Manager is running and a WDDM 1.1 driver is in use. Direct2D is hardware accelerated on almost any WDDM driver and regardless of whether DWM is in use. On Vista, GDI will always render on the CPU.[/quote]
So while Direct2D would obviously be preferred, it definitely seems as if GDI should at least make use of some hardware acceleration once the prerequisites are met. That's why I'm kinda at a loss as to why it's not using the GPU at all.
*edit*
Looking around some more, it seems only a few GDI features have HW-acceleration in Win7. And obviously not the ones the game is using. So no luck there I guess.
Scratch that, now I'm even more confused. Just read through an article on Tom's Hardware about 2D GDI acceleration and Windows 7, then downloaded their 2D benchmark. Checked it with Dependency Walker and it's using User32 and GDI32 just like the game. Difference is, their benchmark is showing significant GPU acceleration( upwards of 40% depending on which test I run) yet the game is consistently showing 0% GPU usage.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement