Skip to content

Voxy mod for Minecraft has poor performance due to a slow function call #1350

Description

@djmrFunnyMan

Requirements

Application

Voxy (Minecraft Mod)

Processor / Processor Number

Ryzen 7600X

Graphic Card

B580

GPU Driver Version

32.0.101.8425

Rendering API

OpenGL 4.6

Windows Build

Windows 11 25H2

Intel System Support Utility report

igcit_ssu.txt

Description and steps to reproduce

Voxy is a modification which adds LOD's to Minecraft Java. However on Intel Arc it suffers from poor performance due to an issue with the Intel driver. Specifically the org.lwjgl.opengl.ARBIndirectParameters.nglMultiDrawElementsIndirectCountARB() function call takes up to 90% of the frametime. This might not be the actually slow function call. Spark has issues identifying which call the GPU is currently executing due to async compute

Image

As a result voxy takes up to 30ms of frametime. Severely degrading performance.

Image

For comparison on my Ryzen iGPU (which is much weaker than my Intel B580 dGPU) voxy takes less then 0.2ms of frametime

Image

Important information:

  • I am not the developer of this mod
  • Link to the repository: https://github.com/MCRcortex/voxy
  • The issue has always been present (not introduced in a recent update)
  • It is not resolved by reinstalling the driver
  • The MDIC function call might not be the culprit. Spark has issues identifying which call the GPU is currently executing due to async compute

Installation guide

Reproduction Steps

  • In Options > Video Settings change Render Distance to 2 Chunks
  • Create a new world in creative mode
  • Run the following command (press T to open chat)
    • /chunky start
  • Wait for it to finish
  • Run the following command
    • /voxy import current
  • The issue (lower than expected FPS) should be apparent

Spark Profiler

The spark profiler is a useful tool, which I used to produce the flame graph earlier in the report. You can download it here as a fabric mod https://spark.lucko.me/ Spark has issues identifying which call the GPU is currently executing due to async compute. As such take its results with a grain of salt
You can use the following command to profile the client performance for 60 seconds: /sparkc profiler start --timeout 60 (paste the command into game chat)

Here's a spark profile I already ran: https://spark.lucko.me/LHpv2JQt2z

Metadata

Metadata

Assignees

Labels

Support RequestIssue is a request for support.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions