Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. The 2023.1 beta is now available for testing. To find out what's new, have a look at our 2023.1 feature highlights.
    Dismiss Notice

Official Feedback wanted! Profiling tools: how do you use them and what do you need?

Discussion in 'Profiler Previews' started by Agnes_C, Jun 27, 2022.

  1. Agnes_C

    Agnes_C

    Unity Technologies

    Joined:
    Nov 4, 2020
    Posts:
    3
    Hello everyone!

    As you know, we are always trying to improve our profiling tools. We are now in a stage where we are planning next steps and for that we would like to have a more holistic view of how you use them, what you need, and what are opportunities for improvement.

    If you have used profiling tools before (even just once) or are working on a project that requires optimisation, we would love to get your input via this brief survey which is designed to take no more than 5-10 minutes of your time.

    At the completion of the survey, you will have the possibility to opt-in for a follow up interview, where you share more in-depth feedback directly with us in the team.

    As always, we value your feedback and ask that you provide your candid and honest opinion, as that is what helps us improve! :)

    Please click on the link below to start the survey:
    https://unitysoftware.co1.qualtrics.com/jfe/form/SV_1Su7jIG7eM63lmS

    Thank you very much in advance, we really appreciate all your help!
     
    codestage likes this.
  2. DrummerB

    DrummerB

    Joined:
    Dec 19, 2013
    Posts:
    134
    I posted these suggestions in the survey, but just adding it here as well:

    The possibility of adding custom profilers to the built-in profiler is great. I wish it would also had some additional features:
    • Adding any type of custom meta data per frame and custom details UI at the bottom. Currently, custom profilers are limited to numerical values. It would be useful to also log some additional meta info per frame, such as current settings, list of active objects etc. These could then be used to display a custom info panel on the bottom.
    • Visualizing boolean values, i.e. indicating whether something was on or off in each frame. Currently, you can plot it as 1/0 values, but this is not very convenient or intuitive. Instead, I suggest using a background color that is used when the given flag is set and invisible otherwise. If multiple of these boolean values are enabled, split the view vertically and stack them on top of each other.
    • Visualizing time ranges. Sometimes you need to know how long different processes took across multiple frames, e.g. a loading process. It would be nice to visualize this in a similar way as the per-frame visualization of the CPU profiler.
    • Adding custom markers, like in the built-in UI Details profiler.
     
    Agnes_C and alexeyzakharov like this.
  3. MartinTilo

    MartinTilo

    Unity Technologies

    Joined:
    Aug 16, 2017
    Posts:
    1,906
    If I understand your need correctly, you can use Profiler.EmitFrameMetaData for that end. Does that work?

    Do you mean named labels attached to a specific frame? And visible in your costum module's Chart? Would you use that for a similar purpose as the time ranges, i.e. to discover and annotate sets of frames?
     
    DrummerB likes this.
  4. DrummerB

    DrummerB

    Joined:
    Dec 19, 2013
    Posts:
    134
    Thanks for the hint. This API turned out to be useful.

    Yes. We have some async processes that run over many frames (loading and processing of complicated assets at runtime) and consist of a bunch of different steps, like loading and uncompressing from disk, uploading to GPU, running some compute shaders. Currently, we can nicely visualize the workload per frame that was done, but we cannot easily see where specific tasks started and ended.
     
  5. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,021
    I'd love for the standalone profiler to work! I haven't been able to use it once in a real project since it shipped.

    It used to be that it didn't work because we had the UITK experimental package installed. That got fixed when the package went away, but right now it's incompatible with Cinemachine instead, apparently? This happens every time the standalone profiler loses and then gains focus:
    upload_2022-8-2_10-18-42.png

    Other than that, the Profiler team is as always doing a great job. I've been very happy with the development of profiling over the years - the ease of profiling has always been a strong point of the engine, and you keep improving it.
     
  6. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,094
    I just want to know how long rendering operations take on the CPU side (to submit) and on the GPU side (to render) excluding vsync/any sort of sync time.

    Just 2 easy numbers that I can look at, compare, and try to minimize.

    For Mobile! Support for Vulkan and OpenGL3+
     
    Agnes_C and MartinTilo like this.
  7. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    845
    I would like more actionable views of native memory in builds, as elaborated on in my recent post here.
     
    MartinTilo and Agnes_C like this.