Stuart Carnie
b815c88dec
Metal: Refactor for future Metal 4, switch to C++; fix dynamic uniforms
2026-02-06 07:07:10 +11:00
Dario
703b3f3dc2
Add structure padding where necessary for push constants.
...
Co-authored-by: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com >
2026-02-04 12:12:19 +01:00
Thaddeus Crews
fbbb8a921b
Merge pull request #115309 from Ivorforce/localvector-explicit-copy
...
Change copy constructor of `LocalVector` from implicit to explicit
2026-01-30 09:32:07 -06:00
Thaddeus Crews
75cd151cb0
Merge pull request #113781 from clayjohn/rd-discardable
...
Mark more textures as discardable
2026-01-27 15:18:31 -06:00
Lukas Tenbrink
63272b23ef
Make LocalVector copy constructor explicit.
2026-01-23 20:52:03 +01: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
Skyth
71582241a3
Fix MSAA crashing Mali GPUs when using subpasses.
2026-01-09 15:04:36 +03:00
Skyth
25824f18f5
Handle RGB10_A2 storage format in octmap shaders.
2026-01-08 11:16:40 +03:00
clayjohn
8d1277fdb1
Free octmap pipelines before freeing shaders and check pipeline validity before freeing pipelines in PipelineDeferredRD
2025-12-17 11:48:11 -08:00
Thaddeus Crews
ef0dd99a37
CI: Bump clang-format and clang-tidy versions
...
• clang-format: 20.1.0 → 21.1.7
• clang-tidy: 20.1.0 → 21.1.6
• `.clang-format`: 17.0.6 → 18.1.8 (keep 3 versions behind latest for compatibility)
2025-12-13 09:55:14 -06:00
clayjohn
c1253d3aad
Mark more textures as discardable
...
This allows the ARG to better optimize their usage for mobile devices.
In particular, this allows the ARG to avoid loading the contents of the texture into tile memory when rendering into the texture if the contents won't be used anyway.
2025-12-08 15:47:42 -08: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
Thaddeus Crews
62affe05b8
Merge pull request #107902 from DarioSamo/sky-octahedral
...
Rewrite Radiance and Reflection probes to use Octahedral maps.
2025-12-02 20:43:05 -06: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
clayjohn
4cd65e081d
Ensure that all spec constants are given a value in the mobile post process shader so that re-spirv can pick up on them and optimize them out of the final shader
...
This is needed to workaround a bug on Adreno devices when using input attachments and spec constants in the same shader
2025-12-02 11:18:00 -08:00
blaqjack
d650ac8a96
TAA adjustment to reduce ghosting
2025-11-18 12:24:09 +01:00
Skyth
d27e4dab16
Sanitize INF/NaN when copying last frame texture for SSIL/SSR.
2025-11-13 16:38:54 +03:00
clayjohn
986786dc8c
Use proper bitshift for tonemap srgb flag in Forward+ renderer
2025-10-31 18:35:39 -07: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
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
Thaddeus Crews
0400b703e4
Merge pull request #111577 from Kaleb-Reid/fix-lightmap-luminance
...
Apply luminance multiplier in copy_cubemap_to_panorama
2025-10-14 10:31:34 -05:00
Kaleb Reid
8173f43770
Apply luminance multiplier in copy_cubemap_to_panorama
2025-10-13 21:41:03 -07:00
Dario
ba268416d5
Push pipeline compilation of various effects to the worker thread pool.
2025-10-13 12:00:23 -03: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
Thaddeus Crews
b17aa3343a
Revert "SCons: Add CPPEXTPATH for external includes"
2025-10-06 13:09:22 -05:00
Aaron Franke
3d1c9fd5de
Move server files into their subfolders
2025-09-30 19:39:39 -07:00
Thaddeus Crews
2b7f39ea28
Merge pull request #110505 from Calinou/tweak-draw-command-labels
...
Tweak draw command label names for consistency
2025-09-30 20:10:37 -05:00
Aaron Franke
9fbf5808a0
Rename server "free" functions to "free_rid" to match exposed API
2025-09-30 16:52:25 -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
Hugo Locurcio
204e310914
Tweak draw command label names for consistency
...
- Use Title Case for all labels, and add hyphens where relevant.
- Mention Roughness in SSR Filter's label name, as it's only enabled
when the SSR roughness quality is not set to Disabled.
2025-09-14 01:23:47 +02:00
Allen Pestaluky
5a3e69d16e
Add debanding to SMAA and apply debanding before spatial upscalers.
2025-08-25 16:55:36 -04:00
Allen Pestaluky
a033656eda
Fix debanding for Mobile rendering method with HDR 2D.
2025-07-24 16:11:49 -04:00
clayjohn
a8efa55bed
Add depth resolve to the mobile renderer
2025-07-16 20:37:39 -07:00
Allen Pestaluky
a1591512f8
Always perform color correction and debanding on nonlinear sRGB values.
...
Fixes #107730
Co-authored-by: LuoZhihao <luo_zhihao@outlook.com >
2025-07-08 13:44:53 -04:00
Dario
46277836a6
Optimize Mobile renderer by using FP16 explicitly.
2025-06-09 14:39:35 -03:00
Thaddeus Crews
de37627404
Merge pull request #102552 from DarioSamo/shader-baker
...
Add shader baker to project exporter.
2025-05-28 17:09:38 -05:00
Stuart Carnie
7d93119353
Renderer: Eliminates String allocations for all labels in the renderer
...
Uses `Span<char>` to avoid additional allocations in the graph.
2025-05-28 06:01:35 +10:00
Dario
5a30a7e7cd
Add shader baker to project exporter.
...
Metal Support contributed by Migeran (https://migeran.com ) and Stuart Carnie.
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com >
Co-authored-by: Gergely Kis <gergely.kis@migeran.com >
2025-05-27 12:45:27 -03:00
Thaddeus Crews
e89c4b0f9f
Merge pull request #102330 from RGDTAB/add_partial_smaa
...
Add SMAA 1x to screenspace AA options
2025-05-26 11:24:35 -05:00
Raymond DiDonato
6b99608950
Add SMAA 1x
2025-05-21 15:02:09 -04:00
Ricardo Sanchez-Saez
47971c0a27
Introduce 'visionos' platform derived from 'apple_embedded'
2025-05-19 15:47:01 -07:00
Thaddeus Crews
01fc9aee6c
Core: Modernize C headers with C++ equivalents
2025-05-02 08:23:01 -05:00
Thaddeus Crews
3947cbe3b2
Merge pull request #104386 from Repiteo/core/cpp-math
...
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
Thaddeus Crews
98aced4e65
Merge pull request #99768 from dsnopek/openxr-vulkan-foveated-rendering
...
OpenXR: Use the `XR_FB_foveation_vulkan` extension to get the density map for VRS
2025-04-17 09:14:23 -05:00
Thaddeus Crews
ad40939b6f
Core: Replace C math headers with C++ equivalents
...
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
Thaddeus Crews
94282d88f9
Core: Use Math namespace for constants
2025-04-10 16:29:30 -05:00