Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
23
Question by Mortim · Jan 01, 2010 at 01:29 PM · graphicsperformancedrawcallsbestpractices

What is a reasonable number of draw calls relative to one hardware configuration ?

I am making a game which I plan to distribute as a stand-alone pc application. I have put much effort into reducing processor charge for the game to be able to run on low end processors, but I have noticed I have nearly 400 draw calls in heavy scenes, which seems pretty high based on what I have read on the forums.

So, assuming processor charge is not a bottleneck, how many draw calls should I target in order for my game to run smoothly on low-end computers (say 3-4 years old graphic cards) ? what about recent configurations ?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

6 Replies

· Add your reply
  • Sort: 
avatar image
36
Best Answer

Answer by Murcho · Jan 02, 2010 at 12:42 PM

The project I was working on recently managed just under 2000 draw calls on a 6800GS 128MB running at 1280x1024 resolution. The only thing that bottlenecked it was when the texture memory required rose over that 128MB mark, and obviously the card couldn't load everything in at once. That was our minimum target graphics card for what we were attempting to do.

At 400 draw calls, you shouldn't be stressing the system too much, but it all depends on what graphics cards you intend to target. Integrated GPU's with shared RAM may have issues with this level of draw calls. My best recommendation is to pick a target low end platform, and make sure your game runs smoothly on it at a decent resolution. You could pick up the parts to build such a system off eBay quite cheaply.

You should also note that Draw Calls are actually a bottleneck largely dependent on the CPU. They are generated each time the CPU has to send data to the GPU for processing. GPU's are very good at processing large amounts of data very quickly, but they are not good at changing what they are doing, hence why batching work into larger units can benefit your performance greatly. So don't apply all your testing based solely on GPU's, as CPU's have a greater effect when your performance is Draw Call limited. If it is fill rate limited, then it becomes a matter of the power of the GPU.

To determine if you are fill rate limited or draw call limited is simple. Run an FPS (Frames Per Second) monitoring program in the background like FRAPS to monitor your performance, and play through a sample of game at your highest available resolution, then again at a much lower resolution. If you game performance changes dramatically, then your game performance is fill rate limited, and you should look at the shaders you are using for better performance, along with the GPU. If the performance change is minimal, you are draw call limited, and should look at reducing the number of draw calls through batching or lower the number of objects visible at any one time.

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Mortim · Jan 02, 2010 at 03:53 PM 1
Share

Thank you very much. Your answer clears up many things. I wasn't aware that draw calls were actually a cpu issue.

Ideally, I would like my game to run on recent notebooks with the ion platform, which often come with really light cpus, so I don't think I am fill rate limited, and reducing cpu charge is definitely an issue for what I am trying to do.

Thanks again for a very instructive post.

avatar image flatplant · Apr 01, 2015 at 12:35 PM 0
Share

According to unity docs (http://docs.unity3d.com/$$anonymous$$anual/DrawCallBatching.html) "Draw calls are often seen as expensive [...] However this is not the case. [...] The emphasis should be on reducing the batch count, rather than the draw call count. [...] Only objects sharing the same material can be batched together. Therefore, if you want to achieve good batching, you need to share as many materials among different objects as possible."

avatar image Reedex · Jan 09, 2018 at 11:28 AM 0
Share

hi @$$anonymous$$urcho , i guess you've worked on a old school retro kinda game right?...please drop some tricks...i am on one too..the biggest thing is lighting for me,...could you? :))))) J

avatar image
13

Answer by MoliCat · Nov 24, 2014 at 11:31 AM

It easy to check just build and play you can feel the speed and performance !
For mobile devices numbers should be 40 to 60 and for latest mobile devices you can go upto 120 to 160.

The good and i think best way i found to reduce drawcalls is to use purdyjo's free plugin call"Drawcall minimizer" it amazing you can see it in action Here

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0
Wiki

Answer by David 3 · Mar 31, 2010 at 01:55 PM

Maybe someone could details ways to reduce Draw Calls here ?

for example combining meshes

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Ricardo · Mar 31, 2010 at 03:24 PM 0
Share

Separate issue, I'd actually recommend opening a question on "what's the best way to reduce draw calls", or something to that effect.

avatar image David 3 · Apr 07, 2010 at 09:58 AM 2
Share

Done - see http://answers.unity3d.com/questions/7247/whats-the-best-way-to-reduce-draw-calls

avatar image
0

Answer by kolmich · Jun 29, 2013 at 07:15 AM

This answer is more related for mobile than PC:

We found out, that unity3d skybox is using up to 6 drawcalls! This is guite a problem on devices having limits of max 30DCs!

We solved this by implementing KGFSkyBox which reduces the drawcalls to 1 if you have terrain (Hides bottom sky hemisphere). If you do not use terrain KGFSkyBox will render using 2 drawcalls which is still better than 6!

Check it out here: http://u3d.as/4Wg

If you have any questions or suggestions just contact us here: support@kolmich.at

Best wishes,

Michal

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image meat5000 ♦ · Sep 18, 2013 at 10:32 AM 0
Share

Which devices have max 30 DCs?

avatar image Exalia · Sep 18, 2013 at 10:41 AM 0
Share

Any 2nd Generation Iphone, I think even the Iphone3G, anything below an AR$$anonymous$$v7 CPU, I've never heard of a max amount of DCs but more than 30 with ~10000 tris will drop below 30FPS for sure on any pre AR$$anonymous$$v7 device

avatar image meat5000 ♦ · Sep 18, 2013 at 10:47 AM 0
Share

I think here in 2013 we can safely ignore iPhone2 and still make a profit, right? :P The Xperia Z (Android ofc) can stack ~450 DCs and around 400k tris before you see an impact, providing physics arent heavy. Of course, the technology is much more advanced.

avatar image
0

Answer by MrRoboBrain · Oct 05, 2013 at 12:36 PM

if you use NGUI toolkit from asset store you can pack all your needs in 1 draw call, i know it sounds crazy, but it is that awesome :D

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
  • 1
  • 2
  • ›

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

what's the best way to reduce draw calls? 9 Answers

Floor tiles - one big texture or many different prefabs? 4 Answers

Which way to write a shader in Unity is the best? 1 Answer

Beast lightmapping and draw calls 1 Answer

What's wrong? Heavy game for Mobile ? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges