Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Feature request] Support Minecraft Bedrock Edition #82

Closed
MayorBryce opened this issue Aug 26, 2022 · 17 comments
Closed

[Feature request] Support Minecraft Bedrock Edition #82

MayorBryce opened this issue Aug 26, 2022 · 17 comments
Labels
feature request New feature or request

Comments

@MayorBryce
Copy link

Is your feature request related to a problem? Please describe.
I would like to be able to upgrade the DLSS on Minecraft Bedrock, which supports RTX and DLSS.

Describe the solution you'd like
Detect Minecraft Bedrock, and allow for DLSS switching.

@MayorBryce MayorBryce added the feature request New feature or request label Aug 26, 2022
@beeradmoore
Copy link
Owner

Hey @MayorBryce ,
I just went had a look at this. Minecraft currently does not use the advanced install feature (see info about that here and here) which is what we require to support games from Xbox App/Windows Store. We are currently tracking requests for adding that into DLSS Swapper in issue in #2 Support for DLSS in Windows Store/Xbox App games.

Minecraft currently installs into the WindowsApps folder. This folder is very protected and is not available for us to write files into. There are lots of guides around of how a user can take ownership of that folder in order to touch files in there, but every time I have done this I have broken things and had to re-install Windows from scratch. So it isn't something I'd want to lead users to go do.

If Minecraft ever supports advanced install feature it will work out of the box when #2 is implemented. If you'd like to see that done so it is ready for if/when Minecraft takes that step you can go leave that issue a 👍 so we can gauge how much it is wanted by users.

@MayorBryce
Copy link
Author

Hello, thanks for the quick response.
I only just found out about this today, and unfortunately I don’t have many other games that support DLSS (0, to be exact). I wouldn’t really use this program for much else, so I don’t want to force you to do it. It would be nice, but you don’t have to.
Also, sorry for not seeing issue #2 beforehand. My bad.
Finally, good to know that modifying that folder really messes up your PC. On the official Minecraft RTX discord, in one of the admin-only channels they had a link to the DLL for DLSS. I didn’t know how to install it, so a quick Google search allowed me to find you. However, thanks for warning me; I might’ve started changing the files myself.
Thanks again!

@beeradmoore
Copy link
Owner

beeradmoore commented Aug 27, 2022

Also, sorry for not seeing issue #2 beforehand. My bad.

Is all good.

I wouldn’t really use this program for much else,

In theory you can use DLSS Swapper to download DLSS files and then from the library functionality hit export to get a copy of the DLSS itself. But if not not you can manually download it from sites such as TechPowerUp and then manually move the files around as needed. Don't forget to backup the original dll ;).

If you get DLSS 2.4 working in Minecraft please let me know. I may have to go fiddle with my own files again for when I play Minecraft.

@MayorBryce
Copy link
Author

Alright, I did some poking around. I haven't found a folder with DLLs in them (yet), but I found something that might help. Under ProgramData on C:, there is an NVIDIA folder. From there, go NGX, models, then there are two folders named dlisp and dlss. I don't know if adding a new version there will change anything, but it's something.

@beeradmoore
Copy link
Owner

beeradmoore commented Aug 30, 2022

Some great digging you've done there.

The DLSS dlls for Minecraft are in the root of the Minecraft folder. You just can't write to that directory to update them. Thats why the advanced install thing I mentioned above is a thing, to allow mods to be used in games. But not every game does that install system. Minecraft has its own launcher so it may never get it.

Those things in NGX are used for nVidia to implement DLSS at a driver level. In theory a game should just run with the latest version but it appears to be a list that nVidia keeps to decide what game can run with what version. I left some notes to it here, there is also link in there to reddit where someone says how it works.

As for both of these things you can use a tool called Process Explorer, run a game, and then search Process Explorer for dlss (or nvgx_dlss.dll or whatever its named) to see both where the DLL is loaded from and if you hit properties on that you can see the DLSS version currently being used. So you can use the first half of this to easily see where Minecrafts DLSS dll is, and the second half to test if a game (like Cyberpunk) is using DLSS from its own install folder or an updated one from that NGX folder.

(will attach pictures in a jiffy)

EDIT: Pic
image

So some things to note. Binoculars is the button to bring up search. DLSS won't be found unless you are running an RTX map. The properties window shows it is running 2.1.16. If you hit explore from that settings it will take you to that file. It is in the root Minecraft install folder.

image

But yeah, without some tinkering this folder is read only. Maybe if I could make the DLSS file writeable via an admin prompt with explicitly requirement that the user knows this is a bad idea we could do it. I have not tried to fix permissions for a single file before, let alone from an app.

Happy tweaking!

@MayorBryce
Copy link
Author

Sorry if this is obvious, but couldn’t you just paste the DLL into the root of the Minecraft directory and it load up? I mean, you’re overwriting the old one.
Also, how did you get the ability to see those files? I have admin permissions.

@beeradmoore
Copy link
Owner

beeradmoore commented Aug 31, 2022

Ideally that is how you would update DLSS. It is essentially all DLSS Swapper is doing but it does it a little more auto-magically for you. However WindowsApps folders are very locked down even if you are using an admin account.

Eg. Try open explorer and go to C:\WindowsApps\, you can't even browse it out of the box.

You can browse (some?) app specific folders IF you know the name. Name is quite unique as it includes version and other unique identifiers. But that bit is easy, we can pull that from Windows registry or with a script.

I tried to copy/paste a file into the directory and I get a permission denied prompt. If Minecraft is open it will display a different error I have not seen, where it just says copying was interrupted but isn't actually errored.

Without Minecraft running:
image

With Minecraft running:
image

From memory I have in the past run an admin command prompt and tried to copy files with elevated permissions and it still says no.

There are guides around about taking ownership of this folder like this one, but as I said every time I have played with this folder I have killed every app on my computer to the point they refuse to run and I need to re-install windows from scratch.

Maybe we can add an option in settings or just auto-detect if this directory is writable and then allow it to detect Minecraft? I don't think however that DLSS Swapper will change those permissions itself or maybe even include a direct guide. I don't want the tool to be responsible for people nuking their computer accidentally and having potential data loss.

@MayorBryce
Copy link
Author

Oh… I think I’ve been looking in the wrong folder the entire time. I just quickly Googled where the Minecraft folder was (which got me to the save data like worlds and such) and was looking in the wrong place. Oops. Anyway, that makes a lot more sense. Like I said at the beginning, I won’t force this on you. I certainly don’t want to have to reinstall Windows just to attempt to upgrade Minecraft’s DLSS. It works fine for me anyway, but a performance boost would be nice (my laptop, at max render distance, hits 40+ frames with RTX and DLSS on). If I find something that might help (or you do) let me know, but I don’t know where to go from here.

@beeradmoore
Copy link
Owner

Easy mistake to made. Starting reading that I thought you were going to say you were looking at the Minecraft Java Edition install folder :P

I agree though, performance boost would be great. Ideally if Microsoft move Minecraft to be using the advanced install system this makes our side of things 100x easier. But I wouldn't hold my breath on that one.

@MayorBryce
Copy link
Author

No yeah, it was Bedrock the entire time, just the folder with the worlds and stuff, which is saved inside your users folder.
Not sure why they didn’t implement the advanced install feature in the first place, but I guess somewhere there’s a reason.
You can close this issue if you’d like, since it’s somewhat clear that this won’t really be coming (and it is kinda a duplicate of #2 . But if you think this could be worked through you don’t have to.

@beeradmoore
Copy link
Owner

beeradmoore commented Sep 1, 2022

I have no idea if that advanced install system is rolled out to everyone yet or if its still in beta. I don't get the prompt for every game either so its rather selective.

I'll close this at some point, but I'll make a new ticket for adding support to games not supported with the advanced install system and reference this and #2. I think it's a seperate problem to #2 but unfortunately it won't be a high priority as when (if?) Microsoft release the advanced install system there is even less urgency for it as it would then be very few games that would be making exclusive use for.

But in that sense maybe this makes sense to be part of #8, just that users would have to know about taking ownership and know how to find this very long specific folder name.

@beeradmoore
Copy link
Owner

The other thing that sucks about it and I wish it was different, is that in Minecraft Bedrock edition DLSS only is used with ray tracing worlds. So in a standard world there is no point to updating DLSS version -_- No idea why this is so.

@MayorBryce
Copy link
Author

A couple notes on your last comment.

Technically, every world can be a RTX world. Just apply a resource pack with RTX (I like Kelly’s RTX) to the global resources and open a world. Works on both single player and multiplayer.

As far as DLSS is concerned, it doesn’t necessarily need it for regular gameplay. Minecraft Bedrock is so much more optimized than it’s Java counterpart it isn’t funny. (Side note: the only case DLSS would be nice without raytracing is on low end tablets and phones, but since they use integrated graphics, they aren’t eligible for DLSS) Unmodded Java fetches me roughly 12-16 chunks at 60 frames (I think, haven’t checked in a while since I play with quality of life mods including performance mods) while Bedrock fetches nearly 40. Now, switch on RTX. A game with low res graphics and lighting (still looks good btw) now has light rays glanced only in high quality Java shaders. I can fetch, with DLSS and 24 chunks, roughly 40+ frames. Upgrading DLSS for better performance (even to 50 frames) would feel much more smooth. The games runs fine normally, even most lower end computers can run it. In fact, if you have an RTX card, you don’t need DLSS.

@beeradmoore
Copy link
Owner

I get why its there for when RTX is enabled sit pulls the performance, but seems odd to not have it as an option when not using RTX. I am also targeting 4K 120fps when I play on my TV and I don't think I hit that (I will check later to confirm). Would be nice to have DLSS to bump that performance a tad even at the high end.

There must be a big reason why though, like a whole different renderer or something rather than just a switch like in other RT enabled games. Oh to be a fly on the wall in the right rooms :P

@MayorBryce
Copy link
Author

Naw, vanilla Minecraft uses the same renderer for both RTX and vanilla.
Actually, I’ve heard DirectX12, the renderer needed to run RTX, is actually slower than DirectX11, which is what non-RTX cards use. People have even gotten (or so I’ve heard) better frames on GTX cards, even with RTX odd, which seems odd.
Or Nvidia simply didn’t feel the need to apply it to the base game. Similar to you, I got a monitor that might my laptop (with RTX 3070) doesn’t usually hit in games: 1440p at 165hz. So a performance bump would be nice, I agree. That’s why I was hoping for this whole DLSS swapper thing to work. Still, it’s performs better than Java. Just multithread the poor thing, Mojang, please! (Java is only multithreaded to separate the Client and the Server (even in single player), and neither are multithreaded)

@beeradmoore
Copy link
Owner

From what I have seen around of things, typically DX12 has issues and not very often do I hear good things about it. Like FF7Remake on PC it can have stuttering and stuff in the default DX12 mode, using a command line argument to launch it in DX11 mode reduces a bunch of issues.

@beeradmoore
Copy link
Owner

Closing this for now. If things change in the future I'll re-open it.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants