Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-262085

Transformation matrices are calculated on the processor, instead of the graphics card

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • None
    • 1.19.4
    • None
    • Plausible
    • Performance

      Judging by the fps drawdowns with a large number of players, and also after viewing the code, I realized that every frame of minecraft recalculates all the vertices for each entity, so it also does it on the processor, instead of the video card.

      I tried to fix it in a test engine on OpenGL (the same one that Minecraft uses) and at 20,000 entities it was about 30 fps
      https://www.youtube.com/watch?v=nqBObY-0nSQ

      This is a really important problem, because being in a room with 20 players, the fps is already starting to sink, but at the same time the number of blocks does not affect the fps at all, let them be at least 100,000, the fps will not drop noticeably.

      Also, a very significant problem of entities is that we transfer each frame to the vertex video card, although we can safely transfer them alone, and then simply transfer transformation matrices for animations and similar dynamic content via OpenGL uniform.

      No. It does not depend at all on what I have Fabric. You have a problem in the game, and you don't just have to reject this bug report. I can do exactly the same tests and measurements in vanilla, only the performance there will be even lower.

        1. image-2023-04-24-14-14-40-777.png
          608 kB
          FazziCLAY
        2. image-2023-04-24-14-16-06-560.png
          898 kB
          FazziCLAY
        3. screenshot-1.png
          35 kB
          FazziCLAY

            Unassigned Unassigned
            FazziCLAY FazziCLAY
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: