Skip to content

Conversation

@RuffledPlume
Copy link
Contributor

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

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 5 times, most recently from f618fb6 to e2e93af Compare January 2, 2026 18:29
@RuffledPlume RuffledPlume changed the title Reduce Alpha Model Uploads FacePrioritySorter Optimizations Jan 2, 2026
@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 2 times, most recently from 52f5ea6 to 8ad7cf4 Compare January 3, 2026 02:05
@RuffledPlume
Copy link
Contributor Author

image image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 3 times, most recently from 6d9ef02 to 684533d Compare January 6, 2026 03:08
@RuffledPlume
Copy link
Contributor Author

Updated Timings in the same view as the above:
image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 6 times, most recently from cc62cec to c0220f9 Compare January 6, 2026 23:30
@RuffledPlume
Copy link
Contributor Author

Same view, even faster now:

image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 3 times, most recently from 2ad984a to 08d7189 Compare January 7, 2026 01:42
@RuffledPlume
Copy link
Contributor Author

Final test in the same view:
image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 2 times, most recently from 49f7767 to 7cea999 Compare January 7, 2026 04:48
@RuffledPlume
Copy link
Contributor Author

RuffledPlume commented Jan 7, 2026

Ok Ok, this time for real final perf improvement:
image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 3 times, most recently from b48fd2b to 74bb319 Compare January 7, 2026 13:53
@RuffledPlume
Copy link
Contributor Author

RuffledPlume commented Jan 7, 2026

Actual final improvements this time, between this & last perf report I've offloaded the copy to the mapped buffer onto a job per zone, with the job being waited on in drawPass
image

@RuffledPlume
Copy link
Contributor Author

Priff Perf testing curtsey of Jin
Master:
image

PR:
image

@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 2 times, most recently from b3e36c3 to 0bf3aa3 Compare January 7, 2026 16:17
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
Sort Zones close accurately, then sort zones past the mid range with significantly less accuracy. Then dont sort at all for the furthest zones
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
Sync

Fix Plugin Reload
@RuffledPlume RuffledPlume force-pushed the SortedModelUploadRework branch 2 times, most recently from c6435b0 to ae1ab84 Compare January 7, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant