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

Vulkan: Enable renderpass merging for all games #12462

Merged
merged 3 commits into from
Dec 1, 2019

Conversation

hrydgard
Copy link
Owner

@hrydgard hrydgard commented Nov 3, 2019

Was introduced in 1.9 for GoW games, but some other games can also benefit (for example Star Wars - The Force Unleashed).

This should have no visible side effects if it's correct (which I believe it is), so why not just enable it globally. If we do find problems with this, they should be fixed instead of disabling it again.

@hrydgard hrydgard added the Vulkan label Nov 3, 2019
@hrydgard hrydgard added this to the v1.10.0 milestone Nov 3, 2019
Copy link
Collaborator

@unknownbrackets unknownbrackets left a comment

Choose a reason for hiding this comment

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

Hm. Do we need to add dst to touchedFramebuffers in the VKRStepType::COPY and VKRStepType::BLIT cases? Hopefully a rare case. Can't remember if there was a reason this wasn't needed...

It'd be interesting to expose a debug statistic of renderpasses per frame this reduces.

-[Unknown]

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 4, 2019

If you enable the GPU profiler, you can see by looking at the list how many renderpasses were reduced away (though they'll look the same as renderpasses that we already removed through clear elimination).

So yeah, an actual number could be nice too indeed.

Regarding touchedFramebuffers, I'll have a look and think about it.

@hrydgard hrydgard force-pushed the always-merge-renderpasses branch from d5f5b1c to 26ab81c Compare November 30, 2019 22:04
@hrydgard
Copy link
Owner Author

Alright, I think this is ready now. Adding the copy/blit destinations to touchedFramebuffers does not hurt the optimization in the God of War games.

@hrydgard hrydgard merged commit e847881 into master Dec 1, 2019
@hrydgard hrydgard deleted the always-merge-renderpasses branch October 4, 2020 12:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants