195 Commits over 182 Days - 0.04cph!
Disallow threaded texture creation whenever a loading screen is displayed. This should slightly improve loading times and further mitigate texture streaming race conditions.
Merge from fix_texture_streaming_2: Replace assertion with just a warning
Replace assertion with just a warning
Merge from fix_texture_streaming_2: Assertions
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.
Merge from fix_texture_streaming_2: Expose more ConVars
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
Merge from fix_texture_streaming_2
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
Merge from 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
Map texture streaming ConVar to the inverse of Texture.streamingTextureForceLoadAll
Merge from fix_texture_streaming - let's see if Jenkins will pick up on this
Merge from /indirect_instancing to fix build
Merge from .../fix_texture_streaming
Experiment: Set streaming mipmaps memory budget as a percentage of available VRAM, rather than calculate it based on texture load.
+ Reworked the DebugLine shader, fixing various isses with pixel alignment and perspective.
+ Added '-' character for negative numbers :)
+ Made sure that text size is always divisible by 4 for a clearer appearance. Also raised the default text thickness to 2. (I'm a fan of thin lines, but you really couldn't read these.)
Cerry-pick BufferMemoryBase, CommandMemoryBase and InstanceMemoryBase
Final refactorings: FastDebugDraw is now InstancedDebugDraw
Added ConVar to switch between old and new system.
Added UnityGLInterceptor as a base to UnityGLEmulator to intercept Unity.GL calls but avoid breaking classic DDraw.
Opted for nested types instead of overly long namespace names.
Exhibit proper resource management in InstancedDebugDraw as well as InstancedDebugMeshGenerator.