Skip to content

Tooling for Framerate, Framerate issue? #1115

Description

@Codys-Wright

Maybe I'm doing this wrong, cloned and ran after updating both rust and xcode-cli + metal shaders.

The "Cargo run" version of the gallery seems like its running around 30fps, although I can't tell. Certainly not as smooth as zed, this is most obvious when scrolling.

What's the recommended way for me to figure out what the actual frames of the application are?

I remember a video on the zed channel saying that they don't actually render at 120 fps, but they only do when the user makes an input, because ProMotion from apple actually slowed down the display if it was a constant 120 fps. Anyways...

This project is AWESOME. Looking forward to contributing what I can. Just discovered zed and when I found out it was written in rust and the ui was also rust, it was the first rust application that I felt truly had a great UI. Egui is powerful but I haven't seen any good UI interfaces built with it haha.

Anyways, just looking for recommended tooling and if anyone else experiences the same thing, since a ShadCn App feels snappier than the gallery for me, so maybe Im doing something wrong

cheers :D

Activity

  1. Codys-Wright commented on Aug 6, 2025

    @Codys-Wright
    Author

    Just checked out all the examples and am even more blown away.

    However, the framerate issue seems more apparent in the markdown example, typing fast results in a buffer where everything freezes every few seconds.

    Macbook M1 Max if thats helpful

  2. huacnlee commented on Aug 6, 2025

    @huacnlee
    Member

    GPUI Component all elements are has good performance.
    Our application built-on this and all features can stable on 120 FPS, even it has a very complex UI layout.

    FPS is triggered only when there is an interface change, such as scrolling a list. If you keep the interface still, GPUI will not refresh (this can reduce energy consumption).

    And all you test must under cargo run --release

  3. huacnlee commented on Aug 6, 2025

    @huacnlee
    Member

    Markdown example there have an issue for cache, that example not ready for as a Markdown Editor, because markdown render performance need cache, when you change the input, the cache needs to invalidate and re-render again.

    So, that performance just the Markdown parser issue in that case (Just this example not good enough), not the GPUI and GPUI Component.

  4. Codys-Wright commented on Aug 6, 2025

    @Codys-Wright
    Author

    Ah okay!

    And all you test must under cargo run --release

    This is super helpful will try!

    I've seen some screenshots of people with fps counts and stuff running as an overlay like mangohud or something,

    Like your GitHub discussion in the zed github

    zed-industries/zed#24260 (comment)

    Sorry for being naive, but how do you do that :D

  5. Codys-Wright commented on Aug 6, 2025

    @Codys-Wright
    Author

    running with --release makes it butter smooth :D

    Closing the issue as it addresses the actual issue, but still very curious at how the fps meter works

  6. locked and limited conversation to collaborators on Aug 7, 2025
  7. converted this issue into a discussion #1118 on Aug 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions