userSam Pavloviccancel
reposboxcancel

1,886 Commits over 1,581 Days - 0.05cph!

3 Hours Ago
Add CommandList.TransferRenderTarget to transfer ownership of render targets between command lists
3 Days Ago
Cubemapper can accept multiple resolutions Use a single scratch texture for cubemapper staging texture and use rects to copy to/from
3 Days Ago
Hammer area lights Capsule desc for lightmapper takes half length Baked lighting for area lights + some falloff, LTC was taking reverse units compared to previous implementation Update shaders Remove point light size and adjust area light hammer values
4 Days Ago
Fix line light being darkened and warnings update shaders Directional lights was using the logic to null transform directions, putting it back
4 Days Ago
Replace fuckload of if statement from LTC::ClipQuadToHorizon with a lookup table, fast analytic line/capsule light implementation Pass light rotations to point lightbinned lights Cleanup LTC
6 Days Ago
Clean up fb copy logic Don't do threaded fullsorting if we have a framebuffer copy, we want to capture the first copy when the object is ready to draw and there's no good way for us to do synchronization from these threads before they're joined If we want multiple fb copies per layer, don't try to batch primitives, draw themindividually https://files.facepunch.com/sampavlovic/1b2511b1/5lQrZuR0X3.png
6 Days Ago
Do a fbcopy when needed when we issue the drawcall instead of start of layer https://files.facepunch.com/sampavlovic/1b2411b1/TelPfAoEb1.png Fix wrong blending modes being set on glass wtf
9 Days Ago
Readd disable backface culling
9 Days Ago
Remove exposure bias entirely from colorgrading, uses exposure compensation value from ToneMapLinear instead
9 Days Ago
Make shared postprocess not write to depth; we corrected a behavior that postprocess was using wrong depth buffer ( things like DoF are meant to use it even on PP layer ), but this caused some user PP effects to only be written to skybox when correcting it
9 Days Ago
Do autoexposure before we do postprocessing and use HDR color for it, adjust rate for HDR compensation, adjust autoexposure adaptation scale, fixes autoexposure wobbliness & gives a much better range to it Every tonemap type has exposure bias Remove bullshit RenderState initialization, we get these from the renderer already Clear alpha if we're rendering directly to screen, same behavior as before native postprocess removal Remove Exposure Bias from tonemapper, this doesn't make much sense since it's tied to only HableFilmic and does the same thing as ExposureCompensation
11 Days Ago
Fix GrabFrameTexture sending fixed, wrong number of mipmap levels, fixes validation error
11 Days Ago
Remove Native Postprocessing Squashed commit of the following: commit 477246d2ae28cf22d43eb62f99698bee6cec99c6 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Mar 18 00:08:02 2025 -0300 [pick] Bind all mips for QuarterResEffectsBloomInputTexture, fix bug with lighting on bloom layer commit d8b713b705c54e861056bc6998ee6a92bec82a11 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Mon Mar 17 23:59:49 2025 -0300 Explicit clear flags for ResolveHDRToFinalSDR commit bd47d1cf188196ada6a28019ca50a77d764f2629 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Mon Mar 17 23:44:21 2025 -0300 Remove postprocess methods from toolscene commit 7c543731baadea6be40054d9b930e439de700b28 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Mon Mar 3 13:35:58 2025 -0300 Remove deprecated gaussian bloom blur material commit 6d727c4e7ad5cb2ac00c59ba36b75ddfcfb95409 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Sat Mar 1 11:43:41 2025 -0300 Add Tonemap and VOlumetricFogManifest in RenderingPipeline commit dd050aeb240d66e0d9abef0600145a1a0e5b7f72 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Fri Feb 28 11:26:24 2025 -0300 Resolve to SDR in correct color space commit ecaaf6c6c985bf8b4e524a616b29e8b9fb71f6d8 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 23:07:12 2025 -0300 Removed unused stuff from pipeline commit 85576d476f52f5a282ebec85134708760fce5fa9 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 23:02:06 2025 -0300 Remove msaa_resolve tonemap_resolve too, not used commit 39e1de4d2b060dfbced2870c0ea9919b2e62cf0a Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 22:57:59 2025 -0300 Remove Valve's post_process and gaussian blur shader commit 55ad9e65d8ec43ae3dc9be071004fe5cff3d19f0 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 22:36:01 2025 -0300 Remove all mentions of stage1/stage2, copy HDR intermediary texture back to SDR if formats are different commit 36bc46cfb53d8e649d856240b2c888c21a90bc2d Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 22:13:16 2025 -0300 Get rid of native PostProcessSystem entirely, current components need reimplementation now commit 22707f8ac9566878e659637624e31d733ff3ebc6 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 21:42:52 2025 -0300 Start removing PostProcessingSystem commit 379b55356523496911969018d581b273f1d799d8 Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 21:30:25 2025 -0300 Remove RenderingPipelinePostprocess commit 11f6d48c4a584340faab8640924d8f6e3242610b Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 21:28:03 2025 -0300 Remove stage2 rts from camerarenderer, pointless now, remove parts of postprocess pipeline from it commit 176cedbfd96dec157725fe76662e6bb93cccd7ff Author: Sam Pavlovic <sam@sampavlovic.com> Date: Tue Feb 25 14:23:16 2025 -0300 Remove native postprocessing from renderpipeline UI Overlay comes before AfterUI
11 Days Ago
This should be proper uav barriers for native mipmapgen, fixes another validation error Bloom2 Upgrader for bloom threshold Some RTs do need to be initialized with clear when running from managed code, investigating Downsampler ignores negative values
11 Days Ago
Add -vulkan_validation_error_exit_failure to quit the game with a non-zero error code when a vulkan validation fails for CI
11 Days Ago
ClearUnorderedAccessViewUint handles depth textures properly, fixes validation error when clearing depth textures Don't clear initialize texture if this is a rendertarget, scenesystem already handles it Use RGBA1010102 instead of RGBA8888 for bloom rt, same storage size
13 Days Ago
Bloom2
13 Days Ago
Bind all mips for QuarterResEffectsBloomInputTexture, fix bug with lighting on bloom layer
13 Days Ago
Remove postprocess methods from toolscene Explicit clear flags for ResolveHDRToFinalSDR [pick] Bind all mips for QuarterResEffectsBloomInputTexture, fix bug with lighting on bloom layer
13 Days Ago
Remove native postprocessing from renderpipeline Remove stage2 rts from camerarenderer, pointless now, remove parts of postprocess pipeline from it Remove RenderingPipelinePostprocess Start removing PostProcessingSystem Get rid of native PostProcessSystem entirely, current components need reimplementation now Remove all mentions of stage1/stage2, copy HDR intermediary texture back to SDR if formats are different Remove Valve's post_process and gaussian blur shader Remove msaa_resolve tonemap_resolve too, not used Removed unused stuff from pipeline Resolve to SDR in correct color space Add Tonemap and VOlumetricFogManifest in RenderingPipeline Remove deprecated gaussian bloom blur material
13 Days Ago
Bloom layer from managed SetGlobal for all command list methods Use ToColorHandle in DepthNormalPrepassLayer Gaussian downsample this bloom layer
13 Days Ago
Use explicit SampleLevel with Mip 0 for LTC lookup, fixes sampling on vertex shaders
16 Days Ago
Use normal to calculate normal direction of capsule light, makes it non-bendy
16 Days Ago
Capsule and Sphere lights Staging https://files.facepunch.com/sampavlovic/1b1411b1/KSdcCVtuz8.png
17 Days Ago
Arealights2 Staging Update shaders
17 Days Ago
Clean up, get API ready, use light shape rect
19 Days Ago
Iterate LTC https://files.facepunch.com/sampavlovic/1b1111b1/7jNhtlWwWu.png
20 Days Ago
Rename legacy tonemapper to linear, upgrade existing ones using legacy to HableFilmic
20 Days Ago
LTC Area Lights experiment Iterate area lights https://files.facepunch.com/sampavlovic/1b1111b1/sbox-dev_hPxsPa4Lmq.mp4
21 Days Ago
Use linear tonemapping curve instead of hable if none of our managed ones are applied, same behavior we'll have on IPostProcessSystem removal
22 Days Ago
Don't do atmospherics on toolsvis wtf Make sure LPVs and lightmaps are resident with highest priority for bindless rendering, same behavior as valve's doing, should solve the texture corruption in hammer maps
23 Days Ago
Ensure depth fast path is using same material similarity for batching, should fix hammer crashes, re-enable depth fast path for prepass
23 Days Ago
Temp revert depth pass optimizations for depthnormal layers to fix hammer crash, looking into it
24 Days Ago
Flag DepthNormal prepass as a depth pass ( scenesystem optimization ) but don't override it's material since we output to color
24 Days Ago
We're putting fullsort on small prepass which isn't what we want, should be only on large prepass
24 Days Ago
Bring back two-pass depth prepass with big/small sorting
25 Days Ago
Iterate from Bloom2 from SceneStaging
25 Days Ago
Can't always imply pView->GetMainViewport() matches swapchain, make it calculate size of swapchain for passing to managed pipeline
25 Days Ago
Compile shaders
25 Days Ago
Shaded Prepass should always have conservative clipping for prepass
25 Days Ago
Bloom2 https://files.facepunch.com/sampavlovic/1b2711b1/FGDhgt0i6B.png https://files.facepunch.com/sampavlovic/1b2711b1/zuIstGTQuO.png https://files.facepunch.com/sampavlovic/1b2711b1/sg0ZpXbsVz.png
25 Days Ago
DepthNormal G-Buffer Rendering Mode (#1766) * 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 * 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 * DepthNormals mode fallback if shader doesn't have it * Pass screen size to managed texture we create for depthnormal gbuffer, dimensions must match the swapchain, which resized viewports don't match * Apply offset when sampling Prepass Normals https://files.facepunch.com/sampavlovic/1b0411b1/dfC5VELlYw.png * Use Depth MODE instead of DepthNormals for DepthNormals * Enable shadow fast pass properly, make it use depth_only shader * update shaders with depthnormal * Shader template uses S_MODE_DEPTH combo
25 Days Ago
Downsample does gamma correction if doing gaussian blur, fixes NAN and overbrightening on glass, ui blur and bloom2
25 Days Ago
Bloom2 https://files.facepunch.com/sampavlovic/1b2711b1/FGDhgt0i6B.png https://files.facepunch.com/sampavlovic/1b2711b1/zuIstGTQuO.png https://files.facepunch.com/sampavlovic/1b2711b1/sg0ZpXbsVz.png
26 Days Ago
LTC Area Lights experiment
26 Days Ago
Make Blur postprocess much faster while being also higher quality by using mip chain instead of doing gaussian blur inline
26 Days Ago
Add texture barriers for Graphics.MipmapGen, ensures that mips for bloom2 won't be read from the previous frame
26 Days Ago
Move tonemap to commandlist so that it's rendered over postprocesses that uses commandlist
26 Days Ago
Shader template uses S_MODE_DEPTH combo
26 Days Ago
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 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 DepthNormals mode fallback if shader doesn't have it Pass screen size to managed texture we create for depthnormal gbuffer, dimensions must match the swapchain, which resized viewports don't match Apply offset when sampling Prepass Normals https://files.facepunch.com/sampavlovic/1b0411b1/dfC5VELlYw.png Use Depth MODE instead of DepthNormals for DepthNormals Enable shadow fast pass properly, make it use depth_only shader update shaders with depthnormal