484 Commits over 365 Days - 0.06cph!
Hopefully fix shader compilation on Metal due to missing support for geometry shaders. I can't test it, because literally every other platform supports geometry shaders.
Started work on graphical texture optimisation tools (very much WIP). This will come in handy for future tuning of the texture streaming system. Especially once we get back to instancing. Hoo boy.
Enable building atlasses for mip level streaming. This might be a pandora's box, but it brings non-streaming texture memory to less than 1 GB, leaving plenty of room for streaming textures.
Change 4883 texture metadata for streaming
TextureOptimizationTools: Add function that changes only textures that should be streamable but aren't
Various fixes to the texture optimisation tools
Apply "Make All Streamable" to 8294 textures
Add option "Make All Streamable" to texture optimisation tools based on Diogo's filter functions
Force texture mipmap streaming to be always on (experiment) and set the memory budget equal to available graphics memory.
Be very cautious about enabling texture streaming. Only enable it if Texture.streamingTextureLoadingCount = 0 and Texture.allowThreadedTextureCreation = false. If not, set Texture.allowThreadedTextureCreation = false and try again in 1 second. One second is enough to upload a few textures, right?
Remove checking of Texture.streamingTextureLoadingCount during TextureStreaming.Update()
Disallow threaded texture creation whenever a loading screen is displayed. This should slightly improve loading times and further mitigate texture streaming race conditions.
Replace assertion with just a warning
Cleanup access to texture streaming related variables to prevent accidentally waking up the streaming system when we don't want to. Also added some experimental assertions to make sure no textures are currently loading when texture streaming is enabled.
Make texture streaming tunables accessible via ConVars and improve output of texture.stats
Merge from fast_debug_draw: Disable instancing for text by default, due to missing support for rich text formatting tags
Regenerate console commands
Disable ddraw instancing system for text by default because the new system doesn't support rich text formatting tags just yet
Disable mip map streaming early to prevent Unity from loading textures at a lower resolution
Merge from fast_debug_draw (remove permanently displayed debug sphere, whoops!)
Merge from /main/fast_debug_draw
Change distance fade to fade to black instead of transparent, which was the original DDraw behavior.
Added missing changes to material variant that Unity didn't save for some damned reason.
Various cleanups and fixes:
- Add InstancedDebugDraw properly to the Main Camera Prefab instead of adding it from code.
- Remove FastDebugLine from always included shaders, utilising shader variant stripping.
- Add material(s) to ensure line shader is included in builds.
- Work around Unity quirk: Can't set shader commands from material property blocks.
- Add a define to avoid matrix packing for easily confused GPU drivers.
- Clean up shader properties and exposed the actual distance for distance fade.
- Expose _Color, _LineWidth, _DistanceFade and _TransformType for potential use without instancing.
Apply D3D11 hack to fix IndirectDrawIndexedArgs.startInstance to Metal and OpenGL as well. Actually, the hack is now enabled for all renderers except Vulkan.
merge from fast_debug_draw (fix shader on metal)
fast debug draw: skip geometry shader on metal
Merge from fast_debug_draw (expand character set)
Expand character set of fast debug draw to all of ASCII and some useful characters from CP437
fix server build (IndirectUtil)
fix server build (FastDebugDraw)
Merge from fast_debug_draw
Don't actually disable QualitySettings.streamingMipmapsActive if we ever had an Update() cycle with it enabled. Instead, enable Texture.streamingTextureForceLoadAll for the same effect without crippling Unity's TextureStreamingManager