Sprite render pipeline prepare stage #6621
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.
Objective
Add a prepare stage in the sprite render pipeline.
This would allow for heavier operations like #5213 as suggested by @superdump
and compute the sprite slicing there
Concept
The objective is to keep 1-1 mapping between main world
Sprite
and theExtractedSprite
, but allow multiplePreparedSprite
to be then computed before batching. This way the slicing, tiling, etc can be computed in the prepare stage as long as other checks which are not required in thequeue
stage.Work done
prepare
stage (fc9af23)Notes
This new stage adds an extra computation which I'm not happy about, querying the
GpuImage
asset to retrieve the image size which is currently done in thequeue
stage which queries it also for the sampler and view.I would like to include the
VisibleEntities
check in theprepare
stage and reduce thequeue
stage workload but I'm not familiar with the render phases systemMaybe the batching could happen in the
prepare
stage but I'm still not sure of the implications with the render phases