VulkanMod
VulkanMod copied to clipboard
Linux ARM32/ARM64 and Windows ARM64 Support
Mojang supports ARM64 Windows officially and the best (imho) cross platform launcher supports ARM32/ARM64 Linux
Tested functional on ARM64 Linux.
bump. please merge
@thr3343 @xCollateral ?
If this could run on Raspberry Pis, that would be fantastic! No need for this on my rtx 3070, but if the rpi4 (vulkan 1.2 compliant) could be lifted from 20 to 40 fps, that would really be worth a lot.
On Thu, 30 Nov 2023, 19:20 Doomsdayrs, @.***> wrote:
@thr3343 https://github.com/thr3343 @xCollateral https://github.com/xCollateral ?
— Reply to this email directly, view it on GitHub https://github.com/xCollateral/VulkanMod/pull/310#issuecomment-1834314946, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALOW2L3MBMOXFUQ6GR4IELYHDE6TAVCNFSM6AAAAAA5IOFCJ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZUGMYTIOJUGY . You are receiving this because you are subscribed to this thread.Message ID: @.***>
It's our decision not to include ARM natives for now.
Wow. You are the problem
Why not arm64 ? Pojav Launcher relies on it !
I think that's exactly the reason why it was decided to not do it.
@xCollateral please re-consider this mod works great on the growing number of ARM Linux hardware that can run it (eg: Nvidia Jetson, Qualcomm Adreno, , AMD Radeon, etc). Its annoying to have to manually write the json to include these when it could just be done with a merge of this PR
eg (Prism Launcher additional json):
{
"downloads": {
"artifact": {
"sha1": "94bc61ad8707b1b0cec6733a439a562a7e0f6920",
"size": 2630247,
"url": "https://build.lwjgl.org/release/3.3.2/bin/lwjgl-shaderc/lwjgl-shaderc-natives-linux-arm64.jar"
}
},
"name": "org.lwjgl:lwjgl-shaderc-natives-linux-arm64:3.3.2-lwjgl.1",
"rules": [
{
"action": "allow",
"os": {
"name": "linux-arm64"
}
}
]
},
{
"downloads": {
"artifact": {
"sha1": "31adf3ba20f1c29028931f5f3882748c1f936774",
"size": 56944,
"url": "https://build.lwjgl.org/release/3.3.2/bin/lwjgl-vma/lwjgl-vma-natives-linux-arm64.jar"
}
},
"name": "org.lwjgl:lwjgl-vma-natives-linux-arm64:3.3.2-lwjgl.1",
"rules": [
{
"action": "allow",
"os": {
"name": "linux-arm64"
}
}
]
},
Right now the only place where this mod is better than Sodium + it's addons is on Android or M1 Macs as there is bad OpenGL support there.
There is no point in using Vulkan for Minecraft if you're not gonna support devices where Vulkan is the only option (without zinc or stuff like that).
Right now the only place where this mod is better than Sodium + it's addons is on Android or M1 Macs as there is bad OpenGL support there.
There is no point in using Vulkan for Minecraft if you're not gonna support devices where Vulkan is the only option (without zinc or stuff like that).
its not. its faster on my tested system on ARM64 Linux Nvidia Tegra-X1. The reduced CPU overhead helps and the GPU is better utilized.
12 chunks, 1080p
220fps on latest VulkanMod 172fps on latest Sodium
It's still more needed on Android than PC, Android only supports openGL ES so Vulkan is the only way to not go through compatibility layers.
This has literally nothing to do with android... These are Linux natives, not android natives. Lwjgl doesn't support android.
If custom android Minecraft launchers want to provide patched custom builds of the Minecraft dependencies (that includes lwjgl) so Minecraft can run on android they can and (as I have read) already do.
This PR is purely for Linux arm support just like Linux x86_64 support.
Not my problem
They can do that already then. This doesn't change that.
Android Minecraft launch ers use Linux arm64 build for Minecraft, libraries and mods and the mobile gaming market is even bigger than the PC gaming market.
You can't just ignore that it would bring the mods support to Android which is more important than the tiny amount of people using Vulkanmod on raspberry pis and arm computers running linux.
Even if the mod working is on the Launcher's side, the Linux arm64 support is Android support, even if not official.
Not my problem
Never said this was a problem, I said Linux arm64 also includes Android, no problem here, and even if you explicitly don't want to support Android, they will find a way to get it working.
This doesn't mean we should ignore mobile support or not include support for all the platforms the mod can be installed on, even if it's not already supported right now.
There is no point in supporting arm64 Linux if you exclude Android launchers as the player base is inexistant.
If it has Vulkan and Minecraft Java, we should make Vulkanmod work there.
Here is my attempt to run the mod on Raspberry Pi 5 with validation layers enabled: V3D-7.1.7.log LLVMpipe.log
With LLVMpipe it works well, but with low FPS. With the GPU, the FPS is extremely low and crashes after a few seconds.
Please reconsider the closure of the PR. After testing on the Lenovo Yoga Slim 7x powered by Snapdragon X Elite the mod yields substantially better performance than OpenGL (which is achieved on these devices through a D3D12 translation layer)
Screenshots
Vulkan Mod
Standard
Before crashing
Vulkan Mod
Standard
Please reconsider the closure of the PR. After testing on the Lenovo Yoga Slim 7x powered by Snapdragon X Elite the mod yields substantially better performance than OpenGL (which is achieved on these devices through a D3D12 translation layer)
Screenshots
Vulkan Mod
Standard
Before crashing
Vulkan Mod
Standard
I doubt that Minecraft uses d3d12 as on Windows or Linux, no matter the architecture, the game uses OpenGL, Minecraft isn't made with libraries made for DirectX.
Vulkan might be way batter on arm as it's used a lot on Android (runs on arm) and as OpenGL is outdated, it's probably worse on new Arm processor for PCs.
It's sad seeing ARM support being dropped right now as it's the future of laptops (at least to Microsoft). Mobile gamers have ruined the idea of supporting arm64 as it means Android is close and it's Vulkan implementation very OEM dependant and unreliable.
I doubt that Minecraft uses d3d12 as on Windows or Linux, no matter the architecture, the game uses OpenGL, Minecraft isn't made with libraries made for DirectX.
As you can see here, Minecraft is running via some kind of OpenGL translation layer based on D3D12
By the way, you can install native libraries for ARM from here: https://www.curseforge.com/minecraft/mc-mods/vulkanmod-android-libs
Correct, OpenGL is provided by the D3D12 translation layer. It makes the GPU identifier start with "D3D12" in a similar fashion to how MacOS shows "Metal" because OpenGL is provided through a compatibility layer there also.
By the way, you can install native libraries for ARM from here: https://www.curseforge.com/minecraft/mc-mods/vulkanmod-android-libs
Also thanks for the suggestion but I can just compile the mod with the target platform appended, which is what this PR does, such a simple change.