summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_compositor_rd.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@87318a2fb7fffeb72adca934e31915be077c3d1fSpartan3222024-11-061-2/+2
|\
| * Fix splash screen upside down on AndroidMatias N. Goldberg2024-10-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes an issue introduced in #96439 (see https://github.com/godotengine/godot/pull/96439#issuecomment-2447288702) Godot was relying on Java's activity.getWindowManager().getDefaultDisplay().getRotation(); to apply pre-rotation but this is wrong. First, getRotation() may temporarily return a different value from the correct one; which is what was causing the splash screen to be upside down. It would return -90 instead of 90 for the first rendered frame. But unfortunately, the splash screen is just one frame rendered for a very long time, so the error lingered for a long time for everyone to see. Second, to determine what rotation to use, we should be looking at what Vulkan told us, which is the value we pass to VkSurfaceTransformFlagBitsKHR::preTransform. This commit removes the now-unnecessary screen_get_internal_current_rotation() function (which was introduced by #96439) and now saves the preTransform value in the swapchain.
* | Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-0/+14
|\|
| * Add Swappy & Pre-Transformed SwapchainMatias N. Goldberg2024-10-281-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adds Swappy for Android for stable frame pacing - Implements pre-transformed Swapchain so that Godot's compositor is in charge of rotating the screen instead of Android's compositor (performance optimization for phones that don't have HW rotator) ============================ The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up. Changes from original PR: - Removed "display/window/frame_pacing/android/target_frame_rate" option to use Engine::get_max_fps instead. - Target framerate can be changed at runtime using Engine::set_max_fps. - Swappy is enabled by default. - Added documentation. - enable_auto_swap setting is replaced with swappy_mode.
* | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| |
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* fix missing cleanup and null checks for various singletonsrune-scape2024-06-181-0/+2
|
* Handle error when setting boot image if swap chain is not available. Skip ↵Dario2024-02-131-1/+5
| | | | resizing swap chain during screen creation as it's not necessary and can fail when it starts minimized.
* Finish splitting functionality of the Vulkan and D3D12 backends into ↵Dario2024-02-121-9/+9
| | | | RenderingDeviceDriver.
* Use render method from OS in compositor RD; Update related UIjsjtxietian2023-12-141-1/+1
|
* Fix bad parameter of rendering_method crashes Godotjsjtxietian2023-11-101-3/+4
| | | | Print error and default to forward plus
* Fix drawing of viewports without swapping buffersPedro J. Estébanez2023-10-031-2/+3
|
* Use 16-bit index buffers instead of 32 when unnecessaryMatias N. Goldberg2023-09-031-9/+9
|
* Add option to enable HDR rendering in 2Dclayjohn2023-08-071-1/+3
| | | | | | | This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear. This is necessary for proper HDR screen support in the future.
* Move roughness limiter and sort into their own classesBastiaan Olij2023-03-091-4/+0
|
* 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".
* Enable using filtering on boot image in RD rendererclayjohn2022-12-161-1/+8
|
* SCons: Re-enable treating `#warning` as error with `werror`Rémi Verschelde2022-10-101-4/+2
| | | | | | | | Replace all TODO uses of `#warning` by proper TODO comments, and will open matching bug reports to keep track of them. We don't have a great track record fixing TODOs, but I'd wager we're even worse for fixing these "TODO #warning" so we should prohibit this usage.
* Adding getters to RenderTarget and implementing override functionality for XRBastiaan Olij2022-10-051-5/+1
|
* Add various null checks in RenderingServerHaoyu Qiu2022-09-301-0/+4
|
* Split rendering driver project setting into renderer_name and ↵clayjohn2022-09-191-3/+8
| | | | rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
* Rename String `plus_file` to `path_join`Aaron Franke2022-08-291-1/+1
|
* Add a Framebuffer cacheJuan Linietsky2022-08-051-0/+2
| | | | | | | | | | 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); ```
* Split dependency logicBastiaan Olij2022-06-281-6/+9
| | | | | | Split FOG Split visibility notifier Final cleanup of storage classes
* Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde2022-05-021-1/+0
| | | | | | | | | | | Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
* Moved particles into ParticlesStorageBastiaan Olij2022-04-171-0/+2
|
* Move light, reflection probe and lightmap into LightStorageBastiaan Olij2022-04-171-0/+2
|
* Merge canvas and decal into TextureStorage and add render targetBastiaan Olij2022-04-171-5/+1
|
* Make FileAccess and DirAccess classes reference counted.bruvzg2022-04-111-2/+2
|
* Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij2022-04-021-0/+2
|
* Extract global variable, shader and material storageBastiaan Olij2022-03-311-0/+2
|
* Extract Decal and Decal atlas from Storage classBastiaan Olij2022-03-211-0/+2
|
* Merge pull request #58993 from notSanil/device-limit-exceeded-fixRémi Verschelde2022-03-171-1/+1
|\
| * Fix device limit exceeding for uniform buffernotSanil2022-03-161-1/+1
| |
* | Split dummy renderer classes into separate filesBastiaan Olij2022-03-161-5/+9
|/ | | | Split canvas_texture_storage and texture_storage from render_storage class
* Add a UniformSet cachereduz2022-03-061-4/+7
| | | | | | | * Changed syntax usage for RD::Uniform to create faster with a single RID * Converted render pass setup to use this in clustered renderer to test. This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
* [Windows] Fix Vulkan driver crash on sub-window minimization.bruvzg2022-02-171-0/+3
|
* Revert "Add new scaling modes for splash screen"Rémi Verschelde2022-01-191-47/+13
| | | | | | | This reverts commit fcc9f5ce396ff921ed8253f657a8c9c38e7a878d. The feature is good but the implementation still needs more work. A new PR will be made with a rework of this commit.
* Add new scaling modes for splash screenSamuel Pedrajas2022-01-181-13/+47
| | | | | | Removes the `fullsize` option which is superseded by `stretch_mode`. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* 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
* Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm2021-11-231-3/+3
|
* Construct values only when necessary.Anilforextra2021-09-251-1/+1
|
* Add source rectangle to blitBastiaan Olij2021-08-291-8/+18
|
* Fixes to mobile rendererreduz2021-08-171-0/+2
| | | | | | * 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.
* Fix 'Attempted to remove invalid ID' errorsRafał Mikrut2021-07-311-1/+1
|
* Use fragment shader instead of compute shader for effects for mobile rendererBastiaan Olij2021-07-251-0/+3
|
* Removes lines about window size from the console outputYuri Roubinsky2021-07-141-3/+0
|
* Fix Boot Splashreduz2021-07-031-3/+78
| | | | | * Implements the code to show the boot splash on load using RenderingDevice * Does not work on X11 when maximized, some platform specific hack will be needed there.
* Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde2021-06-111-1/+1
| | | | | File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.