profilegpu not accurate?
My scene says 28.88 ms on the gpu.
Yet profilegpu says 16.91 … Am i missing something?
profilegpu not accurate?
My scene says 28.88 ms on the gpu.
Yet profilegpu says 16.91 … Am i missing something?
Hey kurlylo3d,
So when you profile your GPU, it is essentially taking a screenshot of your scene at that moment, and compiling all the rendering information into a report. When it comes to accurately profiling your scene and your GPU, you will want to uncheck the Smooth Framerate option in your projects settings, and test against a standalone window launch. You will also want to make sure you are not running a lot of processes so you are testing against maximum performance of your computer as well.
Below is an example of a scene I have in my test bed project to show an example of this process. I am testing in my viewport which is why my numbers aren’t exactly matching. However my numbers to not differ to the same degree as you are reporting.
Scene Stat Unit Graph
Here you can see the my individual times for each call using the Stat Unit Graph. We are going to compare this to our other numbers generated by the GPU Profiler.
Profile GPU
Notice how these numbers added together are very close to my Frame and GPU time. This is giving me accurate results.
Scene Information
I am reporting about the same across all fronts. Keep in mind, when you move you camera across the scene, the number of objects and calls will differ therefore changing the report you will generate after profiling the GPU. A typical workflow when profiling is to navigate to various spots (most performance heavy) and optimize at those points. In turn, this will allow your already optimized areas to render cleanly as well.
For further information on Profiling the GPU and understanding the concepts please take a look over our documentation below.
GPU Profiling
If you have further questions please let me know.
Cheers,
Hey thanks for the help. Yea i am not sure why there is such a discrepancy between the profiler and what it says when viewing stats.
As for this question https://answers.unrealengine.com/questions/308108/draw-ms-goes-very-low-like-026-while-stream-textur.html
Any idea about that? Why would the draw behave like that? I thought the draw was the cpu ms… so if thats the case why would it mirror the gpu with the same high number when not streaming textures, but then fall to a low good number when it is streaming textures?
Many of my ms issues have stemmed from lots of overdraw dude to plants not distnace culling as well as 100 bamboo trees on top of each other practically… I also lowered some visual settings to around medium
Still though performance can be better. Difficult to narrow down things. But its espeacially difficult when the profiler is behaving unexpectedly.
Would you mind providing me with some screenshots like the ones I showed in my answer?
You are right in that the draw calls are on the CPU. I could give you a whole bunch of information right now, but I feel you would benefit more from reading the documentation links I have provided. It will answer all of your questions as well as provide you with some help on how to troubleshoot your streaming textures.
If you have texture streaming disabled, this means your texture pool is constantly full. "The texture streaming system is multi-threaded and priority-based. When using a texture pool (i.e. on consoles), it will not stream out a texture until that memory is needed by another texture with higher priority, which makes texture quality more stable and prevents unnecessary disk access.
The priority of a texture is primarily based on distance but it also takes other factors into account, such as time, wanted resolution, and whether it is forced (flagged to be fully streamed in).
The system periodically calculates two values for each streaming texture: the wanted number of mip-levels and the priority. It then sorts all textures based on their priorities and tries to make sure that all textures have at least the number of wanted mip-levels in memory, starting with the texture with the highest priority. If a texture needs to stream in more mip-levels and there is not enough memory available at the time, it will start to stream out mip-levels from low-priority textures and try again next time."
CPU Profiling
Texture Streaming
Let me know if you are still having trouble and I will be glad to help.
Cheers,
Sorry I have not responded in a while. I havent seen the draw ms go super low in aw hile, but still many issues… including lag spikes for no reason at all… i could be at 400 draw calls and still get lag spikes when i turn the camera …
Also interesting thing that i am curious about. I am attaching 2 screenshots… 1 at full res and 1 at less in the editor. The draw ms goes down significantly when its rendering window is smaller… but i dont understand why… would the draw ms be cpu related stuff and isnt the fill rate something that is gpu dependent? Wouldnt that make the gpu ms go down and not the draw ms? Draw ms currently goes down.
Another … i can turn off every emitter and the draw ms goes to 30ms… thats the number around the gpu ms is at… BUT if i turn all emitters back on it drops to 4 ms…
For one thats the exact opposite i would think… since u stop viewing the particle fx id think that it would make it run better not worse lol… (not that there are that many in view anyway…
Heres another weird thing… Same view… same camera angle… i disable the emitters and its at 30 ms… fine… but if i leave the camera there for a bit it drops to 7ms… then i turn them back on it goes to like 4… turn them off… to 7… Not even touching the camera… These values are just not being represented correctly… these debug tools are broken…
And another thing… during these lag spikes i get often… its the game ms, draw ms and gpu ms that all spike at the same time … same huge spike for them all… and game ms is normally down since nothing is really going on in the scene.
Hey kurylo3d,
Unless I have your project, I cannot really determine if what you are experiencing is a bug. The spikes can be caused by a lot of different things. Draw calls are handled by the CPU.
In the documentation link I provided about GPU profiling, you can find a bunch of different ways to reduce the draw calls. If you are CPU bound in the game thread, you need to look into what game code is causing this issue (e.g. Blueprints, raycasts, physics, artificial intelligence, memory allocation).
You can run through this checklist to try and minimize the spikes you are seeing.
The spikes can happen when you unclick the test window and then reclick. I have given about all the information I know of on this topic, and there is not a bug here it seems like you just need to test in a minimized test environment that will simulate the actual project being run as an executable on its own. You are going to see differences in your graph since you are now rendering at full screen resolution.
Thank you,
Hi andrew, I have already tried all of those things… with no effect. I am more then willing to privately give you access to our svn repository of our project. Its a massive 70 or so gb download, but if you seriously want to help then maybe this is the only way you can test it yourself. Let me know and we can talk privately to pass the info.
Have you attempted to test this on different machines with different hardware to see if the spikes are related to your specific machine or not?
Getting a project this large probably won’t be possible as there is a limit to the amount we are aloud to share and download. This is for our own security and the security of our users projects.
Could you provide me with your ‘dxdiag’ so I can take a look at your system’s specifications.
Here is the dx diag. And yes I have tested on my home computer which is i7 4.4 ghz with a gtx 980 and i have not seen any issues there… And if there are lag spikes there i probably dont notice them since the computer is so powerful.
Yeah the lag spikes are more than likely attributed to your CPU and GPU at this point. The dxdiag you sent says you are using a 590, which is a fairly low-medium card at this point. Especially if you are not seeing the issues on your 980 card on the other machine.
a scene with below 1000 draw calls with everything set to low settings should be able to run shouldnt it!? I mean is the engine that crazy that something that minimal cant run? I mean i even get lag spikes where its 600 draw calls.
I mean the card is good enough to get 30-70 fps in my scene, but still get lag spikes anywhere and everywhere… So its hard to just blame the card unless somethigns wrong… or am i wrong.
I am currently working on another issue that deals with something similar. You might want to take a look at this post to get a more in depth answer from one of our developers.
The profiler in the post is a bit more advanced, and shows more information so you might want to switch to that as well in order to see all the information from your scene.
We have moved away from the original question which has been addressed as to the differences between your scenes reported MS versus your Profiler reported MS.
Understanding where your project is taking a performance hit, will help identify and eliminate the issue. From there, it is out of my hands as optimizing your project falls on your specific machine and what is being rendered to the screen relative to this.
Hey check out this screenshot… im not sure how this makes sense… look at my draw ms … vs the draw calls. The draw ms should not be that low. And the gpu ms is the one that spikes when drawcalls unexpectedly raise. Usuallly in my lag spikes i get draw call spikes… but not always… they are usually temporary and lower if i stand still a few seconds… any ideas here? Editor giving me false information on drawms?
By the way this was one of those things that i wasnt able to get a screenshot of until now… some where scrolling up in this post i mentioned it and you asked for a screenshot of it.
I quite possibily may have found the root cause of all the lag spikes. Its the texture streaming. If i disable it … no more lag spikes… though the scene looks like a blurry mess when i do that… so thats no solution… Is there anyway to improve the texture streaming somehow?
I hate to be redundant, but the documentation on Texture Streaming is going to help you out a lot! It tells you the heuristics and how to debug your texture streaming by providing useful console commands and visualizers.
Debugging your Texture Streaming
Cheers,
Kind of already been through all that. At the time when i was we found out that the map was loading in textures at max res even if they were a mile away and took up like 10 pixels across the screen. Some were enabled as forced and then not enabled as forced… back and forth. Just weird stuff.
In either case i still get lag spikes … just not as many with it disabled. Its almost as though i get draw call surges from turning the camera… but they are only temporary …like it will jump to 1400 and then down to 800 in an instant… i have no idea why thats happening… and no idea how to fix that. Im talking it will go up… then i stand still for a second or do and it falls.
In fact you can see all the stuff we did here.