Add more GPU tracing spans - #25398
Conversation
|
I want to point out that auxiliary_views hides uniform_allocation, bin_unpacking and early_mesh_preprocessing, but if you zoom in you can see em. |
pcwalton
left a comment
There was a problem hiding this comment.
Works for me as long as things continue to work on WebGL 2/WebGPU. Thank you!
|
Can you explain auxiliary_views more? I don't think I understand. |
In camera_driver it loops through all views. Since there are 6 view per point lights and 1 per spotlight for shadows this gets scaled with the amount of lights we have. In camera_driver it first goes through the Auxiliary views and then the Camera views are chained(for Cameras there is the per_view_shadow_pass, which then scales per Camera instead). This loops then runs the corresponding schedule per view. For Auxiliary this includes shared_shadow_pass. So to not create a span per shared_shadow_pass, I then put a time span before the loop, and the end it when reaching the Camera view part of the loop. |
|
Gotcha. I think auxiliary_views might be a bit confusing for users, but I'm willing to merge this as-is. People can always use e.g. nsight for more detailed info - timestamp queries are mainly meant for in-game overlays (I do this in Solari), and for quick eyeballing in Tracy when looking at CPU vs GPU bottlenecks. |
Objective
Solution
Testing
Showcase
volumentric_fog example's new profile:
Click to view showcase
AI Disclosure
No code was written with AI. I used Claude Opus to find where spans were missing, reviewing and some explaining.