Skip to content

Performance Update July 2020

Latest
Compare
Choose a tag to compare
@gomoritz gomoritz released this 27 Jul 12:07
· 867 commits to master since this release

This release has its focus on improving the overall performance when playing with Dragonfly.

Performance improvements

A new options section named Performance has been created to allow the users to customize the performance optimizations by Dragonfly.

Font quality

The font quality option has been moved from the User Interface section to the Performance section. It specifies the factor that the size of the glyphs (the different characters) is multiplied with before they are drawn. A higher value results in a higher font quality in the user interface. However, higher-quality fonts also means more effort for Dragonfly to drawn & render the glyphs which can result in performance issues, so be careful when adjusting this setting.

A quick example
If the client needs a specific font with the size if 19 it multiplies this size by the font quality factor, draws the glyphs, and scales them down to the original size of 19 when rendering them in a user interface.

Chunk update speed

Assuming the default Minecraft behavior, when joining a server, the chunks (parts of the world with a size of 16x16x16 blocks) are downloaded and the blocks are rendered in the client (called a chunk update). Since there can be a lot of chunk updates that are processed at the same time, this can result in performance issues and frame freezes, especially when running around and updating more chunks around you. To reduce the performance loss by this issue you can specify a delay between every chunk update, which relieves the client and distributes the updates over a longer time.

There are two "Chunk Renderer Workers" which run in parallel and process the chunk updates. After every chunk update, the delay is applied only in the worker that processed it. This means that with a delay of 5 ms and 2 workers, there are 2 chunk updates every 5 ms. To improve clarity and intelligibility, users specify the speed rather than the delay in the options. Below you find every selectable choice with the delay.

  • Slower: 50 ms
  • Slow: 40 ms
  • Normal: 30 ms
  • Fast: 20 ms
  • Faster: 10 ms (selected by default)
  • Realtime: no delay

Use scaled font renderers

Before this update, a new font renderer with new glyphs had been created for every size of a font. If this option is enabled (which is the default) this behavior is changed. Instead of creating new font renderers, old ones are re-used and the glyphs are scaled down during the rendering process (similar to the font quality). When a new font renderer is required, the client searches for existing font renderers with greater size and calculates the scale factor that must be applied to the greater one to achieve the size of the smaller one. Since this process is a lot faster, we advise you to keep this option enabled as it heavily improves the loading time of user interfaces. However, this option can make text-size transitions (like in the InputTextField) less smooth.

Save glyphs

The glyphs (mentioned above) that are required to create a new font renderer are drawn when a new one is created by the client. These glyphs are drawn onto an image so in the end, there is an image with all available characters that the font renderer can draw. To save performance, these images can be saved on your device. When they are needed by the client, Dragonfly reads the images from the disk instead of re-creating them. The images are saved in the %MINECRAFT_HOME%/dragonfly/glyphs/ directory. This directory should take less than 5 MB of disk space.

Screenshot utilities

The screenshot utility have been released to the stable channel after being tested in the early access channel for more than one week. When enabled (Mod Options → Client → Screenshot utilities) they provide useful actions after taking a screenshot.

  • Save - By default the screenshots are not stored on your device and are lost after Dragonfly has been closed. To permanently save the screenshot in your %MINECRAFT_HOME%/screenshots directory, use this action.
  • Open - Opens the screenshot in your default photo viewer. In order to do so, it is stored in the temporary %MINECRAFT_HOME%/temp directory, which is being deleted when closing Dragonfly.
  • Copy - Copies the screenshot to your clipboard allowing you to paste it anywhere.
  • Upload - Uploads the screenshot to Imgur. Please note that the Imgur API limits the uploads to their platform and the upload can take some time depending on your internet connection speed.

Updates

In the main menu, the name of the update is now shown below the version number and a link to the release notes was added to the top right of the screen.