4,510 Commits over 1,249 Days - 0.15cph!
    
    
    
        
            
            
            
                
                Increase gc.buffer default to 4096 in the editor so big maps don't take forever to load
                
                
                
                
             
         
        
            
            
            
                
                Update DrawCall buffer from CPU every frame for stability
Fix typo in GPUBuffer<> wrapper
                
                
                
                
             
         
        
            
            
            
                
                Refactor & organize computebuffers with GpuBuffer<T> wrapper to ensure type safety & standardize the way computebuffers are expanded & created
Always clear the full memory of a ComputeBuffer when it is created
Default copy the existing ComputeBuffer over to the new one when expanding it
                
                
                
                
             
         
        
            
            
            
                
                Write the entire DrawCall array to the ComputeBuffer when it expands
                
                
                
                
             
         
        
            
            
            
                
                Some more cleanup
Turns out the fix for clearing buffers somehow got undone which explains all the strange behavior I was seeing
                
                
                
                
             
         
        
            
            
            
                
                Write IndirectArgs inside a separate compute shader
Fix submeshes not having their indirect args properly offset
Refactor to clean up compute shaders
Clear temp buffer before culling
                
                
                
                
             
         
        
            
            
            
                
                Adding some debug while chasing down building blocks being rendered with the wrong mesh
                
                
                
                
             
         
        
            
            
            
                
                Fix flickering by using a separate buffer in the middle of culling & clearing separate buffer with a separate compute shader
Small refactoring of compute shaders
                
                
                
                
             
         
        
            
            
            
                
                Cherrypick 
85500 & 
85501 (2021 compile fixes & remove BeginWrite)
                
                
                
                
             
         
        
            
            
            
                
                Define ComputeBuffer mode in seperate class
Remove `BeginWrite()` and `EndWrite()` because it magically doesn't work and the one ComputeBuffer still using it is pretty small anyways
                
                
                
                
             
         
        
        
            
            
            
                
                Update global_networked_bases/2021
                
                
                
                
             
         
        
            
            
            
                
                Merge gpu_culling into global_networked_bases
                
                
                
                
             
         
        
            
            
            
                
                Copy original computebuffer when expanding cells
                
                
                
                
             
         
        
            
            
            
                
                Handle meshes that don't have a shadow proxy
                
                
                
                
             
         
        
            
            
            
                
                Copy paste LOD scaling back when zooming in & based on "Object Quality" slider
                
                
                
                
             
         
        
            
            
            
                
                Cull meshes based on camera's frustum & cull shadows based on the "sun's frustum"
Store bools in bit flags inside culling GPU data
                
                
                
                
             
         
        
            
            
            
                
                Culling shader actually works now!
Fix errors when deleting meshes (related to syncing data to the gpu)
                
                
                
                
             
         
        
            
            
            
                
                Although culling is completely incorrect, it writes to IndirectArgs correctly inside the computeshader & renders some parts of the base correct
                
                
                
                
             
         
        
            
            
            
                
                Checkin before I break anything
                
                
                
                
             
         
        
            
            
            
                
                Grab initial attempt at gpu culling from a shelf
                
                
                
                
             
         
        
            
            
            
                
                Rename all instanced debug commands & remove redundant ones
Reimplement debugging commands with the new class structure & cell allocator
                
                
                
                
             
         
        
            
            
            
                
                Re-enable burst on culling jobs
                
                
                
                
             
         
        
            
            
            
                
                Fix RendererArray having initial capacity of 32k instead of 512 (typo) causing other arrays not to be resized alongside it
Fix DrawCallArray not resizing immediately after adding draw call
Fix IndirectArgs not scaling to 5x the size of the draw calls (for 5 uint each draw call)
                
                
                
                
             
         
        
            
            
            
                
                Disable burst for all culling jobs
                
                
                
                
             
         
        
            
            
            
                
                Added instanced rendering inside the SceneView (only runs inside editor)
                
                
                
                
             
         
        
            
            
            
                
                Merge cell_pooling -> global_networked_bases
                
                
                
                
             
         
        
            
            
            
                
                Return List<CellId> to pool when a partition removes the last cell in it's list
                
                
                
                
             
         
        
            
            
            
                
                Merge cell_pooling -> global_networked_bases
                
                
                
                
             
         
        
            
            
            
                
                Fix "RemovePackedCell" -> "RemoveCellWithSpace"
                
                
                
                
             
         
        
            
            
            
                
                Re-convert building block prefabs after merge from main
                
                
                
                
             
         
        
        
            
            
            
                
                Added warning instead of error when calling BeginWrite twice
Fixed typo and assigning IndirectArgs twice (instead of IndirectExtraArg)
                
                
                
                
             
         
        
            
            
            
                
                Reimplement BeginWrite / EndWrite & 2021 compile errors fixed
                
                
                
                
             
         
        
            
            
            
                
                Update global_networked_bases/2021
                
                
                
                
             
         
        
        
            
            
            
                
                Move CellPartition to it's own cs file
                
                
                
                
             
         
        
            
            
            
                
                Add pooling to cell allocator system
                
                
                
                
             
         
        
        
            
            
            
                
                Merge from main -> global_networked_bases
                
                
                
                
             
         
        
            
            
            
                
                Fixed meshes randomly disappearing due to using draw call index instead of renderer index
                
                
                
                
             
         
        
            
            
            
                
                Merging rewrite back into global_networked_bases
                
                
                
                
             
         
        
            
            
            
                
                Reconverted all building block prefabs & now all roofs work
                
                
                
                
             
         
        
            
            
            
                
                Fixed converter not overwriting buildingblock prefabs when using converting tool
                
                
                
                
             
         
        
            
            
            
                
                Reimplemented LOD level inside InstancedLODState config class
                
                
                
                
             
         
        
            
            
            
                
                Fixed NativeArray of render data not being resized when the computebuffer is resized
                
                
                
                
             
         
        
            
            
            
                
                Fix IndirectExtraArg being multiplied by 5, causing meshes to render on top of eachother
                
                
                
                
             
         
        
            
            
            
                
                Fix typo causing distance culling to use fov scale instead of max distance (culling everything)
                
                
                
                
             
         
        
            
            
            
                
                Fix & refactor cell removal code
                
                
                
                
             
         
        
            
            
            
                
                More refactoring & fixes
Fixed IndirectArgs buffer being set to Structured accidently (which silently fails)