27 Days Ago
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png Fix AO compositing for custom shaders https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png Add compiled shaders for AO including for Material shaders Composite AO to pipeline rather than blitting, cleanup AddHookAfterTranslucent > AddHookAfterDepthPrepass [Pick] Add internal Graphics.FrameAttributes, up to review Remove hack for clearing AO and use FrameAttributes instead [pick] GetBindlessRWTextureXXX if compute shader Move all ambient occlusion sampling to AmbientOcclusion.hlsl, bindless sampling RWTextureCubeArray doesnt exist, should just be a RWTexture2DArray [pick] Fog.hlsl cant be sampled from compute shaders in compute shaders that also ref lighting.fxc [pick] Fix include guards for hlsl classes, fixes declaration in both standard and material shaders, fix AO sampling Update shaders with bindless SSAO sampling Do a simple texture fetch for AmbientOcclusion::Sample, simplify SampleScreenSsMSAA Compile shaders without MSAA sampling for AO Child camera executes command lists from camera it's taking attributes from Internal CommandList with calling action directly Temp pass RenderEffect inside the command list directly Fix validaiton error in old AO where we were writing normals when never bound Execute procedural layers ( managed hooks ) before threaded action to set up geometry, this fixes race condition in viewattributes from hooks Previously FrameAttributes/ViewAttributes were working to pass to the rest of the pipeline merely because of a race condition and would break down in low framerates and wouldn't actually pass changed view attributes to those partitions in the correct order ( https://i.imgur.com/fW4VPVJ.mp4 ), this does it properly