DepthNormalPrepassLayer stub, DepthNormal shader class consumes from S_MODE_DEPTH
DepthNormals mode, uses values directly instead of Material, attach it to ShadingModels
Ignore and don't compile combo if it's not referenced by a mode or feature instead of erroring out, e.g. We want to reference DepthNormal.hlsl everywhere in Class.hlsl, but we want to only have combos for it if we're using a DepthNormal mode without complicating the codebase, this way when adding a new mode that references that combo, it's added to the shader without convoluting the source, argue with me if you think this is shit behavior
Temp bind FindOrCreateRenderTarget and use managed rendertarget for depthnormalprepasslayer
Should be continue rather than break, fix undefined identifier if S_MODE_DEPTH_NORMAL is not set
Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional
Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS
Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold
GTAO uses Normals::Sample() instead of recalculating normals from depth
https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4
Bind ClearFlags, this should probably be implicit
Just use DepthNormalPrepassLayer, use depthnormal mode again
Add DepthNormal() mode to lit shaders, this seem the most straightforward way to do this, shaders with just Depth() usually have a shared shader with no-color no-material output, legacy shaders rebuild normals from depth, not rendered in depthnormals mode
https://files.facepunch.com/sampavlovic/1b2711b1/hSVL6jr1Rx.png
Remove old no-normals depth prepass, keeps things simple, effects that we use will need to rely on depthnormals, doesn't add too much cost
Fix typo on gtao
Reconstruct Normals::Sample from depth if underlying texel doesn't use DepthNormal mode
https://files.facepunch.com/sampavlovic/1b2711b1/DdYOdR9WrI.png