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

[Feature Request]: D3D12 renderer support for feature level 12_1 or higher to fix blending support #11543

Closed
Kirby0Louise opened this issue Jul 13, 2024 · 5 comments

Comments

@Kirby0Louise
Copy link

Description

Having read the recent PCSX2 2.0 blog post, I was surprised to learn that the D3D backends supposedly "lack features" for blending. After taking a quick look at the code, I think I found the problem: D3D devices are initialized with FL 11_0, rather than FL 12_1 or 12_2, which include support for Rasterizer Ordered Views, a technique in D3D that allows for accurate, custom blending.

Other emulators such as Xenia have shown ROV is a proven method for emulating custom blending and even solving bugs on Intel GPUs

Reason

This is a good feature to add because it will improve accuracy on the D3D12 backend, which is particularly important for the community Xbox ports of PCSX2 (as these consoles only support other APIs via a translation layer that can sap performance). D3D12 is also compatible with Window's built in AutoHDR and AutoSR features, while other backends are not. Also mentioned in the PCSX2 2.0 blog post was instability on Intel GPUs in GL and Vulkan, this would provide a stable backend with improved accuracy support for these machines.

Examples

https://www.intel.com/content/www/us/en/developer/articles/technical/rasterizer-order-views-101-a-primer.html
https://learn.microsoft.com/en-us/windows/win32/direct3d12/rasterizer-order-views
https://github.com/xenia-project/xenia/wiki/ROV

@JordanTheToaster
Copy link
Member

Already a thing #7655

@Kirby0Louise
Copy link
Author

Thanks. It would still be prudent to init with the highest feature level available to the device instead of defaulting to 11_0.

@RedDevilus
Copy link
Contributor

Thanks. It would still be prudent to init with the highest feature level available to the device instead of defaulting to 11_0.

I don't see how bumping the minimum feature level would help with the discrepancy of blending accuracy compared to like Vulkan side.

@Kirby0Louise
Copy link
Author

It doesn't, but it's still good practice to ask for the highest feature level available unless you have a good reason to use a lower one. Regardless if ROV is supported there shouldn't be any trouble supporting required blending.

@Felipefpl
Copy link

It doesn't, but it's still good practice to ask for the highest feature level available unless you have a good reason to use a lower one. Regardless if ROV is supported there shouldn't be any trouble supporting required blending.

What about the ppl with video cards that are a bit older? They should just be excluded from using pcsx2?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants