Commit graph

236 commits

Author SHA1 Message Date
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
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
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
Frank Becker
dc67bdaab4 Fix LCD batching flag for StyleBoxTexture 2026-02-22 19:59:09 -08:00
Lukas Tenbrink
0ea5ece984 Move binary math functions to Math namespace in math_funcs_binary header. 2026-02-17 12:24:35 +01:00
Skyth
482d9313a2 Fix accidental write-combined memory reads in canvas renderer. 2026-02-02 15:55:12 +03:00
Clay John
c5d21df245 Increase precision of ninepatch source rect to ensure pixel perfect alignment 2026-01-19 14:52:56 -08:00
PrIzRaKDev
1f7ed74a32 Fix MSDF batching flag for StyleBoxTexture 2025-12-12 13:10:08 +03:00
Skyth
ba556ebe03 Implement point size emulation in the forward shader for D3D12. 2025-12-02 17:36:31 +03:00
Allen Pestaluky
f37edd524f Fix clear color being incorrect in Environment background with HDR 2D. 2025-11-26 16:11:57 -05:00
Stuart Carnie
351e0dcfbf 2D: Fix nine-patch rendering
Closes #112966
2025-11-20 16:47:50 +11:00
Stuart Carnie
bd2d596ca7 2D: Fix clip children
We were not reusing the last index, same issue as #102161
2025-11-19 06:12:49 +11:00
clayjohn
79ffbfdf73 Reorganize canvas shader varyings in RD renderer 2025-11-14 22:29:28 -08: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
84e713c6c1
Merge pull request #112131 from stuartcarnie/fix_2d_ui
2D: Fix incorrect 2D rendering
2025-10-29 13:13:49 -05:00
Stuart Carnie
7db9be5685 2D: Fix incorrect 2D rendering
Regression from #111183

Closes #112121
2025-10-29 06:21:59 +11:00
Thaddeus Crews
ea381ac992
Merge pull request #111198 from lawnjelly/fti_fix_2d_nonmoving_4
FTI - Optimize non-interpolated 2D items
2025-10-28 10:15:38 -05: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 +11:00
lawnjelly
594fd1da49 FTI - Optimize non-interpolated 2D items 2025-10-03 08:38:46 +01:00
Aaron Franke
9fbf5808a0
Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
Lukas Tenbrink
2b36c79f7b Use Span<uint8_t> in RenderingDevice allocation APIs to avoid intermediary arrays on calls. 2025-06-18 12:31:48 +02: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
b7b3a1a78a
Merge pull request #106399 from DarioSamo/fix-canvas-validation-error
Rewrite textureProjLod usage to avoid a Vulkan validation error.
2025-05-15 14:53:26 -05:00
Dario
499fff51fb Rewrite textureProjLod usage to avoid a Vulkan validation error. 2025-05-15 11:35:34 -03:00
chocola-mint
101dc9868f Implement the count parameter in RenderingServer.canvas_item_add_triangle_array() 2025-05-14 22:52:30 +09:00
dsmtE
4e68f277c6 add REGION_RECT
fix formatting

fix shader compile (region_rect after draw_data)

fix formatting

fix formatting

Review fix (move region_rect in main + remove useless visual shader options)

fix formatting

fix alphabetic order (+ remove useless action for spatial shaders)

typo + remove TYPE_LIGHT option for  region_rect
2025-04-30 11:07:22 +02: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
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
kobewi
10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
clayjohn
4cf9d58dce Clean up more dynamic allocations in the RD renderers with a focus on 2D. 2025-03-10 13:16:12 -07:00
clayjohn
5efcd64b23 Reduce per-frame memory allocations from the heap in the Mobile renderer. 2025-03-07 22:01:24 -08: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
yesfish
93bc18f2b0 Fix 2D instance params crashing using outside of main() 2025-02-27 22:10:56 +00:00
kleonc
2bb6ad5cdf Fix debug CanvasItem redraw rects in RD renderer 2025-02-18 23:49:43 +01:00
kleonc
b691a997a3 Fix render info primitive count per TRIANGLE_STRIP 2025-02-15 23:50:07 +01:00
Stuart Carnie
90b2d4b844 2D: Fix free of invalid ID 2025-02-11 08:17:29 +11:00
Stuart Carnie
0a9cd5ede9 2D: Fix clip children and rendering artefacts
Fixes both GLES3 and RendererRD implementations

Closes #102147
2025-01-30 07:19:47 +11:00
Stuart Carnie
2510fefebd 2D: Fix rendering artefacts when using BackBufferCopy.
Fixes both GLES3 and RendererRD implementations
2025-01-25 10:22:07 +11:00
Stuart Carnie
663917449b 2D: Fix CanvasTexture rendering when updating channels 2025-01-24 07:01:37 +11: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
Rémi Verschelde
f7d6924afb
Merge pull request #100677 from clayjohn/light2d-cull
Properly transform light rect and occluder rect to perform Light2D culling in canvas space
2024-12-22 00:10:12 +01:00
clayjohn
30801af298 Properly transform light rect and occluder rect to perform light2d culling in canvas space 2024-12-20 16:58:02 -07: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
d3e5b62ea2
Merge pull request #99230 from paddy-exe/instance_uniforms_compatability_renderer
Implement 2D instance uniforms
2024-12-19 19:59:37 -06:00
clayjohn
793d065f8b Avoid allocating instance buffer for PointLight2D shadows when there are no instances.
Also avoid the render loop if there are no occluders. We still have to open the render pass to do a clear though.
2024-12-19 09:45:51 -08:00
kobewi
ceefc0d38a Implement 2D instance shader parameters
Co-authored-by: kobewi <kobewi4e@gmail.com>
Co-authored-by: yesfish <huwpascoe@users.noreply.github.com>
Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
2024-12-17 23:59:16 +01:00
clayjohn
7c61252dd7 Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes.
This dramatically reduces the CPU time spent on rendering shadows for PointLight2Ds
2024-12-17 07:41:09 -08:00
Thaddeus Crews
66dea152b5
Merge pull request #99257 from darksylinc/matias-TheForge-pr04-excluded-ubo+render_opt
Improvements from TheForge
2024-12-10 14:15:55 -06:00
Thaddeus Crews
5f5f86bff0
Merge pull request #100128 from clayjohn/rd-shader-spam
Avoid error spam when shaders fail to compile by freeing shader_data version when compilation fails
2024-12-09 14:33:16 -06:00