Track render targets to avoid unnecessary composites #2679
Closed
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.
The entity outline buffer is always composited into the final image, even if it wasn't rendered to. This accounts for a significant amount of the frame render time on the GPU (up to 5%) and can be avoided when there are no entity outlines.
Unfortunately, it's difficult to find an injection site where we can track whether the entity outline render target is modified. And there are conditions (other than using the VertexBuffer class to draw) where a mod could potentially modify the entity outline buffer. So this is not guaranteed to be robust in all situations, even if those situations are very unlikely.