Commit Graph

141 Commits

Author SHA1 Message Date
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 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
Rémi Verschelde cd650f2336 GLES3: Move some static utils to new RasterizerUtilGLES3
This helps remove dependencies on RasterizerGLES3 in many files, which is
useful as RasterizerGLES3 basically includes everything, so it brings a lot
of transient includes.
2026-02-20 11:29:39 +01:00
Rémi Verschelde 715748bab4 GLES3: Tidy up includes for consistency 2026-02-20 11:20:44 +01:00
Lukas Tenbrink 0ea5ece984 Move binary math functions to Math namespace in math_funcs_binary header. 2026-02-17 12:24:35 +01:00
Thaddeus Crews fbbb8a921b Merge pull request #115309 from Ivorforce/localvector-explicit-copy
Change copy constructor of `LocalVector` from implicit to explicit
2026-01-30 09:32:07 -06: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
Lukas Tenbrink 63272b23ef Make LocalVector copy constructor explicit. 2026-01-23 20:52:03 +01:00
David Snopek ca0eb5da24 OpenXR: Fix resizing viewports used by OpenXRCompositionLayer 2025-10-30 17:40:52 -05:00
Kaleb Reid e1f19d14dd Always use RenderSceneBuffers to manage backbuffer in Compatibility 3D 2025-10-04 01:06:09 -07:00
Thaddeus Crews d9ba9ba3da Merge pull request #97151 from devloglogan/motion-vectors
Implement motion vectors in compatibility renderer
2025-10-03 12:01:10 -05:00
BlueCube3310 d07a72e067 Compatibility: Explicitly use BC1's RGB variant 2025-09-30 20:17:22 +02: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
devloglogan 8fef9a689e Implement motion vectors in compatibility renderer 2025-09-30 09:42:17 -05:00
Thaddeus Crews cd3a6c88fd Merge pull request #106200 from BlueCube3310/image-16-u16
Image: Implement 16-bit unorm and uint formats
2025-09-23 12:08:46 -05:00
Thaddeus Crews 747722d639 Merge pull request #109299 from BlueCube3310/compat-cube-fix
Compatibility: Fix cubemap faces order when setting texture data
2025-09-19 09:17:07 -05:00
Lukas Tenbrink abe3b481ae Make conversions from LocalVector to Vector explicit. 2025-09-16 21:41:28 +02:00
Thaddeus Crews 853884ba05 Merge pull request #109143 from sievaxx/more_sampler_default_texs
Add and enable default textures for other samplers
2025-09-16 11:44:51 -05:00
Bastiaan Olij a38256c19e OpenXR: Fix ViewportTextures not displaying correct texture (Compatibility) 2025-08-27 13:02:39 +10:00
BlueCube3310 356b1ab2a6 Compatibility: Fix cubemap faces order when setting texture data 2025-08-04 13:27:28 +02:00
Riley Willows fbe2710843 Add and enable default textures for other samplers 2025-07-31 00:08:43 +01:00
David Snopek ae61044c85 Don't use GL_DEPTH_STENCIL_ATTACHMENT on depth buffer from WebXR 2025-07-24 14:11:36 -05:00
BlueCube3310 16b9ee6f50 Image: Implement 16-bit unorm and uint formats 2025-06-28 00:30:52 +02:00
Apples d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 -05: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
Yyf2333 1a70a06a43 Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
BlueCube3310 a861394e13 Renderer: Warn when images need to be converted due to their formats being unsupported by hardware 2025-04-06 19:27:02 +02:00
Yyf2333 22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Adam Scott 60913170c6 Add check for float texture linear filtering support
Co-authored-by: Clay John <claynjohn@gmail.com>
2025-01-27 22:12:08 -05:00
BlueCube3310 2221f6ed13 WebGL2: Fix 2D array textures with RGTC compression not rendering 2025-01-22 20:41:20 +01:00
Rémi Verschelde 89f233aca3 Merge pull request #101217 from BlueCube3310/gl-uncomp-formats
Compatibility: Improve gl texture format detection
2025-01-12 18:07:12 +01:00
Rémi Verschelde d83598e9b9 Merge pull request #100778 from BlueCube3310/compat-get-texture-silence
Compatibility: Avoid converting to compressed formats when retrieving image data
2025-01-11 22:29:44 +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
BlueCube3310 6a2cc39926 Compatibility: Improve gl texture format detection 2025-01-07 12:20:04 +01:00
BlueCube3310 636a132e45 Compatibility: Avoid converting to compressed formats when retrieving image data 2024-12-23 23:16:46 +01:00
Thaddeus Crews 3c304ab7cc Merge pull request #96076 from AThousandShips/improve_null_check_core_drivers
[Core,Drivers] Improve use of `Ref.is_null/valid`
2024-12-23 11:14:58 -06:00
Thaddeus Crews 9ecdeb3723 Merge pull request #98747 from tetrapod00/standardize-renderer-strings
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
Thaddeus Crews bfc66f0608 Merge pull request #100282 from devloglogan/motion-vectors-openxr
Add renderer motion vectors API for use with OpenXR
2024-12-12 16:13:36 -06:00
devloglogan 3deb5884d7 Renderer agnostic motion vector rendering/OpenXR changes 2024-12-10 15:59:17 -06:00
Chris fb75078308 Changed some image error messages to print the file path 2024-11-15 20:42:03 +01:00
tetrapod00 899f5151c3 Standardize terms for renderers in error strings
Use "Forward+", "Mobile", "Compatibility", and "renderer" or "rendering method".
2024-11-10 13:30:44 -08:00
A Thousand Ships ec650a2f09 [Core,Drivers] Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-11-01 16:50:11 +01:00
Adam Scott 0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Hugo Locurcio 35a20fa96a Use a shared copy of placeholder textures, tweak placeholder appearance
This reduces memory usage a bit in case multiple placeholders were
requested, e.g. when using multiple NoiseTextures with no noise property
defined.

The placeholder texture's appearance was also changed from a plain magenta
color to a checkerboard alternating between magenta and black pixels.
This makes it easier to spot when the placeholder texture ends up
being used in a complex scene (usually by accident).
The texture's dimensions remain identical to keep the physical size
identical in 2D.
2024-10-18 14:51:51 +02:00
Dario e2c6daf7ef Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590.
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
David Snopek 1a6f8512bc Add external texture support (GLES3)
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
Co-authored-by: Mauricio Narvaez <nvz@meta.com>
2024-09-20 10:48:32 -05:00
David Snopek 7d56b09f23 Expose a function to create textures from a native handle in the compatibility renderer 2024-09-19 09:05:32 -05:00
BlueCube3310 0182294b37 Compatibility: Fix alignment of compressed textures when retrieving 2024-09-11 18:15:26 +02:00
BlueCube3310 e74bc3079a Fix incorrect parameters for layered textures in Video RAM texture memory profiler 2024-09-01 11:49:30 +02:00