Search Unity

[FREE - AWARD WINNER] Graphy - Ultimate FPS Counter - Stats Monitor & Debugger

Discussion in 'Assets and Asset Store' started by Tayx, Feb 13, 2018.

  1. greengremline

    greengremline

    Joined:
    Sep 16, 2015
    Posts:
    183
    Ah yeah, the reason I set that up is that I set the state of graphy in my settings.ini file, which means that it starts off disabled and then as the player changes the setting, it gets either fully enabled or disabled - which means I can't depend on graphy's inner state, I have to explicitly set the state as either enabled or disabled

    So yeah, it does exactly the same as your code, it just separates & exposes Disable() and Enable() as well as ToggleActive() so that if needed, a user can explicitly set the state based on external logic
     
  2. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    No problem, it's already done ;)

    Get it on Github: https://github.com/Tayx94/graphy
     
    greengremline likes this.
  3. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Thank you very much for this Tool!
     
    Tayx likes this.
  4. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    You're welcome and thank you for your nice comment. If you find it useful please consider leaving a review on the store! That always helps ;)
     
    Viggy1996 likes this.
  5. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Patch v1.4.2 has been submitted for review in the Asset Store.

    - Added the option to disable hotkeys.
    - Disabled hotkey check when Editor is not focused (thanks @Rockylars).
    - Refatored and cleaned up code (thanks @Rockylars).
    - Fixed a bug where if the app was defocused and focused back, it would reset Graphy's module active values (thanks @Rockylars).
     
  6. AlexW_Rewind

    AlexW_Rewind

    Joined:
    Sep 10, 2018
    Posts:
    1
    I'm getting a load of missing reference errors on import of the asset in v2018.2.9f1.
    They are all related to AudioManager such as:
    Code (csharp):
    1. Assets/Tayx/Graphy - Ultimate Stats Monitor/Scripts/GraphyManager.cs(212,34): error CS1061: Type `AudioManager' does not contain a definition for `SetPosition' and no extension method `SetPosition' of type `AudioManager' could be found. Are you missing an assembly reference?
    Any ideas?
     
  7. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Hey @AlexW_Rewind! I'll take a look tonight or tomorrow and let you know (it seems like a pretty simple bug ;)).
    In the meantime, I posted your question to our Discord server, and someone will probably be able to help you there sooner.
    Feel free to join here: https://discord.gg/2KgNEHK
     
  8. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Hi, any chance you can add GfxDriver stats to the RAM module in the future?
     
    mfakkaya and Tayx like this.
  9. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    That's something I always wanted to do, but I had completely forgotten. I will add it to the roadmap and try to add it in the next release ;)
     
    mfakkaya and hungrybelome like this.
  10. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    336
    Awesome, thanks!
     
  11. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hey, just pop in to say this is pretty amazing, I own and used both Advanced FPS Counter and Stats Monitor so can I say with some confidence Graphy is doing a lot of things right :)

    I have just one gripe with it: it is spawning a lot of CS0649 warnings, most of them I think is easily avoidable, unless you kept them for performance reasons?
     
    Tayx likes this.
  12. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    I'm glad you're enjoying Graphy! I've never had that warning before. It seems that it's because some variables are not initialised?

    CS0649: Field is never assigned to, and will always have its default value 'null'

    Is that the warning you're referring to? I'll ask around our Discord to see if someone else has had that before. (You're welcome to join it if you want: https://discord.gg/2KgNEHK )
     
  13. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    I am on Unity 2018.3.0b12 and macOS, using .Net 4.x. But CS0649 is quite common: if you just create a field/property and never assign to it within that class (even = null should fix this warning). I am seeing 50+ warning from Graphy at the moment.

    Screen Shot 2018-12-04 at 23.54.27.png

    An example:

    Assets/Plugins/Tayx/Graphy - Ultimate Stats Monitor/Scene/Customization Scripts/CustomizeGraphy.cs(75,57): warning CS0649: Field 'CustomizeGraphy.m_monoColorButton' is never assigned to, and will always have its default value null
     
  14. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
  15. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    bitinn likes this.
  16. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    679
    Hi @Tayx

    Love Graphy. I was curious, would it be possible to expose Batches and SetPass Calls as well? It's not a big deal, but thought I'd inquire.

    Thanks!
     
    Tayx likes this.
  17. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    I'm glad you like it! It's something I've always wanted to add, as well as all the info you get in the Stats window in the Game tab, but sadly it's still not possible to access that info outside of the Editor as far as I know. Some people have requested this feature in the past, you can find more info in this links:

    - https://feedback.unity3d.com/suggestions/provide-api-to-access-render-statistics-outside-the-editor
    - https://forum.unity.com/threads/profiler-add-functionality-to-get-more-statistics.497602/
     
  18. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Patch v1.4.3 has been submitted for review in the Asset Store.

    - Renamed all the classes with the "G_" prefix to avoid namespace issues with external code (thanks @Rockylars).
    - Refactored some code and added explanations and regions in the G_ShaderGraph class.
    - Assigned all the variables in their declaration to avoid a new NET framework warning.

    As always, if you want to grab the new version right now, you can go to our Github or Discord ;)
     
    Bartolomeus755 and bitinn like this.
  19. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    679
    Thanks for the heads up and reply!
     
    Tayx likes this.
  20. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Graphy has gone from Paid, to Free, to Open Source, to Nominated for the "Best Development Tool" for the Unity Awards 2018. I couldn't be more proud of the tool this incredible community has helped me build over the last few months.

    A lot of work has gone into Graphy over the last few months to make it as stable and reliable as it is now. The tool is now fully free and maintained with the help of the community, if you could leave a vote in the Unity Awards, that would mean the world to me.

    Go vote! -> https://awards.unity.com/#best-development-tool

    We are trying to make Graphy the go to FPS Counter and Stats Monitor for Unity, and already some really cool people have contributed and improved Graphy over on Github. The asset is completely open source and free, but we still thrive on giving immediate support to anyone who needs it, and we have an active community on our Discord server that is always happy to help.

    I hope you enjoy Graphy! ;)

    Here are some useful links:

    Vote Graphy for best Development Tool - https://awards.unity.com/#best-development-tool
    Asset Store - https://assetstore.unity.com/packages/tools/gui/graphy-ultimate-stats-monitor-debugger-105778
    Github Repo - https://github.com/Tayx94/graphy
    Discord Server - https://discord.gg/2KgNEHK
     
    zyzyx likes this.
  21. NightmarexGR

    NightmarexGR

    Joined:
    Jun 7, 2012
    Posts:
    217
    When i build for unity 5.6.3f1 (64 bit)
    i get these errors :

    1)
    Shader error in 'Graphy/Graph Standard': maximum ps_3_0 constant register index (224) exceeded - Try reducing number of constants referenced at line 101 (on d3d9)

    Compiling Fragment program
    Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA
    2)
    Error building Player: Shader error in 'Graphy/Graph Standard': maximum ps_3_0 constant register index (224) exceeded - Try reducing number of constants referenced at line 101 (on d3d9)

    Compiling Fragment program
    Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA
     
  22. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Hello NightmarexGR !

    Thanks for getting in touch. That error happens when the graphics card or the graphics API doesn't support arrays of 512 in size, which I use in the default Graphy mode. Try changing modes to LIGHT (array size is 128 there), and hopefully that fixes your problem. ;)
     
  23. Zullar

    Zullar

    Joined:
    May 21, 2013
    Posts:
    651
    Nice tool. It shows the framerate jitter problem I've been trying to fix for a long time.

    For anybody that uses this tool and notices framerate variation and glitching/jitter we've found that Time.deltaTime (which most things are based off of) varies quite a bit and does not match monitor framerate. Even if the processor/GPU loading is minimal (i.e. a blank new Unity application) the framerate jitters due to this. Unity said in Nov'18 that they would be fixing around 2019.1. Details in this thread if interested https://forum.unity.com/threads/time-deltatime-not-constant-vsync-camerafollow-and-jitter.430339/
     
    Mauri and Tayx like this.
  24. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Thank you for the kind words and for raising awareness for that issue! Hopefully it gets fixed soon.
     
  25. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
  26. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Patch v1.5 has been submitted for review in the Asset Store.

    - Fixed a number alignment in the audio module (thanks @SuperPenguin).
    - Refactored some code to avoid warnings with the new NET framework 4.0.
    - Shader sorting fix for Screen Space - Camera.
    - Fixed a possible Null Reference Error in the debugger (thanks @strawlink).
    - Fixed import settings in 2 textures (thanks @strawlink).
    - Renamed all Action into System.Action to avoid possible namespace conflicts.
    - Fixed the int rounding to prevent 59.99999FPS from turning into 59FPS (thanks @Rockylars).

    As always, if you want to grab the new version right now, you can go to our Github or Discord ;)
     
    toth3max likes this.
  27. chambino

    chambino

    Joined:
    Jun 4, 2018
    Posts:
    12
    Does this asset support WebGL, and UWP builds? It would be useful to add this info on the asset store. I couldn't find it any way.
     
  28. chambino

    chambino

    Joined:
    Jun 4, 2018
    Posts:
    12
    Also I am getting
    Code (Boo):
    1. Unspecified error during import of AudioClip Assets/Tayx/Graphy - Ultimate Stats Monitor/Scene/Audio/SFX/269180__mickleness__chat-message-1-incoming-message_01.mp3
    upon importing the package. Hope it's not important.

    Unity version: 2018.3.6f1
     
  29. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    It does support it, except the Audio Module in WebGL, because Unity's API does not expose those methods in that platform sadly.

    Shouldn't be any problem, that audio clip is just used in the customization scene as an SFX so that you can test the audio module :)
     
    chambino likes this.
  30. Retrokat

    Retrokat

    Joined:
    Apr 23, 2015
    Posts:
    12
    We have been using Graphy for a few projects and its been fantastic but we just imported it into a new project and we are getting this error "Assets/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioMonitor.cs(189,26): error CS0117: `SceneManager' does not contain a definition for `sceneLoaded'" :( Any ideas? Using Unity 2018.3.12f1
     
  31. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Weird thing! According to the Unity scripting documentation it should still be the same:

    https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html

    https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html

    Is it possible your setup has some setting differences that may interfere with this?
     
  32. Retrokat

    Retrokat

    Joined:
    Apr 23, 2015
    Posts:
    12
    Hmm will have a look, the only thing we have done is imported other packages from the asset store so there may be a conflict some place. Thanks very much for the help :)
     
  33. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Awesome! If that still doesn't work, let me know. You can also join the Discord if you want to chat, I'm always looking at that ;)

    Discord link:
    https://discord.gg/2KgNEHK
     
  34. Retrokat

    Retrokat

    Joined:
    Apr 23, 2015
    Posts:
    12
    Cool thanks :) I found the solution, another package I had imported from the store had a script named "SceneManager" and it wasn't required so I deleted it and all was good.
     
  35. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Ah yes, the classic namespace conflicts. I've had to deal with a lot of those. Will take that one into account to prevent other people having your issue in the future, thanks for bringing it up! ;)
     
  36. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Patch v1.5.1 has been submitted for review in the Asset Store.

    - Hide Graphy in Game view when it's be disabled on startup.
    - Fixed error if no camera is present in the scene.
    - Added SceneManager namespace so to avoid possible conflicts.
    - Added support for asmdefs (thanks @QSFW).

    As always, if you want to grab the new version right now, you can go to our Github or Discord ;)
     
  37. VelociraptorGames

    VelociraptorGames

    Joined:
    May 28, 2017
    Posts:
    3
    Unity 2019.2 beta, namespace UnityEngine.UI could not be found. Weird, as UnityEngine.UI is definitely available when creating a new script.
     
  38. glenneroo

    glenneroo

    Joined:
    Oct 27, 2016
    Posts:
    231
    I have a 2019.1.2f1 project in VR. I added the [Graphy] prefab and pressed play but the resolution stats box becomes smaller when I move the mouse, and the FPS stats box is only visible when the mouse is moving. Canvas is set to Screen Space - Camera because I am primarily debugging on my monitor. Did I forget to configure something?

    EDIT: Disabling the Canvas Scaler stopped the resizing but now the FPS/RAM/etc. windows disappear/reappear when I move the mouse between GameView and Scene/Editor windows. The canvas apparently is still being resized.. perhaps because the VR camera position is constantly moving/rotating?
     
    Last edited: May 14, 2019
  39. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    This 2 comments where answered in Graphy's Discord, but posting here as well for visibility:

    It appears this was caused by an asmdefs bug in the 2019 beta version you were using. Just deleting the asmdef file will fix it.

    VR needs custom work to set it up, as Canvas Screen - Overlay doesn't work properly. His solution was setting it up as Screen Space - World I believe, and attaching it to the cameras as a child.
     
  40. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Congratz on the tool success, I have have my own console/debug hud that will probably never go on the store, but I don't have any graphing functionality, is there anything in this, like an api for doing custom graphing and just feeding data and positioning where we want. I mean I'm sure things could be hacked that kinda thing but if built in support is there or could be added for others to extend and use in others way that would be even better.

    Wouldn't mind seeing a...
    • Network Stats Module.
    done for Mirror those guys have like f-all debug stuff done for seeing network bandwidth etc, but then it was built from Unet which is Unity so it stems from them doing nothing in that area.
     
  41. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Thanks for the kind words!

    There currently is not a generic API or template to use with your own data. It's not hard to hack something that does the trick, but I should definitely add that to the roadmap!

    The problem with network stats is where to get the from, because there are so many different libraries and implementations out there, I can't make a generic Network bandwith monitor. Good suggestion though!
     
  42. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Awesome, I think it would be really good to have, with just options for sizing, styling, all that good stuff, even though this by itself does all the main things, is always other custom things you might want to graph and maybe integrate in a different way.

    yeah wish those mirror guys would do some better debug tooling/hud etc or provide a basic script that has all the main things down so it doesn't take someone else not familiar with the library ages to find out where all the important points are for finding out such things, probably stuff that is buried deep and not even exposed. @vis2k
     
  43. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Patch v1.5.2 has been submitted for review in the Asset Store.

    - Removed asmdefs to avoid missing reference issues in new Unity alpha versions.
    - Improvements avgFps calculation, changed list to array (thanks @Kaladrius2trip).

    As always, if you want to grab the new version right now, you can go to our Github or Discord ;)
     
    Last edited: Jun 18, 2019
    Mauri likes this.
  44. Aaron-Meyers

    Aaron-Meyers

    Joined:
    Dec 8, 2009
    Posts:
    305
    Thanks for Graphy! I mostly use it for the FPS module so I like to switch off everything else (in the Graphy component AND disable their game objects), but this always ends up with a null reference exception when I start it (inside SetPosition for whichever module it gets to first).

    I know if I just shut them off in the Graphy component, they get switched off once play mode starts, but this creates a lot of visual clutter in my game view while I'm in edit mode. Is there another way that I'm missing? If not, could we resolve this null reference exception?
     
  45. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,366
    does it show rendering/gpu/cpu separate?
     
  46. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    At the moment it only reflects the cpu, not the rendering/gpu.
     
  47. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,366
    It's not as trivial as I thought.
    I'm calculating GPU between OnPreCull and WaitEndOfFrame
    CPU between Update with low execution # and OnPreCull
    on desktop it matches profiler, on console it's swapped
     
  48. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Yeah I orginally tried to get those values using callbacks like that, but it's not completely accurate. I'm waiting for Unity to implement a proper API call to get those values.
     
    glenneroo likes this.
  49. zimmerfreack

    zimmerfreack

    Joined:
    May 8, 2020
    Posts:
    9
    @Tayx, as someone who just opened it and dragged the prefab in the scene: im wondering why the Stats Gizmo shows me 400fps and your tool shows me an average of 80fps. Whats the difference on the calculation? Which fps value should i believe more ?
     
  50. Tayx

    Tayx

    Joined:
    Feb 4, 2015
    Posts:
    73
    Graphy will always report with the Time.deltaTime value. The Unity stats fps is an estimation Unity makes on how many fps you will get on a build of your project.