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

GS: Add Direct3D 12 renderer #5715

Merged
merged 9 commits into from Apr 15, 2022
Merged

GS: Add Direct3D 12 renderer #5715

merged 9 commits into from Apr 15, 2022

Conversation

stenzek
Copy link
Member

@stenzek stenzek commented Mar 20, 2022

Description of Changes

What the title says.

This seemed kinda redundant with the Vulkan renderer existing, until we found out that barriers were broken, and it was super unstable in the Intel drivers.

Even on AMD, DX12 ends up faster than Vulkan in some games (assuming barriers are off).

Long term, we'll probably look at doing sw blending via ROVs in DX12. But for now, it's only DX11 levels of accuracy (except it has my blending-based primitive ID DATE).

Larger line count is due to pulling in D3D12MemoryAllocator. The actual LOC increase in GS is about 3.5k.

Rationale behind Changes

Brr on Intel.

Suggested Testing Steps

Early days so probably plenty of bugs. Apparently some games have issues on Intel GPUs due to compiler issues which I still need to look into (e.g. NFSU2).

@seta-san
Copy link
Contributor

good future proofing update. windows 8.1 support ends on jan 10 2023.. after that dx11 is obsolete

@refractionpcsx2
Copy link
Member

What? No it isn't.

@kaosjr
Copy link

kaosjr commented Mar 20, 2022

good future proofing update. windows 8.1 support ends on jan 10 2023.. after that dx11 is obsolete

What are you even on about? This is just flat out wrong. You can still run even DX9 and older versions on Win10 natively.

@seta-san
Copy link
Contributor

What? No it isn't.

I’m saying we can safely drop support for dx11 after windows 8.1 loses support. Windows 10 and newer all support 12

@refractionpcsx2
Copy link
Member

yes but not all hardware that runs on win10 supports dx12.

@lightningterror
Copy link
Contributor

What? No it isn't.

I’m saying we can safely drop support for dx11 after windows 8.1 loses support. Windows 10 and newer all support 12

We won't.

@K0bin
Copy link

K0bin commented Mar 20, 2022

Long term, we'll probably look at doing sw blending via ROVs in DX12.

Do you also plan to implement that in the Vulkan renderer as well? I know AMD doesn't support VK_EXT_fragment_shader_interlock but Nvidia does and Mesa might add it in the future.

@Medal2009
Copy link

Description of Changes

What the title says.

This seemed kinda redundant with the Vulkan renderer existing, until we found out that barriers were broken, and it was super unstable in the Intel drivers.

Even on AMD, DX12 ends up faster than Vulkan in some games (assuming barriers are off).

Long term, we'll probably look at doing sw blending via ROVs in DX12. But for now, it's only DX11 levels of accuracy (except it has my blending-based primitive ID DATE).

Larger line count is due to pulling in D3D12MemoryAllocator. The actual LOC increase in GS is about 3.5k.

Rationale behind Changes

Brr on Intel.

Suggested Testing Steps

Early days so probably plenty of bugs. Apparently some games have issues on Intel GPUs due to compiler issues which I still need to look into (e.g. NFSU2).

Hi, i download new versions pcsx2 but find issues graphic, images games glitchy not normal, how to fix it.?

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Mar 21, 2022

You use our discord or forums to try and work out what's going on. picking pull requests on our github is not the place for you to get help. @Medal2009

@PCSX2 PCSX2 deleted a comment from Medal2009 Mar 21, 2022
@bearoso
Copy link

bearoso commented Mar 21, 2022

I know AMD doesn't support VK_EXT_fragment_shader_interlock but Nvidia does and Mesa might add it in the future.

From what I know, it's not going to be very fast on AMD/Mesa, so don't get your hopes up.

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Mar 21, 2022

I know AMD doesn't support VK_EXT_fragment_shader_interlock but Nvidia does and Mesa might add it in the future.

From what I know, it's not going to be very fast on AMD/Mesa, so don't get your hopes up.

We've already tried ROV (but unoptimised) in the past, and while it wasn't as bad on Jak 2 as OpenGL, it was still slow compared to Nvidia.

@K0bin
Copy link

K0bin commented Mar 21, 2022

I'm personally not particularly worried about AMD support, I'd just like to have this working in the Linux version.

@stenzek
Copy link
Member Author

stenzek commented Mar 22, 2022

Firmware limitations prevent blending from being fast on AMD. See the thread here: https://np.reddit.com/r/emulation/comments/rz7rqj/pcsx2_vulkan_released_in_latest_dev_builds/hrwoldv/?context=3

Personally I don't see much benefit in implementing FSI-based blending just for NVIDIA on Linux, when it could be done with ROV in Direct3D and support all three major vendors (nothing except NV supports FSI). NVIDIA still has barrier based blending on Linux anyway, and it's very fast.

@jeremybris

This comment was marked as outdated.

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

Successfully merging this pull request may close these issues.

None yet