Lea-fish / Leafish

A minecraft-like multi version client implemented in Rust.
Apache License 2.0
824 stars 46 forks source link

Switch to WGPU/Vulkan #20

Open terrarier2111 opened 3 years ago

terrarier2111 commented 3 years ago

We should switch from OpenGL to WGPU as it supports multiple render backends such as OpenGL, Vulkan and Metal

PureTryOut commented 3 years ago

*Vulkan. To get the most performance out of every platform, using Vulkan on everything would probably be best. Using MoltenVK it can even run on macOS by implementing Vulkan on Metal. It should also be possible to support other platforms in the (very, very far) future like the Nintendo Switch, Android and iOS.

terrarier2111 commented 3 years ago

Sadly there are still legacy devices out there which don't have vulkan support and only support OpenGL

PureTryOut commented 3 years ago

Such as? Are they worth supporting?

terrarier2111 commented 3 years ago

https://www.amd.com/en/technologies/vulkan https://developer.nvidia.com/vulkan-driver

I would like to support those legacy GPUs/APUs as low end devices may come with such legacy hardware, but i am not certain if it is worth, supporting them

PureTryOut commented 3 years ago

From AMD the HD 7xxx series is still supported and from NVIDIA the GTX7xx series. Those are all quite old, in fact they are from 2012 and 2013. If you run PC's with older graphic cards than those in them you might be better off running an old Java version honestly, I doubt it's worth supporting those.

But if there is a Rust crate that allows easy supporting of both Vulkan and OpenGL then sure, no complaints from me.

terrarier2111 commented 3 years ago

From AMD the HD 7xxx series is still supported and from NVIDIA the GTX7xx series. Those are all quite old, in fact they are from 2012 and 2013. If you run PC's with older graphic cards than those in them you might be better off running an old Java version honestly, I doubt it's worth supporting those.

But if there is a Rust crate that allows easy supporting of both Vulkan and OpenGL then sure, no complaints from me.

That's essentially what WGPU is it is an abstraction over the OpenGL/Vulkan/Metal apis

PureTryOut commented 3 years ago

In that case, ignore my comments. Awesome! As long as it defaults to Vulkan when supported by the platform it's ran on, I'll be happy!

iMonZ commented 3 years ago

Such as? Are they worth supporting?

I think the best thing is to focus on Vulkan. Of course there is OpenGL for Stone Age devices and Metal for better macOS support. (MoltenVK does it pretty good, but native Metal is a bit better with a few more features) But still, Vulkan does everything good for everyone. This would also lead to less confusion while developing since you need then to support multiple rendering backends.