summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix various typos with codespellRémi Verschelde2023-08-071-3/+3
| | | | | | | | | Also includes typo fixes from #79993, #80068, #80276, and #80303. Co-authored-by: betalars <contact@betalars.de> Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com> Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com> Co-authored-by: Raul Santos <raulsntos@gmail.com>
* Fix or workaround recent extension API compatibility issuesRémi Verschelde2023-08-031-0/+1
| | | | | | | - Add compatibility methods for `RenderingDevice::shader_create_from_bytecode` and `CodeEdit::get_text_for_symbol_loopup`. - Silence errors which now have compatibility methods. - Acknowledge GraphEdit/GraphNode compat breakage, intended and WIP.
* Merge pull request #79606 from clayjohn/ShaderRD-compilation-groupsYuri Sizov2023-08-011-1/+3
|\ | | | | | | Shader rd compilation groups
| * Add Shader compile groups to RD Shader systemclayjohn2023-07-211-1/+3
| | | | | | | | | | | | | | | | This allows us to specify a subset of variants to compile at load time and conditionally other variants later. This works seamlessly with shader caching. Needed to ensure that users only pay the cost for variants they use
* | Add custom texture create functionBastiaan Olij2023-07-261-0/+9
|/
* Split raster barrier into vertex and fragment barrierBastiaan Olij2023-07-151-1/+3
|
* Expose RD::texture_native_handleBastiaan Olij2023-06-141-0/+2
|
* Merge pull request #76418 from reduz/method-bind-validated-callRémi Verschelde2023-05-081-1/+9
|\ | | | | | | Add ValidatedCall to MethodBind
| * Add ValidatedCall to MethodBindJuan Linietsky2023-04-301-1/+9
| | | | | | | | | | | | | | * This should optimize GDScript function calling _enormously_. * It also should simplify the GDScript VM considerably. NOTE: GDExtension calling performance has most likely been affected until going via ptrcall is fixed.
* | Fix unsupported sampler filter used for voxel GIPedro J. Estébanez2023-04-261-0/+1
|/
* Fix `compute_pieline` typo in `RenderingDevice.compute_pipeline_is_valid()`Hugo Locurcio2023-04-101-1/+1
|
* Added optional offset and size parameter to RenderDevice buffer_get_data methodEpEpDragon2023-01-061-1/+1
|
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Changed `STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT` type to enum flagsYuri Rubinsky2022-12-151-1/+1
|
* Refactor SPIR-V reflection into a generic RenderingDevice featurePedro J. Estébanez2022-12-121-0/+327
|
* Changed `RD::PipelineDynamicStateFlags` type to enum flagsYuri Rubinsky2022-12-111-8/+8
|
* Changed `RenderingDevice::TextureUsageBits` type to enum flagsYuri Rubinsky2022-11-261-10/+10
|
* Merge pull request #68942 from Chaosus/barrier_mask_flagsRémi Verschelde2022-11-221-16/+16
|\ | | | | | | Expose `BarrierMask` as flags enum in `RenderingDevice`
| * Expose `BarrierMask` as flags enum in `RenderingDevice`Yuri Rubinsky2022-11-221-16/+16
| |
* | Add `offsets` parameter to RenderingDevice::vertex_array_createPatrick Dawson2022-11-111-3/+9
|/
* Expose vertex_array_createPatrick Dawson2022-11-031-0/+1
|
* Prevent windows from having a size greater than device limitMinusKube2022-09-041-0/+2
|
* Change Array arguments to TypedArraykobewi2022-09-011-1/+1
|
* Add font LCD sub-pixel anti-aliasing support.bruvzg2022-08-231-0/+1
|
* Add a Framebuffer cacheJuan Linietsky2022-08-051-0/+1
| | | | | | | | | | Adds a FramebufferCache singletion that operates the same way as UniformSetCache. Allows creating framebuffers on the fly (and keep them cached if re-requested) such as: ```C++ RID fb = FramebufferCache::get_singleton()->get_cache(texture1,texture2); ```
* Adding Variable Rate Shading support to GodotBastiaan Olij2022-07-171-2/+3
| | | | | Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
* Merge pull request #53857 from briansemrau/rd-free-rid-bind-renameRémi Verschelde2022-01-201-1/+1
|\
| * Rename RD::free binding to free_ridBrian Semrau2021-10-151-1/+1
| |
* | Remove support for PVRTC texture encoding and decodingHugo Locurcio2022-01-141-8/+0
| | | | | | | | | | | | | | On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
* | Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde2022-01-041-0/+7
|\ \ | | | | | | Add `RenderingServer.get_video_adapter_type()` method
| * | Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio2021-12-101-0/+7
| | | | | | | | | | | | | | | | | | | | | This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
* | | Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde2022-01-041-3/+3
|\ \ \
| * | | Added SSIL post processing effectclayjohn2021-11-061-3/+3
| | |/ | |/|
* | | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| |/ |/| | | | | Happy new year to the wonderful Godot community!
* | Replace String comparisons with "", String() to is_empty()Nathan Franke2021-12-091-2/+2
| | | | | | | | | | | | Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
* | rendering_device: if one compiles with at least on stage without sources, it ↵ChristopheClaustre2021-11-091-3/+7
|/ | | | was always returning an unusable bytecode (because errored)
* Fix missing argument names in bindingsRémi Verschelde2021-10-091-1/+1
| | | | | | While at it, tweak some boolean setters to use `p_enabled` for the bool. Also renames `draw_minimap()` to `set_draw_minimap()`.
* Expose Vulkan internal values for access from extensionsBastiaan Olij2021-09-091-0/+16
|
* Fixes to mobile rendererreduz2021-08-171-7/+7
| | | | | | * Make sure shaders are named, to aid in debug in case of failure * SceneRenderRD was being wrongly initialized (virtual functions being called when derivative class not initialized). * Fixed some bugs resulting on the above being corrected.
* Merge pull request #51017 from vnen/extension-fixesRémi Verschelde2021-08-101-3/+3
|\
| * Fix a few default parameters in bindingsGeorge Marques2021-08-051-3/+3
| | | | | | | | They have the wrong type and cause issues with extensions.
* | Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij2021-08-061-1/+1
|/
* Implement Binary Shader Compilationreduz2021-07-261-27/+54
| | | | | | | | | | * Added an extra stage before compiling shader, which is generating a binary blob. * On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse. * On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL. This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved. I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware. There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
* Implement Specialization Constantsreduz2021-07-111-4/+41
| | | | | | * Added support to our local copy of SpirV Reflect (which does not support it). * Pass them on render or compute pipeline creation. * Not implemented in our shaders yet.
* Fix Render Inforeduz2021-07-031-0/+6
| | | | | | | | * Fixed and redone the process to obtain render information from a viewport * Some stats, such as material changes are too difficult to guess on Vulkan, were removed. * Separated visible and shadow stats, which causes confusion. * Texture, buffer and general video memory can be queried now. * Fixed the performance metrics too.
* Implement Framebuffer Subpass supportreduz2021-06-241-10/+62
| | | | | * Required for better optimizing mobile platforms * Will be used by the Vulkan mobile renderer.
* Rename `instance()`->`instantiate()` when it's a verbLightning_A2021-06-191-1/+1
|
* Implement shader cachingreduz2021-05-311-0/+12
| | | | | | | | | | | | * Shader compilation is now cached. Subsequent loads take less than a millisecond. * Improved game, editor and project manager startup time. * Editor uses .godot/shader_cache to store shaders. * Game uses user://shader_cache * Project manager uses $config_dir/shader_cache * Options to tweak shader caching in project settings. * Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled). * Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated). * Added shader compression with SMOLV: https://github.com/aras-p/smol-v
* Obtain supported Vulkan APIBastiaan Olij2021-03-261-1/+1
|
* doc: Sync classref with current sourceRémi Verschelde2021-02-191-1/+1
| | | | And fix various bogus bindings following previous PRs.