VulkanMod icon indicating copy to clipboard operation
VulkanMod copied to clipboard

Linux ARM32/ARM64 and Windows ARM64 Support

Open theofficialgman opened this issue 1 year ago • 3 comments

Mojang supports ARM64 Windows officially and the best (imho) cross platform launcher supports ARM32/ARM64 Linux

Tested functional on ARM64 Linux.

theofficialgman avatar Sep 26 '23 22:09 theofficialgman

bump. please merge

theofficialgman avatar Nov 09 '23 23:11 theofficialgman

@thr3343 @xCollateral ?

Doomsdayrs avatar Nov 30 '23 18:11 Doomsdayrs

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: @.***>

bagong avatar Nov 30 '23 22:11 bagong

It's our decision not to include ARM natives for now.

xCollateral avatar Mar 30 '24 15:03 xCollateral

Wow. You are the problem

theofficialgman avatar Mar 30 '24 15:03 theofficialgman

Why not arm64 ? Pojav Launcher relies on it !

Enderteck avatar Mar 30 '24 18:03 Enderteck

I think that's exactly the reason why it was decided to not do it.

NXTler avatar Mar 31 '24 13:03 NXTler

@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"
                    }
                }
            ]
        },

theofficialgman avatar Apr 19 '24 20:04 theofficialgman

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).

Enderteck avatar Apr 19 '24 20:04 Enderteck

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

theofficialgman avatar Apr 19 '24 20:04 theofficialgman

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.

Enderteck avatar Apr 19 '24 21:04 Enderteck

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.

theofficialgman avatar Apr 19 '24 21:04 theofficialgman

Not my problem

They can do that already then. This doesn't change that.

theofficialgman avatar Apr 19 '24 22:04 theofficialgman

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.

Enderteck avatar Apr 19 '24 22:04 Enderteck

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.

Enderteck avatar Apr 19 '24 22:04 Enderteck

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.

Nefariox avatar Apr 20 '24 03:04 Nefariox

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

Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_34_19 PM

Standard

Before crashing Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_39_22 PM

Vulkan Mod

Minecraft_ 1 20 4 8_10_2024 7_52_03 PM

Standard

Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_54_15 PM

yruen avatar Aug 11 '24 02:08 yruen

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

Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_34_19 PM

Standard

Before crashing Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_39_22 PM

Vulkan Mod

Minecraft_ 1 20 4 8_10_2024 7_52_03 PM

Standard

Minecraft_ 1 20 4 - Singleplayer 8_10_2024 7_54_15 PM

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.

Enderteck avatar Aug 19 '24 18:08 Enderteck

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 Screenshot_20240820-135933

By the way, you can install native libraries for ARM from here: https://www.curseforge.com/minecraft/mc-mods/vulkanmod-android-libs

Felix14-v2 avatar Aug 20 '24 11:08 Felix14-v2

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.

yruen avatar Aug 20 '24 19:08 yruen