is there any option sycronize redenr time with DX and game app?
#1 Members - Reputation: 152
Posted 20 December 2012 - 08:19 AM
I did tune about Korea's MMO RPG game..
what is so shocking is drawprimitive's start time and end time is too long..It take all time about rendering
In My experience. when calling drawprimitive .. It run by driver not application so It must not syncronize with application..
Am I wrong?
must it run by seperate thread?
what happened?
ah I never measure drawprimitive time before..
I optimize that game's fps 5 to 42 .. but I still don't understand what happen
any idea?
Beauty is only skin deep , ugly goes to bones
World's only 3D engine tunner and 3D engine guru.
and real genius inventor
but very kind warm heart .. and having serious depression for suffering in Korea
www.polygonart.co.kr ( currently out dated and only Korean will change to English and new stuff when I get better condition
sorry for that)
#2 Moderators - Reputation: 13599
Posted 20 December 2012 - 08:38 AM
Most D3D commands, such as DrawPrimitive, just insert commands into a queue, which is read by the GPUIn My experience. when calling drawprimitive .. It run by driver not application so It must not syncronize with application..
Am I wrong?
must it run by seperate thread?
Application --> Driver --> Application...
||
\/
Commands, Commands, Commands, Commands
|| ||
\/ \/
GPU Front-end
||
\/
GPU Execution UnitsIt can run in the same thread as the application, but the CPU has to switch into 'kernel mode' in order to call driver code, which has some overhead.Also, the amount of work done in a draw call depends on how much state has been changed before that draw-call. D3D will check 'dirty flags' on the different states to determine which commands must be sent.
What optimisations did you do?I optimize that game's fps 5 to 42 .. but I still don't understand what happen
Edited by Hodgman, 20 December 2012 - 08:53 AM.
#3 Members - Reputation: 152
Posted 20 December 2012 - 08:04 PM
Most D3D commands, such as DrawPrimitive, just insert commands into a queue, which is read by the GPUIn My experience. when calling drawprimitive .. It run by driver not application so It must not syncronize with application..
Am I wrong?
must it run by seperate thread?Application --> Driver --> Application... || \/ Commands, Commands, Commands, Commands || || \/ \/ GPU Front-end || \/ GPU Execution UnitsIt can run in the same thread as the application, but the CPU has to switch into 'kernel mode' in order to call driver code, which has some overhead.
Also, the amount of work done in a draw call depends on how much state has been changed before that draw-call. D3D will check 'dirty flags' on the different states to determine which commands must be sent.What optimisations did you do?I optimize that game's fps 5 to 42 .. but I still don't understand what happen
Ah yes mostly drawcalls just gathering and packing odering to DX..
but that case It's not .. all drawcall cost exact time of rendering... (ah It's gambryo base game what I tuned ) so that why I post read thread....
----------------------------------------------------------------------------------
ah I clear all gabage code and rewrite terrain engine and all shader and post effect shader
It's run Geforce 6600 pentium 4 . 42 charactor and 500m viewing terrain and speed tree.. two light specular and reflection map
but I think If I could solve this problem at that time .. I may get more improvement at that project...I didn't have enough time for that..
Beauty is only skin deep , ugly goes to bones
World's only 3D engine tunner and 3D engine guru.
and real genius inventor
but very kind warm heart .. and having serious depression for suffering in Korea
www.polygonart.co.kr ( currently out dated and only Korean will change to English and new stuff when I get better condition
sorry for that)






