GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GS:DX12: Skip render passes on Tier 0 GPUs by SternXD · Pull Request #15134 · PCSX2/pcsx2

Conversation

@SternXD

@SternXD SternXD commented Oct 28, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Description of Changes

Skips D3D12 render passes on Tier 0 GPUs.

Rationale behind Changes

Tier 0 drivers don't implement render passes natively, so they're emulated instead. Skipping them avoids the extra overhead from EndRenderPass unbinding the RTs and depth buffer after every pass. This improved performance in Driv3r from ~137 FPS to ~151 FPS on my system.

Suggested Testing Steps

Test some GS bound games with D3D12 on NVIDIA/AMD/11th gen or earlier Intel iGPUs to see if performance improves and make sure nothing is broken.

Did you use AI to help find, test, or implement this issue or feature?

No

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@SternXD
GS:DX12: Skip render passes on Tier 0 GPUs
db970ed
Signed-off-by: SternXD <[email protected]>
@github-actions github-actions Bot added GS GS: Direct3D 12 labels Oct 28, 2026
@JordanTheToaster

JordanTheToaster commented Oct 29, 2026

Copy link
Copy Markdown
Member

Some of the highest gains on an RX 9060XT.

rhwershjwrsehjwr4hujj3w4r werh34hu34e5hj3ew4rjhr4 etrjhe35hju345jh3w4rhb2w4gh hgw3e4hwhwr4hj34wujhw3erw3h4
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

lightningterror
lightningterror reviewed Oct 29, 2026
View reviewed changes
Comment thread pcsx2/GS/Renderers/DX12/GSDevice12.cpp
@@ -4026,7 +4058,8 @@ void GSDevice12::EndRenderPass()

g_perfmon.Put(GSPerfMon::RenderPasses, 1);

@lightningterror lightningterror Oct 29, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

We should probably put this inside the if block now.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@SternXD SternXD Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

why? this is the same behavior as DX11/OGL?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@lightningterror lightningterror Oct 29, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

We aren't doing any unbinding on tier0 here anymore, shouldn't it be gated?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@SternXD SternXD Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

DX11/OGL don't unbind either, they just log it on target changes so stats stay consistent across backends is my understanding but if you'd prefer otherwise for DX12 I don't mind just was making sure you were aware of that :D

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@refractionpcsx2 refractionpcsx2 Oct 29, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I don't think it should be gated. I did mention it, but technically we're still simulating a render pass.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Mrlinkwii Mrlinkwii added this to the Release 2.10 milestone Oct 29, 2026
lightningterror
lightningterror approved these changes Nov 10, 2026
View reviewed changes

@lightningterror lightningterror left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Smoke tested on nv/amd and works.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@lightningterror
lightningterror merged commit 2b5e9df into PCSX2:master Nov 10, 2026
21 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@SternXD
SternXD deleted the gs-dx12-rp-tier0 branch November 10, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@refractionpcsx2 refractionpcsx2 refractionpcsx2 left review comments
@lightningterror lightningterror lightningterror approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

GS: Direct3D 12 GS

Projects

None yet

Milestone

Release 2.10

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@SternXD @JordanTheToaster @refractionpcsx2 @lightningterror @Mrlinkwii
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.