Time Nick Message 19:43 MTDiscord based on my reading of mapblock_mesh.cpp and content_mapblock.cpp, I am right in my understanding that: When we generate() the mapblockmesh, all node drawtypes (mesh, plantlike, normal, liquid, etc.) are rendered to a single IMesh. And then this single Imesh has a single drawcall during runtime. So that if it doesn't need to change, it doesn't. If true, what percentage of our rendering time is generating these mapblocks when you 19:43 MTDiscord have a lot of plantlike and meshlike drawtypes? is that available in debugging? 20:14 Krock @exe_virus the F6 profiler should include some meshgen timing information. If not, it should be rather trivial to add a ScopeProfiler there (or TimeTaker) 20:15 MTDiscord I was able to find it, confirmed this is relatively well optimized for node rendering. I.e. mesh drawtypes are put into the Imesh for a given mapblock 20:16 MTDiscord which means that instancing would only help a little bit with improving those mapmesh updates/creation. Valuable, but less important than currently non-instanced entity mesh renders. 20:19 Krock right. the meshgen has seen various improvements in the past, where the most recent one is likely the dynamically sized mapblock mesh (default 5*5*5 mapblocks I think) 20:59 MTDiscord it looks to me like currently we're just letting coordinates overflow in doubleToInt 21:06 [MTMatrix] Krock: the default for client_mesh_chunk is 1, i.e. it's disabled by default 21:25 Krock I see. 21:32 celeron55_ (it should probably be changed to 2 by default on non-mobile builds sometime soon) 21:49 MTDiscord I'm testing entity performance, and have a question: My CPU usage for any given processor never hits 100%, and my GPU never hits even 20%, yet I'm seeing major lag when a bunch of entities are on screen. Both CPU delays in processing and GPU framerate drops. Any ideas on profiling it? Like how would I find the bottlenecked thread CPU side? just thinking aloud and hoping someone smarter than me knows 21:53 celeron55_ well it's probably the client's main thread 21:54 MTDiscord that's my thinking, but I can't really tell just by looking at a flame graph. That only tells me what the main thread is doing most of that time 21:54 celeron55_ the one that generally calls into irrlicht, and generally waits synchronously for the GPU to finish its operations 21:55 celeron55_ (well, whenever that happens) 21:55 MTDiscord ah - didn't think about the synchronous waits