summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2021-07-26Merge pull request #50847 from reduz/implement-binary-shader-compilationRémi Verschelde
Implement Binary Shader Compilation
2021-07-26Implement Binary Shader Compilationreduz
* 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.
2021-07-25Fix various typosluz paz
Follow-up typos found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25Merge pull request #50809 from akien-mga/iterators-const-referencesRémi Verschelde
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-25Fix various typos with codespellluz paz
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-24Merge pull request #50786 from reduz/implement-resource-uidsRémi Verschelde
Implement Resource UIDs
2021-07-24Implement Resource UIDsreduz
* Most resource types now have unique identifiers. * Applies to text, binary and imported resources. * File formats reference both by text and UID (when available). UID always has priority. * Resource UIDs are 64 bits for better compatibility with the engine. * Can be represented and used textually, example `uuid://dapwmgsmnl28u`. * A special binary cache file is used and exported, containing the mappings. Example of how it looks: ```GDScript [gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"] [ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"] ``` GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files. This will be reserved for future PRs.
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-22Move `alert` function from `DisplayServer` to `OS`.bruvzg
2021-07-22Fix MoltenVK static linking on macOS (add missing include path, Vulkan SDK ↵bruvzg
path option, use xcframework instead of static framework).
2021-07-15Fixes to forward mobilereduz
* use valid format for framebuffer: VK_FORMAT_A2B10G10R10_UNORM_PACK32 * Unfortunately cant be used for compute. * Mobile will need to do refprobe, sky, mipmapblurring using raster.
2021-07-12Use specialization constants in clustered rendererreduz
* Keep track of when projector, softshadow or directional sofshadow were enabled. * Enable them via specializaton constant where it makes sense. * Re-implements soft shadows. * Re-implements light projectors.
2021-07-11Implement Specialization Constantsreduz
* 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.
2021-07-10Merge pull request #48622 from Geometror/reimplement-disableable-vsyncHugo Locurcio
2021-07-07Fix material invalidation on reimport.reduz
* IF a texture was reimported (calling replace as an example), it would invalidate all materials using it, causing plenty of errors. * Added the possibility to get a notification when a uniform set is erased. * With this notification, materials can be queued for update properly.
2021-07-07Fix threaded update for texturesreduz
* Previews and other stuff now works again. * Not the best solution, will have to be improved in the future usinc async queues where supported.
2021-07-06Restructure and reimplement vsync optionsHendrik Brucker
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
2021-07-05Merge pull request #50048 from Calinou/remove-travis-codeRémi Verschelde
Remove unused code related to Travis CI
2021-07-03Fix Render Inforeduz
* 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.
2021-07-01Remove unused code related to Travis CIHugo Locurcio
2021-06-30Enum constant in boolean contextK. S. Ernest (iFire) Lee
error: enum constant in boolean context [-Werror=int-in-bool-context]
2021-06-28Fix Context Validation Layer Errorsreduz
* Multisampling was wrongly selected, possibly fixes #49937 * Image semaphore acquisition is now per window, possibly fixes #41614 Please make sure to test the above two issues again, since I can't reproduce either anyway.
2021-06-24Implement Framebuffer Subpass supportreduz
* Required for better optimizing mobile platforms * Will be used by the Vulkan mobile renderer.
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-13Add stereoscopic rendering through multiviewBastiaan Olij
2021-06-12Merge pull request #49123 from aaronfranke/it-is-timeRémi Verschelde
Add a Time singleton
2021-06-11Merge pull request #47835 from mortarroad/master-lossless-webpRémi Verschelde
Implement lossless WebP encoding
2021-06-11Implement lossless WebP encodingMorris Tabor
2021-06-11Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-ioRémi Verschelde
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11Merge pull request #49279 from Calinou/rename-string-is-abs-path-methodRémi Verschelde
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11Add Time singletonAaron Franke
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-11Merge pull request #49506 from akien-mga/vulkan_prefer_discrete_gpuRémi Verschelde
Prefer discrete GPU over integrated one
2021-06-11Prefer discrete GPU over integrated oneBlazej Floch
This unblocks launching on Linux laptops that default to the integrated GPU which can not handle Vulkan in many instances. Ideally a manual device selection, or an option for the optimal selection strategy should be provided via CLI or config, but for the time being this will unblock the Linux devs. Partially addresses #42348 and #43714
2021-06-07FileAccess: Don't err in `store_buffer` with buffer of size 0Rémi Verschelde
The error check was added for `FileAccessUnix` but it's not an error when both `p_src` and `p_length` are zero. Added correct error checks to all implementations to prevent the actual erroneous case: `p_src` is nullptr but `p_length > 0` (risk of null pointer indexing). Fixes #33564.
2021-06-07Style: Cleanup uses of double spaces between wordsRémi Verschelde
Or after punctuation. Tried to leave third-party stuff alone, unless it has been heavily modified for Godot.
2021-06-03Rename `String.is_abs_path()` to `String.is_absolute_path()`Hugo Locurcio
This is more consistent with `NodePath.is_absolute()`.
2021-06-03Merge pull request #48350 from RandomShaper/fix_alsamidi_crashRémi Verschelde
Fix crash when using ALSA MIDI with PulseAudio
2021-06-03Fix crash when using ALSA MIDI with PulseAudioPedro J. Estébanez
2021-06-01Merge pull request #49026 from sarchar/multiple-dns-resolvesRémi Verschelde
2021-06-01Move remaining dummy drivers to servers.Fabio Alessandrelli
2021-06-01LinuxBSD now compiles without vulkan/x11.Fabio Alessandrelli
2021-06-01Remove server platformFabio Alessandrelli
2021-06-01Add DisplayServerDummy for headless display.Fabio Alessandrelli
Uses RasterizerDummy internally. This is always compiled in, maybe we should add a switch to enable/disable it via scons?
2021-06-01Sync RasterizerDummy changes.Fabio Alessandrelli
2021-06-01Support multiple address resolution in DNS requestsChuck
Add two new functions to the IP class that returns all addresses/aliases associated with a given address. This is a cherry-pick merge from 010a3433df43a94fee95474360ffa6662c7441b9 which was merged in 2.1, and has been updated to build with the latest code. This merge adds two new methods IP.resolve_hostname_addresses and IP.get_resolve_item_addresses that returns a List of all addresses returned from the DNS request.
2021-05-31Fix `Directory::get_space_left()` result on macOS and Linux.bruvzg
2021-05-25Rename File::get_len() get_length()Marcel Admiraal
2021-05-24Add GDNative Framework loading and export support.bruvzg