pal1000 / mesa-dist-win

Pre-built Mesa3D drivers for Windows
MIT License
864 stars 78 forks source link

Installation on Windows #106

Open andreasdc opened 2 years ago

andreasdc commented 2 years ago

Hey, I tried installing mesa with to use zink and vulkan, but I can't get it to work. How can I do it properly?

pal1000 commented 2 years ago

Please read the end user guide: https://github.com/pal1000/mesa-dist-win#installation-and-usage https://github.com/pal1000/mesa-dist-win#mingw-and-msvc-package-contents (lookup the section for zink driver)

andreasdc commented 2 years ago

Please read the end user guide: https://github.com/pal1000/mesa-dist-win#installation-and-usage https://github.com/pal1000/mesa-dist-win#mingw-and-msvc-package-contents (lookup the section for zink driver)

Yes sure I saw that, but it doesn't go like it should.

pal1000 commented 2 years ago

Do you have any Vulkan driver on your system?

andreasdc commented 2 years ago

Do you have any Vulkan driver on your system?

I'm not sure about that, but I have this script: SET __GLX_VENDOR_LIBRARY_NAME=mesa SET MESA_LOADER_DRIVER_OVERRIDE=zink SET GALLIUM_DRIVER=zink which doesn't chang much.

pal1000 commented 2 years ago

As far as I know __GLX_VENDOR_LIBRARY_NAME and MESA_LOADER_DRIVER_OVERRIDE don't apply to Windows so setting them is pointless.

Do you have any Vulkan driver on your system?

I'm not sure about that,

It's crucial that you have at least 1 Vulkan driver on your system. If you don't you can try it with lavapipe or swiftshader, but in such context llvmpipe is faster.

andreasdc commented 2 years ago

As far as I know __GLX_VENDOR_LIBRARY_NAME and MESA_LOADER_DRIVER_OVERRIDE don't apply to Windows so setting them is pointless.

Do you have any Vulkan driver on your system?

I'm not sure about that,

It's crucial that you have at least 1 Vulkan driver on your system. If you don't you can try it with lavapipe or swiftshader, but in such context llvmpipe is faster.

I used mesa3d-22.1.2-release-mingw, then I did 1, 5, 6, 7 option from here: image I also set system variables, and nothing.

I don't know where should I get libgallium_wgl.dll, these instructions are really complicated.

pal1000 commented 2 years ago

System wide deployment is intended for systems without existing OpenGL drivers, e.g. virtual machines, cloud computing or remote desktop (RDP or VNC). Please use option 8 in system wide deployment tool to clean up and then use per application deployment tool instead. Also you don't need off-screen render driver and graw test framework for zink to work.

As for why you can't find libgallium_wgl.dll in Windows system32 and syswow64 folders, that's because it gets copied there with a different name, mesadrv.dll, in order for upgrades from 19.2.x to work as expected at least for system wide deployment tool.

andreasdc commented 2 years ago

System wide deployment is intended for systems without existing OpenGL drivers, e.g. virtual machines, cloud computing or remote desktop (RDP or VNC). Please use option 8 in system wide deployment tool to clean up and then use per application deployment tool instead. Also you don't need off-screen render driver and graw test framework for zink to work.

As for why you can't find libgallium_wgl.dll in Windows system32 and syswow64 folders, that's because it gets copied there with a different name, mesadrv.dll, in order for upgrades from 19.2.x to work as expected at least for system wide deployment tool.

I used per app deployment and I have some shortcuts there like libglapi.dll, but I don't think anything changed other than that. I also found and enabled these 2 options which changed something, should I keep it enabled or it doesn't have to do anything with this? image Specifically I want to use it with Minecraft on MultiMC launcher.

pal1000 commented 2 years ago

Minecraft MultiMC launcher uses Java as far as I know so you'll need to deploy Mesa in MultiMC Java bin folder. Start a MultiMC game instance and then in Task manager do open file location on Java.

I also found and enabled these 2 options which changed something, should I keep it enabled or it doesn't have to do anything with this?

It shouldn't have anything to do with this and you may get into other issues.

andreasdc commented 2 years ago

Minecraft MultiMC launcher uses Java as far as I know so you'll need to deploy Mesa in MultiMC Java bin folder. Start a MultiMC game instance and then in Task manager do open file location on Java.

I also found and enabled these 2 options which changed something, should I keep it enabled or it doesn't have to do anything with this?

It shouldn't have anything to do with this and you may get into other issues.

How to check if this works? I deployed it at my java/bin folder (from the task manager of the game) and I disabled these 2 options back again.

pal1000 commented 2 years ago

How to check if this works?

Turn on debug screen.

andreasdc commented 2 years ago

How to check if this works?

Turn on debug screen.

I was looking there, if there should be something like zink/vulkan, there is nothing like that. I see string with '3.2.0 NVIDIA 516.40'.

pal1000 commented 2 years ago

Okay so it appears you have a new enough NVIDIA GPU capable of running on latest driver. so you clearly have at least one Vulkan driver on your system unless your graphics driver installation is totally broken. I tried running zink over Swiftshader on this aging system of mine and it failed to create OpenGL context while llvmpipe worked, so it may not work even if you are doing everything right.

andreasdc commented 2 years ago

Okay so it appears you have a new enough NVIDIA GPU capable of running on latest driver. so you clearly have at least one Vulkan driver on your system unless your graphics driver installation is totally broken. I tried running zink over Swiftshader on this aging system of mine and it failed to create OpenGL context while llvmpipe worked, so it may not work even if you are doing everything right.

Oh no, I really wanted to try zink and have normal fps :/ I tried VulkanMod for Minecraft, but it has some stability issues at the moment. Do you have any idea on how to touch that? Thanks for help.

andreasdc commented 2 years ago

Is there other way to check if it works? I have a feeling that it still increased my fps and when I removed the files I couldn't launch the Minecraft.

pal1000 commented 2 years ago

Well, zink driver requires at least one Vulkan driver to function, no escaping that. Per application deployment cleans after itself if you run it again on same folder and choose not to deploy anything.

andreasdc commented 2 years ago

It didn't clean for me

pal1000 commented 2 years ago

It only cleans if you used perappdeploy.cmd to deploy otherwise it won't to avoid removing other OpenGL/GLES implementations that may be bundled with the program unless you actually do deploy.