Questions about Updating SDK. Visual C++ (.NET)
Started by jacknbiecdr, Nov 08 2012 08:54 AM
10 replies to this topic
Sponsor:
#7 Members - Reputation: 1204
Posted 08 November 2012 - 10:04 AM
D3D 9 and D3D 11 has several differences and upgrading a D3D9 to D3D11 program will require more and less of work. Updating the SDK doesn't make your program to use D3D 11 automatically. The D3D11 API has several differences and you should look into it before starting to work with it.
However, you should be able to use the D3D9 interfaces with the newest SDK too.
Cheers!
However, you should be able to use the D3D9 interfaces with the newest SDK too.
Cheers!
#9 Members - Reputation: 408
Posted 08 November 2012 - 01:26 PM
You mean you want to improve the FPS of your game? You have several ways to do that. But it depends a lot on what kind of game you have.
And on how much do you need to improve. Definetely DirectX 11 is faster than 9, but it is not as compatible.
And on how much do you need to improve. Definetely DirectX 11 is faster than 9, but it is not as compatible.
#10 Members - Reputation: 1204
Posted 09 November 2012 - 07:32 AM
now im just wondering how can i improve the game graphics smoothness
This is rather huge question in the sense that there are lots of things that affect performance.
There are several guide lines for typical scenarios such as:
- reduce drawcalls, state changes, shader changes, texture changes etc
- to reduce drawcalls you may and should use instancing
- if you are CPU bound (ie. you can't feed enough data/draw calls to your GPU) you'll have to look where to optimize your CPU usage
Cheers!
#11 Members - Reputation: 4032
Posted 09 November 2012 - 09:08 AM
As others have said, this is a huge area for discussion.
There is no magic bullet that you can apply and suddenly get improved performance with reasonably little effort involved; your example of updating to a newer SDK will be much more likely to bring you bugfixes instead. Upgrading to a newer D3D version is going to involve a huge porting effort, and if you do a naive port you're going to end up putting in a LOT of work only to end up slower.
You're going to need to get your hands dirty for this.
What you have to do is get a known good profiler, profile your application, determine it's bottlenecks, and target optimizations at those areas. That on it's own is a big enough topic, but you can get some rough ballpark guesses if you've set things up to be reasonably modular; e.g. by commenting out your particle drawing calls and comparing times with and without particles you can get a feel for how much time you're spending in your particle system (this is just an example; things may be different in your own code). Do this for other subsystems of your renderer and you begin to get an idea of what the overall picture looks like. PIX is also a good tool for helping you know where time may be being wasted in a frame.
I'd also recommend that you read the MSDN article "Accurately Profiling Direct3D API Calls".
when you've done that, maybe come back with some more specific questions relating to individually identified bottlenecks and you'll be able to get better advice on how to tackle them.
There is no magic bullet that you can apply and suddenly get improved performance with reasonably little effort involved; your example of updating to a newer SDK will be much more likely to bring you bugfixes instead. Upgrading to a newer D3D version is going to involve a huge porting effort, and if you do a naive port you're going to end up putting in a LOT of work only to end up slower.
You're going to need to get your hands dirty for this.
What you have to do is get a known good profiler, profile your application, determine it's bottlenecks, and target optimizations at those areas. That on it's own is a big enough topic, but you can get some rough ballpark guesses if you've set things up to be reasonably modular; e.g. by commenting out your particle drawing calls and comparing times with and without particles you can get a feel for how much time you're spending in your particle system (this is just an example; things may be different in your own code). Do this for other subsystems of your renderer and you begin to get an idea of what the overall picture looks like. PIX is also a good tool for helping you know where time may be being wasted in a frame.
I'd also recommend that you read the MSDN article "Accurately Profiling Direct3D API Calls".
when you've done that, maybe come back with some more specific questions relating to individually identified bottlenecks and you'll be able to get better advice on how to tackle them.
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.






