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