-
Notifications
You must be signed in to change notification settings - Fork 60
FacePrioritySorter Optimizations #910
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
Open
RuffledPlume
wants to merge
5
commits into
117HD:master
Choose a base branch
from
RuffledPlume:SortedModelUploadRework
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
f618fb6 to
e2e93af
Compare
52f5ea6 to
8ad7cf4
Compare
Contributor
Author
6d9ef02 to
684533d
Compare
Contributor
Author
cc62cec to
c0220f9
Compare
Contributor
Author
2ad984a to
08d7189
Compare
Contributor
Author
49f7767 to
7cea999
Compare
Contributor
Author
b48fd2b to
74bb319
Compare
a9df200 to
bd54d66
Compare
Contributor
Author
b3b20de to
ba50f24
Compare
Reworked FacePriortySorter to build an indicie array which is passed into SceneUploader Alpha Models now have the sorted faces uploaded first, then unsorted last to allow for drawElements & drawArrays to work, meaning shadow rendering can use the sorted model data Tweaks Use Stamp Check as a slow path vs fast path Async Alpha Face Sorting Sort Zones close accurately, then sort zones past the mid range with significantly less accuracy. Then dont sort at all for the furthest zones Fix EnsureCapacity not growing enough to fit the count Perform multizoneLocs in PreSceneDraw multizoneLocs was failing due to zones being culled, causing flickering models when nearby zones we're culled. Instead of performing multizoneLocs in drawAlpha we should do it in preSceneDraw regardless of visibility, this allows us to do more accurate culling again saving allot of perf multizoneLocs should find the closest visible zone & padd scene frustum check Sync Replace eboAlphaStaging with a MappedBuffer We can reuse the results of the previous frame providing the Yaw/Pitch & Dist are the same Clamp buckets based on the diameter Offload StagingFaces copy to a job Sync Fix Plugin Reload Job needs to ensure its completed before requeuing Added vanillaTextureToOverrideCache Tweaks Reintroduced vaoShadow, now unsorted faces are pushed to vaoShadow & sorted are pushed to vaoO. This reduces the amount of faces pushed & potential breakage to sorting Tweaks Merge Projected X/Y & Dist Perform Projection within the SceneUploader transformModelVertices to avoid looping over vertices multiple times Merge modelLocalXYZ and modelLocalXYZI fz check is redundant now since it should be caught by the projection Optimizations Added int version of undoVanillaShading Optimizations Tweaks Tweaks Added Timers (Draw_Temp, Draw_Dynamic) Async Shadow Upload Swap to ConcurrentLinkedDeque ConcurrentLinkedDeque is lock free, so queuing jobs in hot path is faster Fixed Material Data typo Optimizations
Ignore Contexts which are still loading Fixes Ignore Draw Callback if WorldViewCtx is still loading IndirectDraw Exception handelling Fix Timers Make Threaded Dynamic Upload just refresh GPU Flags instead of restarting plugin Sync Reduced VertexWriteCache Max Capacity from a MB to just 64 KB Memory Usage Reduction Only Allocate DynamicRenderThreads when the config is enabled SceneUploader is small enough to not warrent pooling Change SortedFaces to KB instead of MB Sync Dynamically resize distanceToFaces Allocate enough to fit the diameter Tweaks Memory Reductions Allocate distanceToFaces based on models diameter & faceCount Increase Dynamic Upload RT To a max of 4, since i've reduced the memory usage Sync Sync Sync Sync Sync Added Thread safe alternative to NPC getId
69fd2e7 to
0cd9213
Compare
06678a9 to
3781cab
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.









Reworked FacePriortySorter to build an indicie array which is passed into SceneUploader
Alpha Models now have the sorted faces uploaded first, then unsorted last to allow for drawElements & drawArrays to work, meaning shadow rendering can use the sorted model data