Commit Graph

659 Commits

Author SHA1 Message Date
Skyth 19df5470c8 Pick the sample closer to the camera when resolving 2x MSAA.
(cherry picked from commit f975cfe037971bc1684d64d31be7be09b31aa093)
2026-02-05 10:05:01 -06:00
Clay John c5d21df245 Increase precision of ninepatch source rect to ensure pixel perfect alignment 2026-01-19 14:52:56 -08:00
Rémi Verschelde 4db916dac6 Merge pull request #114908 from clayjohn/RD-env-roughness
Overhaul compute shader based environment roughness calculation to improve performance and quality
2026-01-13 22:20:59 +01:00
Rémi Verschelde 427eab91a2 Merge pull request #114907 from clayjohn/RD-env-filter
Fix downsampled radiance map generation
2026-01-13 22:20:55 +01:00
clayjohn e33515c2e6 Overhaul compute shader based environment roughness calculation to improve performance and quality 2026-01-12 22:07:56 -08:00
clayjohn 24c2c452de Fix downsampled radiance map generation.
Reduce the mipmap levels so that the border is pixel perfect

Always use the high quality downsample to reduce jaggies

Fix the jacobian approximation so that it actually helps account for the octahedral distortion
2026-01-12 18:56:10 -08:00
Rémi Verschelde 569a36b6fe Merge pull request #114785 from blueskythlikesclouds/mali-msaa-subpass-fix
Fix MSAA crashing Mali GPUs when using subpasses.
2026-01-10 07:28:43 +01:00
Skyth 71582241a3 Fix MSAA crashing Mali GPUs when using subpasses. 2026-01-09 15:04:36 +03:00
clayjohn 576afb6c18 Workaround crash in pipeline creation on intel Mesa devices by avoiding using half floats in derivative functions 2026-01-08 14:23:38 -08:00
Rémi Verschelde c8b1071f3b Merge pull request #114727 from blueskythlikesclouds/ssr-after-specular-occlusion
Prevent SSR from getting affected by specular occlusion.
2026-01-08 22:57:21 +01:00
Skyth 614d0e2f0d Prevent SSR from getting affected by specular occlusion. 2026-01-08 11:41:21 +03:00
Skyth 25824f18f5 Handle RGB10_A2 storage format in octmap shaders. 2026-01-08 11:16:40 +03:00
Thaddeus Crews f5c66ba68b Merge pull request #114279 from clayjohn/sky-singularity
Avoid singularity during sky filtering
2026-01-06 09:56:53 -06:00
Rémi Verschelde 05a46f3654 Merge pull request #114194 from blueskythlikesclouds/consistent-screen-and-viewport-sizes
Pass consistent viewport and screen sizes to fix point size emulation.
2026-01-06 10:59:54 +01:00
clayjohn 6e6d59b2e7 Avoid singularity during sky filtering by using a different method of calculating the orthonormal basis 2026-01-05 14:11:58 -08:00
Rémi Verschelde 52e7076a48 Merge pull request #114314 from blueskythlikesclouds/octmap-raster-fallback
Fall back to octmap raster path on certain devices & fix issues with the shaders.
2026-01-01 16:47:01 +01:00
Rémi Verschelde 51ff4d0458 Merge pull request #113334 from Image-unavailable/voxelgi-reflection-fix
Fix VoxelGI glossy reflection artifacts
2026-01-01 16:46:05 +01:00
Skyth 205d9814f1 Fall back to octmap raster path on certain devices & fix issues with the shaders. 2025-12-25 16:53:11 +03:00
Skyth c1d7c097b1 Pass consistent viewport and screen sizes to fix point size emulation. 2025-12-19 14:51:49 +03:00
BlueCube3310 ec705f6d47 Mobile: Fix clearcoat shader compilation error 2025-12-10 13:28:39 +01:00
Allen Pestaluky 628df323e2 Add agx_white, agx_contrast and HDR support to the AgX tonemapper.
Also optimize all tonemappers to perform less calculations per-pixel.

Note: unlike `white`, `agx_white` is limited to a minimum of `2.0` and defaults to `16.29`. When using a RGB10A2 render buffer, `agx_white` will be ignored and a value of `2.0` will be used instead to ensure good behavior on the Mobile renderer.
2025-12-03 09:01:39 -05:00
Dario c78c3ba894 Rewrite Radiance and Reflection probes to use Octahedral maps.
Co-authored-by: clayjohn <claynjohn@gmail.com>
2025-12-02 17:48:12 -08:00
Skyth ba556ebe03 Implement point size emulation in the forward shader for D3D12. 2025-12-02 17:36:31 +03:00
Image-unavailable 83b245a84d Use stricter alpha check during VoxelGI cone-tracing to prevent reflection artifacts 2025-11-29 17:47:07 +01:00
Thaddeus Crews 9dd6c4dbac Merge pull request #112927 from allenwp/fix_clamping_in_tonemap_mobile
Fix inconsistent color clamping between Mobile and Forward+.
2025-11-25 12:55:13 -06:00
Allen Pestaluky 2c6749ab9a Fix inconsistent color clamping between Mobile and Forward+.
Also remove inconsistencies with glow blending code and comments between the two shader files to allow for easier comparison of the two tonemap files.
2025-11-18 12:33:42 -05:00
blaqjack d650ac8a96 TAA adjustment to reduce ghosting 2025-11-18 12:24:09 +01:00
Thaddeus Crews 46adcc6268 Merge pull request #112801 from clayjohn/premul-alpha-sss
Apply `PREMUL_ALPHA_FACTOR` only in non-split-specular shader variants.
2025-11-17 10:56:40 -06:00
clayjohn a7e1a65ca8 Apply PREMUL_ALPHA_FACTOR only in non-split-specular shader variants.
This avoids a shader compile error when using SSS and PREMUL_ALPHA_FACTOR in the same shader.

This doesn't change any functionaility, since in practive, the split-specular shader variant is only ever used for opaque objects while using premul alpha makes the object non-opaque
2025-11-14 23:17:17 -08:00
clayjohn 79ffbfdf73 Reorganize canvas shader varyings in RD renderer 2025-11-14 22:29:28 -08:00
Thaddeus Crews 235d11245c Merge pull request #112481 from stuartcarnie/2d_canvas_vbos
Massively optimize canvas 2D rendering by using vertex buffers
2025-11-14 14:23:02 -06:00
Stuart Carnie 90c0e6acca 2D: Switch to VBOs for instance data
- Add support for vertex bindings and UMA vertex buffers in D3D12.
- Simplify 2D instance params and move more into per-batch data to save
  bandwidth

Co-authored-by: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
Co-authored-by: A Thousand Ships <96648715+athousandships@users.noreply.github.com>
2025-11-15 06:25:49 +11:00
Thaddeus Crews 1ab8e9847d Merge pull request #112494 from clayjohn/rd-fog-blend
Clean up Volumetric Fog blending behavior
2025-11-13 17:42:57 -06:00
Skyth d27e4dab16 Sanitize INF/NaN when copying last frame texture for SSIL/SSR. 2025-11-13 16:38:54 +03:00
clayjohn 8ee3897048 Clean up Volumetric Fog blending behavior
Use proper blending everywhere to be consistent and avoid multiplying by opacity twice.
2025-11-07 11:11:44 -08:00
Thaddeus Crews 3c1e479290 Merge pull request #110077 from clayjohn/mobile-glow
Overhaul and optimize Glow in the mobile renderer
2025-10-31 09:23:32 -05:00
clayjohn 2e59cb41f4 Optimize glow and tonemap gather step in the mobile renderer
Mobile devices are typically bandwidth bound which means we need to do as few texture samples as possible.

They typically use TBDR GPUs which means that all rendering takes place on special optimized tiles. As a side effect, reading back memory from tile to VRAM is really slow, especially on Mali devices.

This commit uses a technique where you do a small blur while downsampling, and then another small blur while upsampling to get really high quality glow. While this doesn't reduce the renderpass count very much, it does reduce the texture read bandwidth by almost 10 times. Overall glow was more texture-read bound than memory write, bound, so this was a huge win.

A side effect of this new technique is that we can gather the glow as we upsample instead of gathering the glow in the final tonemap pass. Doing so allows us to significantly reduce the cost of the tonemap pass as well.
2025-10-30 21:56:26 -07:00
Rudolph Bester ebd32c15ec Fix Light2D none shadow filter to use nearest sampling 2025-10-30 19:12:17 +02:00
Colby Klein bdbbed8ea9 Revise fog blending to fix over-darkening/borders.
This can result in low fog densities being a bit brighter, which may need slight adjustment in your scenes.

In exchange, volumetrics now blend smoothly together with the scene and regular fog.

Fixes #101514
2025-10-24 13:15:26 -07:00
Thaddeus Crews da593d0c16 Merge pull request #111897 from allenwp/environment-adj-prioritize-old-behaviour
Improve `Environment` adjustments (favor old behavior and quality).
2025-10-23 11:03:56 -05:00
Allen Pestaluky 0c7f013c55 Improve Environment color adjustments; specifically brightness and HDR 2D contrast.
This commit changes adjustments to behave as follows for all rendering configurations:

- Apply brightness to linear-encoded values, preventing contrast, saturation, and hue from being affected.
- Apply contrast to perceptually uniform (nonlinear sRGB-encoded) values, matching existing behavior when HDR 2D is disabled and producing optimal visual quality.
- Apply saturation with even color channel weights. This causes brightness of certain colors to change, but matches existing behavior when HDR 2D is disabled.

Adjustments are applied after glow and tonemapping to match existing behavior.
2025-10-23 11:08:49 -04:00
clayjohn f61ee7bdf6 Use half float precision buffer for 3D when HDR2D is enabled
This is necessary for Environment effects like Glow to work correctly.
2025-10-21 13:44:46 -07:00
Skyth c128886c63 Overhaul screen space reflections. 2025-10-21 19:23:38 +03:00
Clay John 36b92128b1 Merge pull request #110671 from allenwp/environment-glow-consistent
Blend glow before tonemapping and change default to screen.
2025-10-14 21:29:43 -07:00
Kaleb Reid 8173f43770 Apply luminance multiplier in copy_cubemap_to_panorama 2025-10-13 21:41:03 -07:00
Allen Pestaluky cafc012b05 Blend Environment glow before tonemapping and change default blend mode to screen.
Additionally, change the minimum `tonemap_white` parameter to `1.0`; users can increase `tonemap_exposure` for a similar effect to decreasing `tonemap_white` below `1.0`.

Co-authored-by: Hei <40064911+Lielay9@users.noreply.github.com>
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-10-10 12:08:08 -04:00
Allen Pestaluky bd9d1bf070 Add material debanding for use in Mobile rendering method.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-10-08 16:22:41 -04:00
clayjohn c7276273d8 Fix scene shader crash due to rename of view matrix and inverse view matrix 2025-10-07 13:36:23 -07:00
clayjohn 14b60f2264 Optimize vertex shader using mat3x4 to reduce bandwidth, load/store operations and ALUs 2025-09-26 23:20:08 -07:00
Thaddeus Crews 8c7c96e2c4 Merge pull request #108636 from clayjohn/MSAA-depth-mobile
Add depth resolve to the mobile renderer
2025-09-17 11:34:13 -05:00