DarioSamo / sm64rt

Fork of https://github.com/sm64pc/sm64ex with raytracing support.
282 stars 13 forks source link

Linux support #15

Open TechieAndroid opened 3 years ago

TechieAndroid commented 3 years ago

I'd like to know what your opinion is on these two features and if you could give me a few tips on where I can start to try to add these and do a PR later on.

DarioSamo commented 3 years ago

I'd like to add them, but the main problem is that the RT64 renderer is written in D3D12 only at the moment.

This can be solved as soon as a Vulkan backend is implemented. You can find the issue for that here. However, it's probably better to think of making such a backend once the renderer has matured enough to consider doing both versions (since it needs a lot of heavy organization work such as making an abstraction layer for both backends).

DarioSamo commented 3 years ago

Also, AMD is already supported in Windows! It's just the denoiser won't work (which will probably be solved by using a denoiser that doesn't use a CUDA-only library).

TechieAndroid commented 3 years ago

Oh okay, sorry for creating the issue. I appreciate the response. I don't have a lot of programming experience, but I would like to at least try to help a project like this since it's interesting to me.

And if you want you can close this.

DarioSamo commented 3 years ago

That's alright, I'll leave it open for anyone curious to check out the reasons why Linux is not supported at the moment.

CrispyBuns commented 2 years ago

I'd love Vulkan/ Linux support in the future I'd bet It will give better Performance than D3D12 for some Setups!

SpidFightFR commented 1 year ago

That would be sick, if you need someone for tests, i'd love to help!

mr-sihc commented 1 year ago

just use a library, or just use vulkan

but if thats too difficult, use DXVK-Native to convert D3D to Vulkan on runtime (not much work required for you, but runs worse)

SpidFightFR commented 1 year ago

afaik RT64 runs with Dx12 so we'd need VKD3D instead...

Using vulkan from the beginning would have been a better way to bring SM64 rt to multiple platforms...

mr-sihc commented 1 year ago

oh yea, youre right! i dont know if it has a native version, but i think you can connect it to DXVK, which may or may not work, but this on more platforms than just windows would be cool!

DarioSamo commented 1 year ago

The current plan is to just have DX12/Vulkan backends in the future RT64 version that will end up replacing the PC renderer on sm64rt (as well as be a standalone plugin emulator).

SpidFightFR commented 1 year ago

I’ll stay close to sm64rt then. 😄

SpidFightFR commented 1 year ago

IDK if that can help but i can confirm we can launch the RT64 demo using VKD3D and wine (see screenshot) even if it's glitchy as hell, it works, and glitches are probably related to mesa 23.1 not supporting Ray tracing officially.

Please, if someone could help me build the game on a native linux environment it would be much appreciated.

zqpvr commented 9 months ago

https://www.phoronix.com/news/VKD3D-Proton-2.11-Released

SpidFightFR commented 9 months ago

https://github.com/HansKristian-Work/vkd3d-proton/issues/1041

SpidFightFR commented 9 months ago

There is some improvement, but it's still not there...

The game launches at least.

Link to the test video i just made

DarioSamo commented 9 months ago

The RT64 rewrite already has Vulkan support so I'll likely just port sm64rt to that later.

https://twitter.com/dariosamo/status/1716189711889322005

SpidFightFR commented 9 months ago

The RT64 rewrite already has Vulkan support so I'll likely just port sm64rt to that later.

https://twitter.com/dariosamo/status/1716189711889322005

Fancy ! is there a way to test this new RT64 build with the demo you provided ?

DarioSamo commented 9 months ago

Not yet, still got a lot of work to do and rewriting sm64rt to use it will take even longer as well.

Alternatively, if we don't want to rewrite a lot, we could use the RHI that I made for RT64 to make a quick port. It's very similar to D3D12 so it'd be pretty easy to do it.

zqpvr commented 9 months ago

I think quick port should be fine for now, I will be testing on steam deck if you make that.

SpidFightFR commented 9 months ago

Atm i'm trying to build sm64rt (the windows binaries) on Linux (archlinux).

Technically, msys2 uses archlinux, so i can make this work but i have a ton of tweaks to do in the Makefile to make things work. @DarioSamo I might do a PR once that's done, but atm nothing's set in the stone.

zqpvr commented 8 months ago

https://github.com/HansKristian-Work/vkd3d-proton/releases/tag/v2.11.1 new version

SpidFightFR commented 8 months ago

https://github.com/HansKristian-Work/vkd3d-proton/releases/tag/v2.11.1 new version

Imma test this out later on

UPDATE: Same issue occuring.

Everything that relies on RT64 (everything but the UI) remains pitch black.

yllekz commented 3 months ago

I might suggest updating the repo to clarify the erroneous "RT64 is only supported on Windows" with "AMD Ray-Tracing is only supported on Windows" as well as update the Linux build instructions to note the caveat.