Commit Graph

392 Commits (cb1569345a6f17da08241e645ab03cb2e1b78d2f)

Author SHA1 Message Date
Bastiaan Olij 21ffbecfa9 Resolve depth buffer in pass if supported by driver 2025-11-17 17:29:38 +07: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 +07:00
Stuart Carnie 230adb7511 Add Persistent Buffers
This work is a heavily refactored and rewritten from TheForge's initial
code.

TheForge's original code had too many race conditions and was
fundamentally flawed as it was too easy to incur into those data races
by accident.

However they identified the proper places that needed changes, and the
idea was sound. I used their work as a blueprint to design this work.

This PR implements:

 - Introduction of UMA buffers used by a few buffers
(most notably the ones filled by _fill_instance_data).

Ironically this change seems to positively affect PC more than it does
on Mobile.

Updates D3D12 Memory Allocator to get GPU_UPLOAD heap support.

Metal implementation by Stuart Carnie.

Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
Co-authored-by: TheForge team
2025-10-24 08:16:19 +07: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 +07:00
Dario b49aea89d0 Organize render surface sorting key for optimizing API performance. 2025-10-15 11:35:02 +07:00
Kaleb Reid 8a8bd02860 Use correct shadow material in some cases in Mobile 2025-10-14 13:44:09 +07:00
Thaddeus Crews 8150cb9200
Merge pull request #111403 from AeioMuch/fix_double_precision_wrong_indexes
Fix wrong indices used for transform & UBO matrix for double precision build
2025-10-10 10:25:59 +07:00
AeioMuch dae2122388 Fix wrong indexes for double precision 2025-10-09 22:01:41 +07: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 +07: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
Thaddeus Crews f85dc0720d
Merge pull request #111303 from Kaleb-Reid/fix-dof-msaa-mobile
Use resolved depth texture for DOF with MSAA in Mobile
2025-10-06 09:06:38 +07:00
Kaleb Reid ac8491ae72 Use resolved depth texture for DOF with MSAA in Mobile 2025-10-05 13:51:42 +07:00
BlueCube3310 24ed12d4a3 Fix LightmapGI not being correctly applied to objects 2025-10-01 19:18:09 +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 +07: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 f9694033a5
Merge pull request #107923 from clayjohn/RD-mat3x4
Use Mat3x4 for model and view transforms to save bandwidth and ALUs
2025-09-30 18:34:59 +07:00
Thaddeus Crews 3997e77393
Merge pull request #111054 from Kaleb-Reid/fix-render-list
Sort render list correctly in RD renderers
2025-09-30 11:19:18 +07:00
Thaddeus Crews 21fd4faf1b
Merge pull request #107469 from Ivorforce/vector-localvector-explicit-span-conversions
Remove implicit conversions between `LocalVector` and `Vector`
2025-09-30 11:19:17 +07:00
Kaleb Reid 5021b3e6e5 Sort render list correctly in RD renderers 2025-09-29 17:22:26 +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 +07:00
Lukas Tenbrink abe3b481ae Make conversions from `LocalVector` to `Vector` explicit. 2025-09-16 21:41:28 +07: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 +07:00
clayjohn a8efa55bed Add depth resolve to the mobile renderer 2025-07-16 20:37:39 +07:00
Apples 62a5cd90a7 Fix opaque stencil rendering 2025-07-02 21:49:19 +07:00
devloglogan 36128bfc29 Check render target validity before getting motion vector texture in mobile renderer 2025-06-13 18:52:02 +07:00
Rémi Verschelde da05a6b775
Merge pull request #106907 from SpockBauru/fix-mobile-lightmap-instances
Vulkan Mobile: Fix lightmap instances count
2025-06-12 11:56:32 +07:00
Rémi Verschelde 0497ae9947
Merge pull request #80710 from apples/7174-apples-stencil
Add stencil support to spatial materials
2025-06-12 01:15:35 +07:00
Apples d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 +07:00
SpockBauru fe1d499aa4 Mobile: Fix lightmap instances count 2025-06-09 17:58:17 +07:00
Dario 46277836a6 Optimize Mobile renderer by using FP16 explicitly. 2025-06-09 14:39:35 +07:00
Apples 7574a5dbb3 Add depth function for spatial materials 2025-06-06 09:21:19 +07:00
devloglogan 3b70fbdc3c Implement motion vectors in mobile renderer 2025-05-30 13:09:54 +07: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 +07: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 +07:00
BlueCube3310 546b40eee2 Mobile: Move _setup_lightmaps before _fill_render_list 2025-05-23 14:28:45 +07:00
Raymond DiDonato 6b99608950 Add SMAA 1x 2025-05-21 15:02:09 +07:00
clayjohn 9a1def8da1 Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera)
Add new shader built in Z_CLIP_SCALE to easily adjust clipping distance to avoid clipping walls etc.

Add fov_override to StandardMaterial3D to easily have a custom FOV for FPS objects

Add IN_SHADOW_PASS built-in to shaders for tweaking materials without impacting shadow maps
2025-05-21 10:16:05 +07:00
Thaddeus Crews a12e9d5c31
Merge pull request #106493 from DarioSamo/mobile-scs-permutations
Reduce amount of permutations in mobile shader.
2025-05-20 11:37:26 +07:00
BlueCube3310 67a2c69c78 Mobile: Disable subpass post-processing when using FXAA 2025-05-20 13:21:59 +07:00
Dario ff3ababb09 Reduce amount of permutations in mobile shader. 2025-05-16 12:40:21 +07:00
Capry 9828c365c3 Add support for bent normals for indirect lighting and specular occlusion 2025-05-12 12:52:04 +07:00
landervr 56730d0cb2 Add specular occlusion from ambient light
Co-authored-by: guerro323 <kaltobattle@gmail.com>
2025-05-08 23:52:01 +07: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 +07: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 +07: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 +07:00
Thaddeus Crews 448f159c69
Merge pull request #105267 from clayjohn/rd-mobile-pipelines
Pre-allocate more resources when screen textures are detected in the Mobile renderer
2025-04-14 19:39:48 +07:00
clayjohn 699695e5ff Preallocate more resources when screen textures are detected in the Mobile renderer
This further reduces stutter when the screen texture suddenly becomes visible
2025-04-11 12:31:17 +07:00
Thaddeus Crews c7e9dc96a4
Rendering: Fix `Math` constant conversion 2025-04-11 12:33:57 +07:00