1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00
Commit Graph

375 Commits

Author SHA1 Message Date
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 -05: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 -05: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 -05: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 -05:00
Lukas Tenbrink
abe3b481ae Make conversions from LocalVector to Vector explicit. 2025-09-16 21:41:28 +02: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 -05:00
devloglogan
36128bfc29 Check render target validity before getting motion vector texture in mobile renderer 2025-06-13 18:52:02 -05: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 +02: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 +02:00
Apples
d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 -05:00
SpockBauru
fe1d499aa4 Mobile: Fix lightmap instances count 2025-06-09 17:58:17 -03:00
Dario
46277836a6 Optimize Mobile renderer by using FP16 explicitly. 2025-06-09 14:39:35 -03:00
Apples
7574a5dbb3 Add depth function for spatial materials 2025-06-06 09:21:19 -05:00
devloglogan
3b70fbdc3c Implement motion vectors in mobile renderer 2025-05-30 13:09:54 -05: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
BlueCube3310
546b40eee2 Mobile: Move _setup_lightmaps before _fill_render_list 2025-05-23 14:28:45 +02:00
Raymond DiDonato
6b99608950 Add SMAA 1x 2025-05-21 15:02:09 -04: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 -03: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 -05:00
BlueCube3310
67a2c69c78 Mobile: Disable subpass post-processing when using FXAA 2025-05-20 13:21:59 +02:00
Dario
ff3ababb09 Reduce amount of permutations in mobile shader. 2025-05-16 12:40:21 -03:00
Capry
9828c365c3 Add support for bent normals for indirect lighting and specular occlusion 2025-05-12 12:52:04 +02:00
landervr
56730d0cb2 Add specular occlusion from ambient light
Co-authored-by: guerro323 <kaltobattle@gmail.com>
2025-05-08 23:52:01 +02: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
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 -05: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 -05:00
Thaddeus Crews
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Thaddeus Crews
06c71fbf40 Merge pull request #105175 from clayjohn/RD-pipeline-sss-roughness
Detect more pipeline settings at load time to avoid pipeline stutters
2025-04-10 11:10:22 -05:00
clayjohn
bf47c42b21 Detect possible usage of SSS and screen textures at load time to allocate needed resources at load time.
This allows us to avoid a class of pipeline compilation stutters and
stutters from allocating screen textures.
2025-04-09 13:31:03 -07:00
David Snopek
79f5a4d9fe OpenXR: Use the XR_FB_foveation_vulkan extension to get the density map for VRS 2025-03-31 07:21:58 -05:00
Rémi Verschelde
408d07109b Merge pull request #99551 from DarioSamo/fragment-density-map
Implement Fragment density map support.
2025-03-28 14:31:19 +01:00
Dario
76d709be74 Implement support for fragment density maps.
Co-Authored-By: Bastiaan Olij <mux213@gmail.com>
2025-03-24 11:50:04 -05:00
Thaddeus Crews
0fb0804546 Merge pull request #103641 from darksylinc/matias-mobile-shadows-update
Fix inefficient upload in Mobile Shadows
2025-03-11 09:35:05 -05:00
Thaddeus Crews
dfdb5359ea Merge pull request #103547 from clayjohn/forward-plus_instance_data_optimize
Optimize `_fill_instance_data` function in Forward+ renderer.
2025-03-09 09:05:19 -05:00
clayjohn
5efcd64b23 Reduce per-frame memory allocations from the heap in the Mobile renderer. 2025-03-07 22:01:24 -08:00
clayjohn
574f5126a2 Optimize _fill_instance_data function in Forward+ and Mobile renderers.
This batches together a couple of micro-optimizations that were discovered in profiling and analyzing disassembly.

Importantly, this reduces the amount of instructions in a heavy loop. This has the biggest impact when there are lots of objects and lights in the scene as the function is called once per objects + once per light that touches the object
2025-03-07 15:44:53 -08:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
Thaddeus Crews
b6ece17de1 Merge pull request #103529 from clayjohn/RD-trivial-instance-data
Validate triviality of InstanceData struct in Mobile and Forward+ renderers
2025-03-06 16:36:14 -06:00
Matias N. Goldberg
e605ad93c7 Fix inefficient upload in Mobile Shadows
Clustered performs the following shadow rendering steps

1. Process objects [0; 10) for cascade 0.
2. Process objects [10; 30) for cascade 1.
3. Process objects [30; 100) for cascade 2.
4. Upload objects [0; 100) to GPU.
5. Draw all cascades.

Mobile was supposed to be doing the same, but instead was doing:

1. Process objects [0; 10) for cascade 0.
2. Upload objects [0; 10) to GPU.
3. Process objects [10; 30) for cascade 1.
4. Upload objects [0; 30) to GPU.
5. Process objects [30; 100) for cascade 2.
6. Upload objects [0; 100) to GPU.
7. Draw all cascades.

That is, always reuploaded everything from scratch.
Therefore it pointlessly (and with geometric growth) wasted BW.
2025-03-05 15:21:25 -03:00
Thaddeus Crews
729c4e9e88 Merge pull request #102905 from kleonc/render_info_fix_primitive_count_per_triangle_strip
Fix render info primitive count per `TRIANGLE_STRIP`
2025-03-05 12:07:47 -06:00
Matias N. Goldberg
62c1a4782d Fix inefficient upload in Mobile Shadows
Clustered performs the following shadow rendering steps

1. Process objects [0; 10) for cascade 0.
2. Process objects [10; 30) for cascade 1.
3. Process objects [30; 100) for cascade 2.
4. Upload objects [0; 100) to GPU.
5. Draw all cascades.

Mobile was supposed to be doing the same, but instead was doing:

1. Process objects [0; 10) for cascade 0.
2. Upload objects [0; 10) to GPU.
3. Process objects [10; 30) for cascade 1.
4. Upload objects [0; 30) to GPU.
5. Process objects [30; 100) for cascade 2.
6. Upload objects [0; 100) to GPU.
7. Draw all cascades.

That is, always reuploaded everything from scratch.
Therefore it pointlessly (and with geometric growth) wasted BW.
2025-03-03 19:57:27 -03:00
clayjohn
1bdb3bc88a Validate triviality of the InstanceData and RenderElementInfo structs in Mobile and Forward+ renderers.
This is needed to avoid overhead that results from calling the constructor during calls to LocalVector.resize()
2025-03-03 14:38:37 -08:00
kleonc
b691a997a3 Fix render info primitive count per TRIANGLE_STRIP 2025-02-15 23:50:07 +01:00