For bug reports, lag, and rendering issues, please use bugs.mojang.com! Share your thoughts on graphics issues like lighting, animations, colors, textures, icons, and effects related to graphics. Torchlight in your hand has been evaluated for its impact on gameplay and rejected.

230

Vulkan for rendering instead of OpenGL

24 Comments

Please sign in to leave a comment.

Sorted by oldest
  • 30
    Registered User commented
    Comment actions Permalink

    The Java Edition rendering engine is garbage, and only got worse with 1.14. I'm beginning to think Microsoft is trying to kill Java edition slowly to try to get everyone to move to their more monetized Bedrock edition.

  • 15
    Registered User commented
    Comment actions Permalink

    The fact is, Vulkan rendering is possible in Minecraft. (Reference here)

    However, many people who play minecraft (My sisters included) have computers that don't support Vulkan.

    OpenGL is a powerful (If bloated) graphics library, the problem is bad rendering code and as of 1.15 Minecraft only uses OpenGL version 2.0 when 3.0 is actually older than Minecraft itself.

  • 13
    Registered User commented
    Comment actions Permalink

    It could be a second backend that would coexist with the OpenGL one. Also it might be a good idea to use more modern OpenGL.

  • 18
    Registered User commented
    Comment actions Permalink

    I agree with this - Vulkan needs to be an available, officially supported option for players.

  • 2
    Registered User commented
    Comment actions Permalink

    I don't think this will be possible unless they decided to make a new edition of Minecraft with it or they'd just use DirectX 12 instead. Adding Vulkan support on the current java edition will just increase the game's size and players with entry-level pc's won't be able to play anymore and will also lead to war I guess also the effort it took for Mojang to rewrite Minecraft just for Bedrock Edition took years

  • 6
    Registered User commented
    Comment actions Permalink

    Update: yeah it's possible to do it without rewriting Minecraft.

    Rendering in 1.15 got abstracted away from the code itself and to be ready into Blaze3d, which is the rendering engine which minecraft will use.

     

    My theory is that they will make different implementations of Blaze3D to be able to be used so that the user can use the best and fastest library once they make a Vulkan implementation. 

  • 6
    Registered User commented
    Comment actions Permalink

    Minecraft is running horrible on macOS!

    With Vulkan and MoltenVK it would run really fast!

    Minecraft bedrock is not an alternative!

     

  • 3
    Registered User commented
    Comment actions Permalink

    I saw this somewhere, I think it was on reddit, but, if Mojang wanted to replace OpenGL, that would mean redo the entire code of the game. I also think that Terrain Generation does not have anything to do with OpenGL, since even if you have 12-24 Gb of ram for Minecraft, it is not going to get even close to what Bedrock can do. So, I only see Mojang needing to switch from OpenGL to, let's say, Vulkan, so we could have True Real Time RAY-Tracing, and RTX Acceleration. And, I don't see that many people wanting it (This is probably due to the fact that everyone thinks SEUS PTGI and Continuum RT are Ray Tracing Shaders, but they are not. They are Global Illumination. So, it won't get even close to what Bedrock RTX can do. Because of all of this, Mojang is probably not going to put the effort to change the rendering engine anytime soon, because not that many people want that to happen.

    This is my theory

  • 6
    Registered User commented
    Comment actions Permalink

    Minecraft Bedrock edition is not an alternative!

    You can't stay forever in the past and a transition to Vulkan would be great and efficient for the future.

    OpenGL or DirectX is not the future at all and should be removed.

    Please Microsoft add Vulkan support and MoltenVK support for Minecraft and don't kill the Java edition!

  • 2
    Registered User commented
    Comment actions Permalink

    up

  • 1
    Registered User commented
    Comment actions Permalink

    Just some personal experience here.

    8600K, RX 570 8Gb, 16Gb RAM, NVMe SSD, resolution: 1280x1024@75
    Win10 Java 1.16.5 vanilla included Java8, max settings render distance 32: around 10-30 fps with huge lag spikes when the game flushes 3 gigabytes of memory every ten seconds

    Debian Java 1.16.5 Sodium, Lithium, Hydrogen, Starlight with adopOpenJDK 16, max settings render distance 32: the lowest I get is 90, but it usually holds 150-200, underground is constant 600+ fps

    Installing all this onto a Win10 will increase that 10-30 fps to about 70-80

    For me, it is clear that, in fact it is NOT OpenGL's fault that a 2009 (okay, argue with me, but be it: a 2011) block game cannot perform on decent hardware. In my childhood, around 2016 someone flexed that they got 1000 fps in Minecraft, and it's indeed possible, still to this day if the coding team's goals weren't for code readibility or ease of use. Sure, moving over to Vulkan would be a great help (I personally highly recommend everyone that they should only learn Rust and Vulkan, instead of e.g. C++ or OGL/DX)

    Porting Minecraft to Vulkan is a big deal, and they probably won't do it because 100% of the population didn't bought the latest RTX 9090 Ti SUPER with a 69 core 10 Ghz processor. What they could easily do is team up with the modders and figure out a solution: optifine already breaks a lot of mods, integrating it would mean nothing, as it would became the new standard; same for CaffeineMC.

    Just my thoughts.

  • 4
    Registered User commented
    Comment actions Permalink

    up this. i'm getting 30-40 fps with RX5700 and the problem is entirely OpenGL. Even with optifine and all other tweaks i get 100 max and i can't even go near using a shader.

  • 1
    Registered User commented
    Comment actions Permalink

    Well... I get around 1000 FPS with my 5700xt so idk why you can't get 100FPS with your 5700. Also I can play with the highest Chocapic 13 shaders and still get 400FPS

  • 2
    Registered User commented
    Comment actions Permalink

    I'm sorry, i dont believe you get 1000fps with an rx5700xt unless you're running at extremely low settings and at like 480p. At 1440p with a 3070ti I get 300-400 max without shaders.

  • 1
    Registered User commented
    Comment actions Permalink

    Any update on Vulkan support?

  • 1
    Registered User commented
    Comment actions Permalink

    They should make an option to either do vulkan or opengl so people on bad computers still play and it goes faster on newer computers

  • 1
    Registered User commented
    Comment actions Permalink

    Could help multicore use and give bonus performance where possible instead of having an uneccessary ceiling, also would be really good if we could get Vulkan instead of DX12 as VK could help with console ports & even work better on SteamDeck. 

     --- 

    In response to above: There would usually be multiple options when adding support for new API's (Waste of the old work otherwise, and allows for testing the new API)


  • 1
    Registered User commented
    Comment actions Permalink

    I do know of a 2 projects adding Vulkan right now. One is on github and is heavily in beta, while the other is made by Continuum Graphics for their Continuum RT shaders. However this is still in beta and is unavailable to the public.

    It would be a really big project and I think just sticking to OpenGL for a while if some optimisations are made. For instance chunks should be stored in RAM, which would be enough to increase the FPS by 100% if not more.

    You can see there is tons of work yet to be done with OpenGL though, Sodium for instance is a light mod that introduces optimisations that can literally multiply your FPS by 5 times or more. Ferrite core is another mod that lowers your RAM usage, which would be very useful if chunks moved to RAM. 

    There would be major benefits from moving to Vulkan, however the issue is that it would take far too much time, and better performance can be achieved by optimisations. Sure, there wouldn't be things like proper ray tracing support, however that can be left to shader developers until ray tracing becomes a standard option that isn't as intensive to run.

  • 0
    Registered User commented
    Comment actions Permalink

    I think we agree that everyone can run minecraft with its basic graphics settings.

    However shaders exists and they're amazing, and are another option to play with the game.

    The "update" to vulkan is needed because the current game engine is to limited, and this change would only bring good things to the game.

    I hope this thread will be one day under review...

  • 0
    Registered User commented
    Comment actions Permalink

    I think Mojang needs to rewrite the entire rendering engine. But this engine should be abstract so that you can use different graphics APIs. Such as OpenGL support for older computers and Vulkan support for newer computers. This engine should also have batching, instanced rendering and other optimizations.

  • 0
    Registered User commented
    Comment actions Permalink

    also I know mac is a minority and not important to them but it would be really nice if they could get it to run in metal 3

    also it would be really nice if they could optimize their rendering even separately from that, like they do in bedrock edition, which is even faster than java with sodium

  • 0
    Registered User commented
    Comment actions Permalink

    Software Developer here. And i just want to say that there is nothing wrong with OpenGL. Rendering is a tough process and just moving to Vulkan won't solve everyone's problems. All Vulkan really is, is a less abstracted interface for the GPU. OpenGL let's you do exactly the same as Vulkan, in less code.

    The main reason Vulkan is faster for graphics, is actually just minor CPU overhead. In OpenGL you do less calls, but also have less controls, hence maybe it does stuff that you don't want/need.

    Vulkan is no miracle drug that makes your GPU faster. OpenGL is already really fast, problem is, voxels are expensive to render. There are a lot of triangles being drawn, simply.

    Memory usage is also high, simply because there is a lot to store. Let's say we store one short(16 bytes) to identify each block, to specify type. Then we have one HashMap(lookup table) for storing the identifiers for each of the type IDs, 0 being air, 1 being stone etc, and one ArrayList(list) for storing Tile Entities. Each chunk is 16x16x384(as of 1.18), which sums up to 98304 blocks. Each one of these blocks need 16 bytes each, summing up to 3145728 bytes, or 1536 kb, roughly 1 MB of RAM just for identifiers. A bunch of memory for identifiers and a bunch more for tile entities. Then you've got roughly 100 chunks loaded at a time, a bunch of textures and entities alongside memory preallocations. There is no way you can keep memory usage below maybe 2 GB.
    However, it can be optimized. A lot.

    Out of chars.

    -- Jimmy

  • 1
    Registered User commented
    Comment actions Permalink

    Yes I was going to create a feedback post on this but it turns out it's already posted I agree with this so much, especially since a lot of mobile devices (Android) have Vulkan APIs downloaded with them, and it would run so much better on mobile devices if it was supported.

  • 0
    Registered User commented
    Comment actions Permalink

    Someone made a mod  rewrites Minecraft OpenGL renderer to use Vulkan API

    Vanilla - 45-60

    Vulkan -  300-450