Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Global memory emulation using NV_shader_buffer_store and VK_EXT_buffer_device_address #4047

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

gdkchan
Copy link
Member

@gdkchan gdkchan commented Dec 6, 2022

Mostly the same as #3306, but newer and with Vulkan support this time. Still has the same issues as before. Since HLE macros has already been PRed and merged separately, there's no need to include this change on the PR anymore.

Currently not working on Intel with Vulkan because one texture has a height that exceeds the maximum that the GPU supports (at least on my UHD 630). Not tested on AMD.

image
image

@gdkchan gdkchan added gpu Related to Ryujinx.Graphics fix Fix something labels Dec 6, 2022
@sakuka47

This comment was marked as off-topic.

@mio-19
Copy link

mio-19 commented Feb 14, 2023

Got an error on amd platform

image

Device: Steam Deck

@gdkchan
Copy link
Member Author

gdkchan commented Feb 14, 2023

Got an error on amd platform

image

Device: Steam Deck

Only NVIDIA support shader buffer store extension on OpenGL. You should be testing on Vulkan.

@sakuka47
Copy link

Hello, is it possible to include the Pr in the ldn version, the switch game now having a working one that could be interesting.

@gdkchan
Copy link
Member Author

gdkchan commented Feb 14, 2023

I don't think it's a good idea since it could break other games that are currently working, unless we somehow enabled those changes only for Nintendo Switch Sports.

@sakuka47
Copy link

I understand, there is only this game that is useful this implementation, if I do not say anything stupid.

@gdkchan
Copy link
Member Author

gdkchan commented Feb 14, 2023

There are a few other games that should eventually benefit from this, but they also require proper buffer data sync (that is, it should upload the data of all modified buffers to the GPU before any operation using shaders accessing global memory). The problem is that doing this is very expensive (would cause performance to drop), so currently it is not being done. And it is not required to make Nintendo Switch Sports work as it both writes and reads the global memory data on the GPU.

@sakuka47
Copy link

Thank you for the details, it is appreciated

@adriangc13
Copy link

Download link is broken

@gaowanliang
Copy link

The link is not working, hopefully it will be updated again.

@TsonT
Copy link

TsonT commented Mar 14, 2023

If you guys clone this pull request and then compile you can get the executable.

@suryohady25
Copy link

Link isn't working.. It says expire,, mind to renew the link to download? Thanks..

@Ryujinx Ryujinx deleted a comment from gaowanliang May 10, 2023
@sakuka47
Copy link

Hello, can you rebase Pr with lasted master?

@r4f4w
Copy link

r4f4w commented Nov 3, 2023

Please merge this fix with master. We need this!

I`m seeing a lot of people in reddit, github and other forums asking for this game to work for more than a year!

@r4f4w
Copy link

r4f4w commented Nov 3, 2023

Hey everyone, for those interested in using this version, I've downloaded the project and built it myself. I've also uploaded it to my Google Drive for your convenience. Here's the link.

Here are some screenshots that I took while testing it:
Screenshot 2023-11-03 122647
Screenshot 2023-11-03 122326
Screenshot 2023-11-03 122745
Screenshot 2023-11-03 130402

The menus tend to be a bit laggy, with FPS drops occurring quite frequently. However, fortunately, the gameplay itself is quite enjoyable! There are some minor frame rate drops, but I was able to play most of the games without any issues.

Please note: I activated the "Ignore missing services" option, as I saw some people mentioning that it's necessary for smooth operation. Additionally, make sure to switch to Vulkan instead of using OpenGL for better performance.

@sakuka47
Copy link

sakuka47 commented Nov 3, 2023

Thanks for this rebase.

Quick question:

Is the l'an mode functional (launch not ldn)?

Are dual joycons supported?

Is it possible to play with several players on the same screen?

@r4f4w
Copy link

r4f4w commented Nov 3, 2023

Thanks for this rebase.

Quick question:

Is the l'an mode functional (launch not ldn)?

Are dual joycons supported?

Is it possible to play with several players on the same screen?

Really can't anwser any of those question because didn't tested any of them. I think that dual joycons will probably work, I just didn't tested because I still have to setup my dual joycons in steam.

@disenr
Copy link

disenr commented Nov 28, 2023

Thank you for your contribution. Have you tried badminton and can you play it normally?

@Ghostddd
Copy link

Thanks for this rebase.
Quick question:
Is the l'an mode functional (launch not ldn)?
Are dual joycons supported?
Is it possible to play with several players on the same screen?

Really can't anwser any of those question because didn't tested any of them. I think that dual joycons will probably work, I just didn't tested because I still have to setup my dual joycons in steam.

hey r4f4w can you create a new link? the older one is not working more

@Ghostddd
Copy link

i tried making my own build
but it crashes after i choose a sport.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Fix something gpu Related to Ryujinx.Graphics
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants