Commit Graph

665 Commits

Author SHA1 Message Date
Colin O'Rourke 63f6e3691c DrawableTextures
Implementing DrawableTextures based on: https://github.com/godotengine/godot-proposals/issues/7379
2026-01-29 01:16:06 -08:00
Thaddeus Crews 4738ce72e3 Merge pull request #115026 from rothej/fix-94567-fog-shader-compilation-with-fog-disabled
Fix shader compilation error when writing to `FOG` when `render_mode fog_disabled`
2026-01-26 13:14:27 -06:00
Thaddeus Crews 0f8a1c9db2 Merge pull request #115147 from BastiaanOlij/fix_multiview_fixed_size
Apply fixed size properly for mono/stereo rendering.
2026-01-26 13:14:23 -06:00
Thaddeus Crews 3dc64a564b Merge pull request #115124 from blueskythlikesclouds/2x-msaa-pick-first
Pick the sample closer to the camera when resolving 2x MSAA.
2026-01-26 13:14:20 -06:00
Bastiaan Olij aac883849e Apply fixed size properly for mono/stereo rendering. 2026-01-20 23:19:45 +11:00
Clay John c5d21df245 Increase precision of ninepatch source rect to ensure pixel perfect alignment 2026-01-19 14:52:56 -08:00
Skyth f975cfe037 Pick the sample closer to the camera when resolving 2x MSAA. 2026-01-19 22:02:57 +03:00
Joshua Rothe 7a2f188382 Fixing shader compilation error when writing to FOG when render_mode fog_disabled.
Always declares FOG variable regardless of fog state. Previously, only declared
fog if FOG_DISABLED was undefined. This caused errors if the code tried to
write to fog later. Exists as a dummy variable when unused.

Signed-off-by: Joshua Rothe <joshrothe@gmail.com>
2026-01-16 02:12:52 -07: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