[Profiling] Fix performance regression in FastTextRenderer #2058
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.
PR Details
@manio143 found a performance regression introduced in #1896 - this PR fixes it.
Description
Mapped resources are typically uncached with write combining - so reading from the buffer is significantly slower.
Issue came up only when a debugger with a disable JIT on load flag is hooked to the process.
The pre JIT'ed assembly for
GraphicsFastTextRendererGenerateVertices
had unnecessary reads built in, the attached debugger prevented further optimization, leading to a bunch of extremely slow reads on the mapped resource.This PR also:
Position.Z
andNormals
from the vertex buffer used to improve throughput.SIMD
to build the vertex buffer.GraphicsFastTextRendererGenerateVertices
, it was internal before PR [Native] - Implement some existing C++ methods in C# #1896.Vertex2DPositionTexture
Related Issue
Supersedes PR #2049
Types of changes
Checklist