Live data from Hacker News

Minecraft Java is switching from OpenGL to Vulkan

gamingonlinux.com

21–30 of 177 posts

Re: Minecraft Java is switching from OpenGL to Vulkan

#21

Not a bad choice... since Minecraft Java edition only supports desktops, they don't have to deal with the abysmal Vulkan drivers on mobile. Though I thought a company large as Microsoft would have the resources to build a cross-platform RHI with the most stable API available for each platform (DX12 for Windows and Metal for macOS)...

Honestly pick between Vulkan and DX12 is very superficial.

But you can easily make Vulkan run on macOS. Not sure what would be the reason to use DX12 in the new project today given free choice of technology, especially when team comes from OpenGL.

Re: Minecraft Java is switching from OpenGL to Vulkan

#22

Not a bad choice... since Minecraft Java edition only supports desktops, they don't have to deal with the abysmal Vulkan drivers on mobile. Though I thought a company large as Microsoft would have the resources to build a cross-platform RHI with the most stable API available for each platform (DX12 for Windows and Metal for macOS)...

On mobile 3rd party launchers use ANGLE to use EGL or Metal drivers.

Re: Minecraft Java is switching from OpenGL to Vulkan

#23
I wasn’t aware Java had Vulkan bindings. So this is JNI I’m guessing?

This makes sense. I guess I’m a bit surprised they were still OpenGL anywhere.

I never really got into Minecraft though, so I can’t pretend I know much about its current state. I didn’t even realize there was a non-Java version for desktops.

Re: Minecraft Java is switching from OpenGL to Vulkan

#24
This is great news. I was super disappointed when Rainbow Six Siege dropped the Vulkan version of their game. They cited the support burden as the reason they dropped it, as nearly every game in the studio defaulted to DX11/12. For at least two years after that they received non-stop complaints of frame stutters on DX12. I do not know if the situation has gotten much better since then.

Slightly off-topic too, but I would love for Minecraft Java Edition to have a safer and more robust modding API. For the past decade modding efforts have mostly just been patching on top of a reverse engineering mod framework which exposes some of the game to mods. Factorio is practically the Platonic Ideal in this regard with its Lua sandboxing and restricted API. This is a huge security and stability issue, but Microsoft have no real incentive to fix it.

Re: Minecraft Java is switching from OpenGL to Vulkan

#25

I'm frankly shocked microsoft has a java implementation. I thought they were the type of organization to pretend it didn't exist!

While you meant Minecraft here, to shock you further, please enjoy this: https://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine

They also currently release their own build of OpenJDK.

https://www.microsoft.com/openjdk

Re: Minecraft Java is switching from OpenGL to Vulkan

#26

Earlier quoted context omitted.

Ah, I had misread "minecraft" as "microsoft". I wasn't aware minecraft java was a thing. Crazy they have their own java implementation!

It’s the Java version of the game, not a game version of Java. There’s a native version called bedrock

> It’s the Java version of the game, not a game version of Java.

This would be termed "Java Minecraft", not "Minecraft Java"

Re: Minecraft Java is switching from OpenGL to Vulkan

#27

Earlier quoted context omitted.

It’s the Java version of the game, not a game version of Java. There’s a native version called bedrock

> It’s the Java version of the game, not a game version of Java. This would be termed "Java Minecraft", not "Minecraft Java"

No, the game's Java version's official title post-Microsoft acquisition of Mojang is Minecraft: Java Edition.

Re: Minecraft Java is switching from OpenGL to Vulkan

#28
post #8

I hope they have a solution to the notorious Vulkan shader compilation lag spikes.

I’m not even a neophyte here but why don’t precompiled shaders solve that?

Depends what you're precompiling.

For Vulkan you already ship "pre-compiled" shaders in SPIR-V form. The SPIR-V needs to be compiled to GPU ISA before it can run.

You can't, in general, pre-compile the SPIR-V to GPU ISA because you don't know the target device you're running on until the app launches. You would have to precompile ISA for every GPU you ever plan to run on, for every platform, for every driver version they've ever released that you will run on. Also you need to know when new hardware and drivers come out and have pre-compiled ISA ready for them.

Steam tries to do this. They store pre-compiled ISA tagged with the GPU+Driver+Platform, then ship it to you. Kinda works if they have the shaders for a game compiled for your GPU/Driver/Platform. In reality your cache hit rate will be spotty and plenty of people are going to stutter.

OpenGL/DirectX11 still has this problem too, but it's all hidden in the driver. Drivers would do a lot of heroics to hide compilation stutter. They'd still often fail though and developers had no way to really manage it out outside of some truly disgusting hacks.

Re: Minecraft Java is switching from OpenGL to Vulkan

#29

Earlier quoted context omitted.

It’s the Java version of the game, not a game version of Java. There’s a native version called bedrock

> It’s the Java version of the game, not a game version of Java. This would be termed "Java Minecraft", not "Minecraft Java"

You appear to be the only one confused

Re: Minecraft Java is switching from OpenGL to Vulkan

#30
post #23

I wasn’t aware Java had Vulkan bindings. So this is JNI I’m guessing? This makes sense. I guess I’m a bit surprised they were still OpenGL anywhere. I never really got into Minecraft though, so I can’t pretend I know much about its current state. I didn’t even realize there was a non-Java version for desktops.

Hopefully it would use the Foreign Function and Memory API instead of JNI.
Post reply on HN