summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2022-04-04Style: Apply clang-tidy to current code, add `readability-redundant-member-init`Rémi Verschelde
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-04-02Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij
2022-04-01Add color pass flags to Forward Clustered rendererjfons
This commit removes a lot of enum values related to the color render pass in favor of a new flag-bases approach. This means instead of hard-coding all the possible option combinations into enums, we can write our logic by checking a bit-mask. The changes in rendering_device_vulkan.cpp add support for unused attachments. That means RenderingDeviceVulkan::framebuffer_create() can take null RIDs in the attachments vector, which will result in VK_ATTACHMENT_UNUSED entries in the render pass. This is used in this same PR to establish fixed locations for the color pass attachments (only color and separate specular so far, but TAA will add motion vectors as well). This way the attachment locations in the shader can stay the same regardless of which attachments are actually used. Right now all the combinations of flags are generated, but we will need to add a way to limit the amount of combinations in the future.
2022-03-31Merge pull request #59385 from BastiaanOlij/extract_shader_storageRémi Verschelde
2022-03-31Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git. Fix a couple incorrect uses of gendered pronouns.
2022-03-31Extract global variable, shader and material storageBastiaan Olij
2022-03-29vk_mem_alloc: Update to upstream + Replace use of deprecated itemsPedro J. Estébanez
2022-03-21Extract Decal and Decal atlas from Storage classBastiaan Olij
2022-03-18Rename several transform built-ins in shadersYuri Roubinsky
2022-03-17Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio
3 options are available: - Light and Sky (default) - Light Only (new) - Sky Only (equivalent to `use_in_sky_only = true`) Co-authored by: clayjohn <claynjohn@gmail.com>
2022-03-17Merge pull request #58993 from notSanil/device-limit-exceeded-fixRémi Verschelde
2022-03-16Fix device limit exceeding for uniform buffernotSanil
2022-03-16Split dummy renderer classes into separate filesBastiaan Olij
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-09Change some math macros to constexprkobewi
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
2022-03-09Remove unused GDNative codeRémi Verschelde
This has been superseded by GDExtension so this code is no longer useful nor usable. There's still some GDNative-related stuff in platform export code which needs to be adapted for GDExtension (e.g. to include GDExtension libraries in exports).
2022-03-08Merge pull request #49447 from Calinou/remove-shadow-color-propertyRémi Verschelde
Remove unused `shadow_color` property from Light3D
2022-03-06Add a UniformSet cachereduz
* 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.
2022-03-04Remove unused `shadow_color` property from Light3DHugo Locurcio
This shadow color property was no longer effective since the shaders were optimized to improve occupancy.
2022-03-04GLES3: Fix `-Wmaybe-uninitialized` warning for MipMaps::SizeRémi Verschelde
2022-03-04Merge pull request #58512 from Calinou/light3d-add-distance-fadeRémi Verschelde
2022-03-01Fixing retrospective code for specialisation constantsBastiaan Olij
2022-02-25Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio
This can be used to fade lights and their shadows in the distance, similar to Decal nodes. This can bring significant performance improvements, especially for lights with shadows enabled and when using higher-than-default shadow quality settings. While lights can be smoothly faded out over distance, shadows are currently "all or nothing" since per-light shadow color is no longer customizable in the Vulkan renderer. This may result in noticeable pop-in when leaving the shadow cutoff distance, but depending on the scene, it may not always be that noticeable.
2022-02-25Fix build for macOS / iOS with the statically linked MoltenVK after VMA update.bruvzg
2022-02-24vk_mem_alloc: Update to upstream + Adapt approach to small objects poolingPedro J. Estébanez
This updates VMA and instead of using the custom small pool approach from 4e6c9d3ae979f2eb0151cf581fe61d2f3194ea72, lazily creates pools for the relevant memory type indices, which doesn't require patching VMA. Also, patches already merged upstream or not needed any longer are removed.
2022-02-23Implementing OpenXR driverBastiaan Olij
2022-02-22Use Filament specular models and parametrizationclayjohn
2022-02-19vkQueueSubmit needs pWaitDstStageMask sized to waitSemaphoreCountBastiaan Olij
2022-02-18Merge pull request #58236 from bruvzg/win_min_fixRémi Verschelde
2022-02-18Merge pull request #58186 from BastiaanOlij/fix_shader_features_initRémi Verschelde
Enable features we require when creating a Vulkan Device
2022-02-17[Windows] Fix Vulkan driver crash on sub-window minimization.bruvzg
2022-02-17We were only getting our available shader features, now we also enabling themBastiaan Olij
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-15Add Particle Shader Userdatareduz
* Adds optional vec4 USERDATA1 .. USERDATA6 to particles, allowing to store custom data. * This data is allocated on demand, so shaders that do not use it do not cost more.
2022-02-14[OS/Crypto] Add get_entropy to OS.Fabio Alessandrelli
Implemented via `BCryptGenRandom` on Windows. Implemented via `getentropy` syscall when available. Implemented via `/dev/urandom` device as a fallback. The `/dev/urandom` fallback can be disabled via the `NO_URANDOM` build flag. Note: The HTML5 version relies on emscripten file system urandom device which itself uses the Crypto API when available or the plain old not crypto-safe `Math.random()` otherwise. Restore get_entropy.
2022-02-12Add a separate pool for small allocations in Vulkan RDPedro J. Estébanez
2022-02-10Merge pull request #57628 from Calinou/shadow-atlas-default-enable-16-bitsRémi Verschelde
2022-02-10Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git. Added `misc/scripts/codespell.sh` to make it easier to run it once in a while and update the skip and ignore lists.
2022-02-09Nitpicking, VK_VERSION_* have been deprecated, replaced by VK_API_VERSION_*.Bastiaan Olij
2022-02-04Enable 16-bit shadow atlas by default in the RenderingServer methodsHugo Locurcio
16-bit shadow atlases are already the default in the project settings, but low-level methods used 24-bit shadows by default. This makes low-level methods more consistent with the default project settings to avoid accidental performance issues when users change the shadow size at run-time.
2022-01-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
2022-01-29[Net] Simplify IP resolution code, fix caching.Fabio Alessandrelli
First, we should not insert into cache if the hostname resolution has failed (as it might be a temporary internet issue), second, the async resolver should also properly insert into cache. Took the chance to remove some duplicate code with critical section in it at the cost of little performance when calling the blocking resolve_hostname function.
2022-01-28Merge pull request #57116 from bruvzg/win_net_shareRémi Verschelde
2022-01-26Merge pull request #54574 from Ansraer/glow_mapRémi Verschelde
2022-01-24[Windows] Add support for handling network share paths.bruvzg
2022-01-22Merge pull request #54890 from briansemrau/threadsafe-drawpute-listsRémi Verschelde
Make draw/compute lists threadsafe
2022-01-20add support for glow mapsAnsraer
2022-01-19Revert "Add new scaling modes for splash screen"Rémi Verschelde
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.
2022-01-19Merge pull request #54489 from briansemrau/texture-delete-updateRémi Verschelde
2022-01-18Add new scaling modes for splash screenSamuel Pedrajas
Removes the `fullsize` option which is superseded by `stretch_mode`. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>