HGL
exotic-emerald
DXVK-NVAPI
As requested from gituhub I've moved my messages here from the issure.
Game log is attached
56 Replies
flat-fuchsiaβ’3y ago
I would manually copy nvngx.dll and _nvngx.dll to the system32 folder in your prefix
that should get DLSS working
exotic-emeraldOPβ’3y ago
Yup that did the trick
copied
/lib64/nvidia/wine/*
into sys32 of the prefix and it now works on your latest branch
Without any other tinkeringflat-fuchsiaβ’3y ago
so this makes implementing DXVK-NVAPI with DLSS into heroic impossible π
exotic-emeraldOPβ’3y ago
Is it a permissions thing?
flat-fuchsiaβ’3y ago
no
to find the path
it might not be /lib64/nvidia/wine
on some distros
exotic-emeraldOPβ’3y ago
Ah yeah of course
flat-fuchsiaβ’3y ago
we need to load a .so file
run a function in it to get the path
close it
and then copy the dlls
and then do that registry key thing it says to do
except I think that you can't do that with electron + TS
you need a helper binary of some sort
can probably write one in C
or meme language (the one involving crabs)
exotic-emeraldOPβ’3y ago
Looking through the repo does https://wiki.mozilla.org/JSctypes
ctypes.open("user32.dll")
maybe fulfill the same function as CDLL?flat-fuchsiaβ’3y ago
yeah I think that works
the question is how do I implement it in the code
and is it the best path we can take
and I don't think that API exists anymore
exotic-emeraldOPβ’3y ago
I am honestly unsure, those are all great questions. But if the purpose is to mimic how lutris does it, i think that JS interface is molded after the save python interface Lutris is using quote
js-ctypes is a foreign-function library for Mozillaβs privileged JavaScript. It provides C-compatible data types and allows JS code to call functions in shared libraries (dll, so, dylib) and implement callback functions. The interface and implementation are modeled on the Python ctypes module.That kinda raises the question how V8's implementation is though
flat-fuchsiaβ’3y ago
I feel like this is the type of thing electron/chromium won't support
because it's super easy to gain access to the host system
exotic-emeraldOPβ’3y ago
Yeah was about to say. Seems super insecure to leave open on electron
flat-fuchsiaβ’3y ago
so helper binary it is
I will write it in rust because I have been wanting to learn it for a while now
and I am tired of makefiles :p
exotic-emeraldOPβ’3y ago
Can very heartily recommend the language π
It's my language of choice, and there's a good reason why it's the most loved language on stack overflow.
Word of caution though, it's got a steep learning curve
flat-fuchsiaβ’3y ago
I am fluent in C
so meme language shouldn't be that hard
for a simple < 30 line program
exotic-emeraldOPβ’3y ago
For this cause only you don't really need to learn the language that well.
If you're fluent in C and familiar with RAII, it should be quite easy for this use case
flat-fuchsiaβ’3y ago
@Kalavin sorry for the ping
flat-fuchsiaβ’3y ago
but could you test this https://github.com/Etaash-mathamsetty/nvngx-finder
GitHub
GitHub - Etaash-mathamsetty/nvngx-finder: finds the path to a nvngx...
finds the path to a nvngx.dll. Contribute to Etaash-mathamsetty/nvngx-finder development by creating an account on GitHub.
flat-fuchsiaβ’3y ago
if it returns a path
nvngx.dll should be located in
path_returned/nvidia/wine/
the code is probably really cringe
but it's the best I could muster with libcexotic-emeraldOPβ’3y ago
Seems to work as expected on a system where nvngx is located in
/usr/lib/nvidia/wine
Path returned is /usr/lib which is correct
@OOOOOF123 Sorry for the ping backlike-goldβ’3y ago
looks good
flat-fuchsiaβ’3y ago
CI up and running
@Kalavin hello it's me again
could you try the latest commit
it should automatically copy nvngx.dll
just remove it from your prefix
could you also open regedit in the prefix
and make sure
FullPath
is present in HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Global\\NGXCore
and that it has C:\windows\system32
set as the valueexotic-emeraldOPβ’3y ago
Sure, just give me a couple of minutes
Deleted _nvngx.dll and nvngx.dll from prefix manually, then unticked the install dxvk-nvapi option in the launcher. ticked it again, and both nvngx and _nvngx were present in the correct location in the prefix.
Also opened regedit in the prefix and the path you choose had the FullPath key set to
C:\windows\system32
.
So everything seems in order.
Will try to delete the prefix and go at everything from scratch in a bit to see if it just works which it very much should, but just to double check of no unsuspected behaviour
Fully deleted the existing prefix i had.
Then made a fully fresh one, just ticking install DXVK/DXVK-NVAPI/VKD3D, and it just works now.
Well done π
There's a small suggestion i have for the rust binary though. I noticed that it's 9.42M in size in the repo.
I suspect that you're building the binary in debug mode.
Might want to build in release mode to get it down to ~3.2M. The big savings is release mode with
in the Cargo.toml file which will get the binary down to ~324k
You can minimize the binary quite a bit more but i don't think shaving ~100k more is worth the troubleflat-fuchsiaβ’3y ago
I did cargo build --release and it's still that big π
Stripping the binary is important though and I will add that
exotic-emeraldOPβ’3y ago
Try adding the profile.release lines in the cargo.toml file and build with release again
flat-fuchsiaβ’3y ago
Yeah that's what I just did
On my phone :Eyes_shaking:
exotic-emeraldOPβ’3y ago
Are you building on your phone?
flat-fuchsiaβ’3y ago
I could :Eyes_shaking:
But I'm gonna use CI instead
Yeah it's 318 kb now
Thanks
exotic-emeraldOPβ’3y ago
great π
What problem did you have that made you decide that it was to complex to continue?
Was it making rust into a nodejs library that you had trouble with?
flat-fuchsiaβ’3y ago
no favio said so
it's a feature that's too low level
and people won't understand what it does
and not many people can make use of it
heroic's settings are already too complicated according to him
and he wants to make them more simple and not more complicated
basically even if I figured out how the node library would work, it's still not getting merged
exotic-emeraldOPβ’3y ago
Ah i see, that's too bad.
Guess i'm sticking with Lutris.
Thanks for exploring getting it the setting made
flat-fuchsiaβ’3y ago
yeah he said to use lutris for more complex stuff like this
but I hate lutris and in fact I don't even have it installed because of how buggy it is
so I am kind of stuck π¦
and I don't want to use bottles
because of flatpak
exotic-emeraldOPβ’3y ago
Understandable, there's no real "best option" right now on linux
It all depends on what you're trying to do, and what compromises you are willing to accept
flat-fuchsiaβ’3y ago
heroic is the best option for me rn somehow
like-goldβ’3y ago
proton has it built in, and Wine-GE users with Nvidia RTX GPU are niche of a niche
flat-fuchsiaβ’3y ago
yeah
ur best bet is proton
exotic-emeraldOPβ’3y ago
Guess i'm niche of niche.
Isn't using proton with anything other than steam heavily discourage tho?
So would it not be any RTX user in general?
like-goldβ’3y ago
it is
and Lutris added support for it lately
I think that's not a case that much anymore
unless it's ran in correct runtime it should be fine
exotic-emeraldOPβ’3y ago
for proton?
I thought they removed supported for it a while back
like-goldβ’3y ago
yeah
and they added it back recently
"because it works better than wine in some cases"
flat-fuchsiaβ’3y ago
over the summer im probably gonna make a project called brotron that's basically proton but meant to work outside steam
like-goldβ’3y ago
I was thinking about it
with workarounds built in for some games
:Eyes_shaking:
exotic-emeraldOPβ’3y ago
Oh compleatly overloked that change. Havn't touched a game in a while so i didn't know. Good to know
flat-fuchsiaβ’3y ago
it would have a built in IPC bridge for discord as well
(using this https://github.com/openglfreak/winestreamproxy)
which is the best solution that litterally 0.0 people know about
quickest-silverβ’3y ago
Why is that a niche? I have the same setup
That's a shame, this would be a nice feature.
like-goldβ’3y ago
it's too much stuff for that small feature
check #β-development for Flavio's explanation
fair-roseβ’3y ago
I have also a rxt card π
But i understand that we need less settings but not less features.
So enabling everything (dxvk/vkd3d/nvapi) with one toggle is best solution
Aslong as all three option don't interrupt each other
flat-fuchsiaβ’3y ago
At this point just remove all the toggles and just auto install it on every prefix heroic creates π
Not a horrible idea actually
Just need to find a way to update the dxvk/vkd3d/dxvk-nvapi automatically
Big brain idea, store the hashes of the dlls when they are updated
like-goldβ’3y ago
what if you don't want DXVK
:Eyes_shaking:
flat-fuchsiaβ’3y ago
Dll overrides
Or winecfg
Then when launching the games
Compare the hashes
Would have to be a cheapo simple hash
Like md5 or smth
SHA could be fine too
fair-roseβ’3y ago
We still need to disable the option for opengl games
Still need one toggle to disable it for opengl games
flat-fuchsiaβ’3y ago
Why?
opengl will use opengl ??
It might waste some time installing but that's it
fair-roseβ’3y ago
There are games like wonder boy that crashes if dxvk is enabled
But runs fine without it
So we need the toggle trust me
But we don't need to seperate vkd3d/dxvk i would say
like-goldβ’3y ago
those are cases where wined3d shines
flat-fuchsiaβ’3y ago
Wined3d is dog poop on wine-ge on upstream it's way better
eastern-cyanβ’3y ago
:Eyes_shaking:
Which one of them
Actually off topic