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

VMManager: Add renderer selection warning #11923

Merged
merged 1 commit into from
Oct 23, 2024
Merged

Conversation

JordanTheToaster
Copy link
Member

Description of Changes

Adds a once per launch warning if a user does not have the renderer set to Automatic or Software.

image

Rationale behind Changes

Some users may change the renderer to a sub optimal option and experience problems with graphical issues performance and driver crashes on certain brands of GPUs. This warning will help point them in the right direction as to why this is happening.

Suggested Testing Steps

Make sure the warning works correctly.

@crashGG
Copy link
Contributor

crashGG commented Oct 17, 2024

Will this cause some trouble for users who deliberately choose a certain renderer insdead of "auto"?
For example, AMD graphics cards will run faster and more stable on DX11 API. If choose auto, it will be switched to Vulkan.
If the user knows their graphics card better than "auto" and specifies a rendering API, they will have to be bothered by this prompt every time when they open the game.

@JordanTheToaster
Copy link
Member Author

Will this cause some trouble for users who deliberately choose a certain renderer insdead of "auto"? For example, AMD graphics cards will run faster and more stable on DX11 API. If choose auto, it will be switched to Vulkan. If the user knows their graphics card better than "auto" and specifies a rendering API, they will have to be bothered by this prompt every time when they open the game.

AMD users have no reason to use DX11 it runs "faster" because it's inferior ability to run blending.

@crashGG
Copy link
Contributor

crashGG commented Oct 17, 2024

Will this cause some trouble for users who deliberately choose a certain renderer insdead of "auto"? For example, AMD graphics cards will run faster and more stable on DX11 API. If choose auto, it will be switched to Vulkan. If the user knows their graphics card better than "auto" and specifies a rendering API, they will have to be bothered by this prompt every time when they open the game.

AMD users have no reason to use DX11 it runs "faster" because it's inferior ability to run blending.

If you have an AMD RDNA3 integrated graphics card, you won't say that. A few months ago, the RDNA3 integrated graphics card often lost response when using the vulkan api in pcsx2. After several months of driver and pcsx2 iteration, this problem has been greatly improved, but it still exists. In addition, the RDNA3 integrated graphics card will be 20%~30% slower than dx11 when using vulkan in pcsx2. This usually results in lower magnifications being used when upscaling the resolution, even if the level of blending is increased.

@F0bes
Copy link
Member

F0bes commented Oct 17, 2024

Will this cause some trouble for users who deliberately choose a certain renderer insdead of "auto"? For example, AMD graphics cards will run faster and more stable on DX11 API. If choose auto, it will be switched to Vulkan. If the user knows their graphics card better than "auto" and specifies a rendering API, they will have to be bothered by this prompt every time when they open the game.

The message is shown once per PCSX2 run. You can run more than one game and the message will only be shown once. It only resets when restarting PCSX2.

@JordanTheToaster
Copy link
Member Author

If you have an AMD RDNA3 integrated graphics card, you won't say that.

If you have an RDNA 3 GPU you need to use the latest nightly with the latest drivers and at least 4x internal or higher to not have it crash. There shouldn't be any issues running at 4 to 6 times internal on any RDNA 3 GPU.

@crashGG
Copy link
Contributor

crashGG commented Oct 17, 2024

If you have an AMD RDNA3 integrated graphics card, you won't say that.

If you have an RDNA 3 GPU you need to use the latest nightly with the latest drivers and at least 4x internal or higher to not have it crash. There shouldn't be any issues running at 4 to 6 times internal on any RDNA 3 GPU.

Of course I have RDNA3 integrated graphics, and I keep up with the latest drivers and nightly versions of PCSX2. So I complain about the performance degradation of Vulkan. An obvious example is that in the game Soulcalibur III, DX11 can run at full speed at 4x internal resolution, and the GPU utilization rate is about 68%, while switching to Vulkan, 4x internal resolution can only run at 41fps, If want to run at full speed, have to reduce the internal resolution to 3x, and the GPU utilization rate is 76%.

@crashGG
Copy link
Contributor

crashGG commented Oct 17, 2024

I agree that it is advisable to prompt novice users when they use software rendering, or when the graphics card supports Vulkan and the user sets it to OpenGL API. Because the user's choice is obviously unwise at this time. But when the user specifies one of the DX11 DX12 Vulkan APIs, maybe he has a more suitable or sufficient reason. At this time, the user should not be disturbed rashly.

Copy link

@AmyRoxwell AmyRoxwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works on Arch linux.
image

Copy link
Contributor

@kamfretoz kamfretoz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code LGTM, Untested.

@F0bes
Copy link
Member

F0bes commented Oct 18, 2024

At this time, the user should not be disturbed rashly.

So you consider this PR a rash disturbance?

@crashGG
Copy link
Contributor

crashGG commented Oct 18, 2024

At this time, the user should not be disturbed rashly.

So you consider this PR a rash disturbance?

I am not a native English speaker, my reply was sent through a translator, so the wording may be inappropriate or impolite.

There is an old proverb in the East:
if you have to use force to break a melon off the vine, it won't taste sweet (because it's only when the melon is ripe that it can be removed with just a slight twist)

I mean, it's good to remind users kindly, but isn't it too much to remind them every time they start the system? Maybe it would be more appropriate to write relevant reminders in the option comments.

@F0bes
Copy link
Member

F0bes commented Oct 18, 2024

I'm thinking a better solution is to add a confirmation dialog whenever the renderer dropdown is changed to a hardware renderer once per PCSX2 run (utilize that static bool I showed you).
Yes, it's a time waste when users select renderer xyz for no good reason and ask for support but we might be punishing reasonable setups. It's hard enough to get automatic right with all the different drivers / hardware.

@crashGG
Copy link
Contributor

crashGG commented Oct 18, 2024

One question is, how to ensure that the "auto" is definitely smarter than the user's choice? As far as I know, some early Intel integrated graphics cards support Valkan but have various problems running. This is why the Dolphin emulator now recommends Intel graphics card users to use DX11 in the video options.

@Mrlinkwii
Copy link
Contributor

As far as I know, some early Intel integrated graphics cards support Valkan but have various problems running.

they already default to either dx11/opengl

@F0bes
Copy link
Member

F0bes commented Oct 18, 2024

One question is, how to ensure that the "auto" is definitely smarter than the user's choice?

It really depends on the user. A power user might switch the renderer because it works better for them but also realize the new graphical glitches, lag, or crashes are because they switched off of automatic. These are the people I'm not too worried about as they don't usually take up time requesting support.

The larger issue comes from the users following youtube tutorials or just toggling random settings hoping that they can somehow squeeze for FPS out of the emulator. These people are more likely to blame the emulator for their messed up config. The hope is that an OSD or messagebox pointing out their modified renderer might make them think "hmm, maybe I should just leave this on Automatic." You can draw a comparison between this and the manual hardware hacks. When you disable the automatic hardware hacks you get an OSD warning despite some people liking a config differing from the automatic one.

Back to the question. We can't fully ensure that auto is better than a manual setting, but we keep the heuristics for automatic up to date with the latest information given to us by users and testers.

@F0bes F0bes merged commit 56a2b3b into PCSX2:master Oct 23, 2024
12 checks passed
@JordanTheToaster JordanTheToaster deleted the box branch October 23, 2024 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants