Rémi Verschelde
e3b60a1530
Move RenderingMethod::RenderInfo to RenderingServerTypes
...
Also move RS::scaling_3d_mode_type to RenderingServerEnums.
2026-02-25 20:17:28 +01:00
Rémi Verschelde
462f31801d
Decouple RasterizerDummy from RenderingServer and DisplayServer
...
Also move some Extension classes to a separate file to avoid including gdvirtual
unnecessarily.
2026-02-25 20:17:28 +01:00
Rémi Verschelde
671864fb05
Decouple TextureStorage from RenderingServer
...
By moving RS::TextureDetect(Roughness)Callback and RS::TextureInfo
to RenderingServerTypes.
2026-02-25 20:17:28 +01:00
Rémi Verschelde
cb9b4cff90
Decouple MeshStorage from RenderingServer
...
By moving RS::SurfaceData and RS::MeshInfo to RenderingServerTypes.
This notably allows removing RS dependency from `mesh.h`.
2026-02-25 20:17:28 +01:00
Rémi Verschelde
a85df7cc73
Minimize includes in renderer_compositor.h
2026-02-25 20:17:27 +01:00
Rémi Verschelde
0ce92073ae
Move RS::ShaderNativeSourceCode to RenderingServerTypes to reduce dependencies on RS
...
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 1s, and paves the way for more decoupling in
rendering code.
2026-02-25 20:17:27 +01:00
Rémi Verschelde
f0a448540e
Misc dependency improvements for files depending on rendering_server.h
...
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 3s.
2026-02-25 20:17:27 +01:00
Rémi Verschelde
25bfae8ff9
Remove RenderingServer::map_scaling_option_to_stretch_mode and cleanup boot splash code
...
Removes RS as a dependency in `project_settings.cpp` (which was a bug,
`core` shouldn't include `servers`). This doesn't have a big impact on
incremental rebuild time by itself.
Also move helper `get_splash_stretched_screen_rect` to RenderingServerTypes.
2026-02-25 20:17:27 +01:00
Rémi Verschelde
a3cb56dd38
Decouple RenderingServer from XR/OpenXR headers
...
Move BlitToScreen to RenderingServerTypes.
2026-02-25 20:17:23 +01:00
Rémi Verschelde
f5a290ac46
Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
...
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.
With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
Thaddeus Crews
2d5b30c476
Merge pull request #115963 from blueskythlikesclouds/reduce-includes-to-rd
...
Reduce includes to rendering device.
2026-02-12 08:19:16 -06:00
Josh Jones
b8389cc76b
Support output to HDR monitors
...
Co-authored-by: Alvin Wong <alvinhochun@gmail.com>
Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
2026-02-11 22:13:26 -07:00
Skyth
8fbf2f1e14
Reduce includes to rendering device.
...
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2026-02-10 16:58:50 +03:00
jon1solution
979d3e58d0
Keeping the top N lights per mesh in the culling phase.
...
Previously, each mesh was paired up with the first N of each Omni- and Spot-lights.
Now each light is scored based on its distance to the mesh, energy, and range.
The new code uses a heap to track the best N lights (of each type) for predictability.
2026-02-02 08:59:30 -08:00
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
nikitalita
84742563f8
Fix setting mesh blend shape properties in dummy mesh storage
2025-12-26 12:44:22 -08: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
Thaddeus Crews
c6fe923e33
Merge pull request #108516 from KoBeWi/file_graveyard
...
Remove unnecessary cpp files after cleanup
2025-11-14 14:23:06 -06:00
Justin Sasso
b6b3e1ef9e
Add Stretch Modes for Splash Screen
...
Co-authored-by: Samuel Pedrajas <samuelpedrajaspz@gmail.com>
2025-10-21 18:20:44 -04:00
Skyth
c128886c63
Overhaul screen space reflections.
2025-10-21 19:23:38 +03: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
Aaron Franke
3d1c9fd5de
Move server files into their subfolders
2025-09-30 19:39:39 -07:00
kobewi
d591bcc09c
Remove unnecessary cpp files
2025-07-15 15:19:23 +02: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
LuoZhihao
63c124fa45
Expose RS.mesh_surface_update_index_region
...
And `mesh_surface_get_format_index_stride`
2025-06-05 19:35:59 +08: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
chocola-mint
101dc9868f
Implement the count parameter in RenderingServer.canvas_item_add_triangle_array()
2025-05-14 22:52:30 +09:00
clayjohn
305216f558
Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
...
Properly pair and unpair instances based on cull mask to avoid any unnecessary processing and to ensure that changing the cull_mask and layer_mask actually updates culling behavior
2025-05-08 21:39:12 -07:00
Thaddeus Crews
8954125990
Merge pull request #105437 from Ansraer/teleport_spatial_nodes
...
Allow moving meshes without motion vectors
2025-04-25 11:36:08 -05:00
Ansraer
a4a5f4ed01
allow moving meshes without motion vectors
2025-04-25 14:25:06 +02:00
Ryan
4497e2a0d3
Add Meshes to the Video RAM Profiler
...
Apply suggestions from code review
Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-04-23 18:26:56 -04:00
Stuart Carnie
5e1fe8040a
rendering: compositor has is_opengl API; minor optimisations
2025-03-13 15:41:44 +11:00
A Thousand Ships
466590d0ec
Use get_slicec instead of get_slice for single character splitters
2025-03-08 20:36:37 +01:00
Thaddeus Crews
324512e11c
Style: Replace header guards with #pragma once
2025-03-07 17:33:47 -06:00
clayjohn
35100396e4
Validate varying count when compiling shaders
...
This avoids crashing on devices when a number of varyings greater than the device limit is used.
For now this accurately prints an error when compiling the shader, but the error text only pops up in the editor if the number of user varyings is above the limit.
2025-02-13 15:07:15 -08:00
Thaddeus Crews
ea2770eb4f
Merge pull request #101947 from Rudolph-B/Issue-101750
...
Add Heightfield mask to GPUParticlesCollisionHeightField3D
2025-02-04 09:04:11 -06:00
Rudolph Bester
b162c59097
Fix GPUParticlesCollisionHeightField3D adding collisions excluded by its layer_mask
...
Co-authored-by: Yahia Zakaria <yahiazakaria13@gmail.com>
2025-02-04 08:02:44 +02:00
clayjohn
258d4d5c3d
Track mesh dependencies in Dummy RenderingServer to properly resolve freeing MeshInstances
2025-01-31 12:57:10 -08:00
David House
e6daec9cf8
Added indirect drawing functionality to MultiMesh
...
Update doc/classes/RenderingServer.xml
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2025-01-13 14:51:51 -06:00
Rémi Verschelde
133db1fd60
Merge pull request #92089 from QbieShay/qbe/particle_seek
...
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
QbieShay
e9eb0b6082
Implemented tools around particles seed randomization.
...
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-11 16:31:24 +01:00
Rémi Verschelde
3014eec40d
Merge pull request #99407 from devloglogan/rec-resolution
...
Allow using custom `Rect2i` for rendering with OpenXR
2025-01-10 23:05:46 +01:00
devloglogan
e7f6b7ea0b
Allow using custom Rect2i for rendering with OpenXR
2025-01-09 09:46:15 -06:00
Aarni Koskela
f134769506
Fix various typos
...
* Add TODO notes for typos that should be fixed for 5.0
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
clayjohn
49846cf79a
Save instance and global uniform data in RenderingServerDummy so they can be exported with headless exports
2025-01-06 19:25:11 -08:00
Yufeng Ying
e88e30c273
Remove unused headers in servers.
...
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-12-20 18:51:01 +08:00
Thaddeus Crews
b715fabd70
Merge pull request #76371 from ze2j/array_mesh_surface_remove
...
Add `ArrayMesh::surface_remove`
2024-12-19 19:59:56 -06:00
Thaddeus Crews
2fcd8223e8
Merge pull request #99538 from Geometror/lightmap-gi-transparent-surface
...
Add transparency support for LightmapGI
2024-12-19 19:59:52 -06:00
Hendrik Brucker
a3525bc015
Add transparency support for LightmapGI
...
Co-authored-by: Guerro323 <kaltobattle@gmail.com>
2024-12-18 19:36:16 +01:00
Rémi Verschelde
190ae9f9dc
Merge pull request #100302 from clayjohn/light2d-optimize
...
Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes
2024-12-17 22:59:54 +01:00