summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* Rename String::is_rel_path to String::is_relative_pathWilson E. Alvarez2021-08-293-19/+19
|
* Optionally scale 3D render contentBastiaan Olij2021-08-262-0/+9
|
* Merge pull request #51947 from AnilBK/redundant-assignmentsMichael Alexsander2021-08-231-2/+2
|\ | | | | [cppcheck] Remove some redundant assignments.
| * Remove redundant assignments.Anilforextra2021-08-211-2/+2
| | | | | | | | Use used_in_transfer instead of used_in_compute twice.
* | Merge pull request #38210 from benjarmstrong/wasapi-audio-output-latencyK. S. Ernest (iFire) Lee2021-08-222-18/+131
|\ \ | |/ |/| Add support for variable output latency in WASAPI audio driver
| * Fixed the audio 'output latency' project setting not appearing when using ↵Ben Armstrong2021-05-042-18/+131
| | | | | | | | the WASAPI audio driver. Added variable output latency support to the WASAPI audio driver for systems that support it.
* | Fixes to mobile rendererreduz2021-08-172-5/+36
| | | | | | | | | | | | * 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 init code so it works properly on Vulkan 1.1 devicesBastiaan Olij2021-08-171-28/+26
| |
* | Upgrade Vulkan memory allocatorPedro J. Estébanez2021-08-133-4/+6
| |
* | Android: Use volk instead of NDK Vulkan headersRémi Verschelde2021-08-121-14/+3
| | | | | | | | | | We no longer build the Vulkan loader, and volk lets us load it dynamically. Roblox uses volk on Android so it should work well for us too.
* | Use "volk" instead of statically linked Vulkan loader.bruvzg2021-08-125-103/+56
| |
* | Fixes and optimizations to mobile rendererreduz2021-08-101-20/+85
| | | | | | | | | | | | | | * Only apply final actions to attachments used in the last pass. * Fixes to draw list final action (was using continue instead of read/drop). * Profiling regions inside draw lists now properly throw errors. * Ability to enable gpu profile printing from project settings. (used to debug).
* | FileAccessWindows: Add missing share.h includeRémi Verschelde2021-08-101-0/+1
| | | | | | | | Follow-up to #51430.
* | FileAccessWindows: Cosmetic improvementsMax Hilbrunner2021-08-091-4/+9
| |
* | Fix Windows platform file accessMax Hilbrunner2021-08-091-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This restores Windows platform file handling back to open files non-exlusively by default, as was the case before October 2018. (See https://github.com/godotengine/godot/commit/b902a2f2a7438810cdcb053568ed5c27089b1e8a) Back then, while fixing warnings for MSVC, the function used for opening files was changed from _wfopen() to _wfopen_s() as suggsted by the warning C4996. ("This function may be unsafe, consider using _wfopen_s instead.") This new function 1. did parameter validation and thus avoided some possible security issues due to nil pointers or wrongly terminated strings 2. it also changed the default file sharing for opened files from _SH_DENYNO (which was the implicit default for the previous _wfopen()) to _SH_SECURE. _SH_DENYNO means every opened file could be opened by other calls (like is the default on other operating systems). _SH_SECURE means if the file is opened with READ access, others can still read the same file, but if it is opened with WRITE access, others can't open it at all, not even to read. This led to rarely occuring bugs on Windows, i.e. due to random access by Antivirus processes, or Godot/Windows not closing a file handle fast enough while trying to open it again elsewhere (i.e. project.godot, instead showing the Project manager, or saving shaders/debugging the game). What this PR does it change the file access to a third method, _wfsopen(). This is still secure, doing parameter validation and thus avoids the warning, but it allows us to actually SET the file sharing parameter. And we set it to _SH_DENYNO, as it was implicitely before the change. (And as it currently is on all non-Windows platforms, where file sharing restrictions don't exist by default.) Warning C4996 should really have been pointing this out. It should've been _wfsopen() all along. Let's hope this banishes those annoying, rare errors for all eternity. Fixes #28036.
* | Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij2021-08-062-9/+30
| |
* | Merge pull request #51103 from Calinou/vulkan-detect-intel-title-caseRémi Verschelde2021-07-311-1/+2
|\ \ | | | | | | Use title case instead of uppercase for Vulkan Intel GPU detection
| * | Use title case instead of uppercase for Vulkan Intel GPU detectionHugo Locurcio2021-07-311-1/+2
| | | | | | | | | | | | | | | | | | This matches how the vendor name is displayed in most places. The Apple GPU vendor was also added for the M1.
* | | Merge pull request #51108 from Calinou/vulkan-print-verboseRémi Verschelde2021-07-311-14/+10
|\ \ \ | | | | | | | | Move Vulkan debugging prints to verbose
| * | | Move Vulkan debugging prints to verboseHugo Locurcio2021-07-311-14/+10
| |/ / | | | | | | | | | | | | | | | These messages can now be displayed in release builds if the `--verbose` command line argument is specified, which is useful for troubleshooting.
* / / Print the Vulkan device name in release builds tooHugo Locurcio2021-07-311-2/+2
|/ / | | | | | | | | | | This is important information to include in bug reports for exported projects, and is consistent with the behavior found in the GLES3 and GLES2 renderers in `3.x`.
* | Merge pull request #50847 from reduz/implement-binary-shader-compilationRémi Verschelde2021-07-262-109/+408
|\ \ | | | | | | Implement Binary Shader Compilation
| * | Implement Binary Shader Compilationreduz2021-07-262-109/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Fix various typosluz paz2021-07-251-2/+2
|/ / | | | | 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`
* | Merge pull request #50809 from akien-mga/iterators-const-referencesRémi Verschelde2021-07-252-3/+3
|\ \
| * | Use const references where possible for List range iteratorsRémi Verschelde2021-07-252-3/+3
| | |
* | | Fix various typos with codespellluz paz2021-07-251-2/+2
|/ / | | | | | | 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`
* | Merge pull request #50786 from reduz/implement-resource-uidsRémi Verschelde2021-07-242-2/+2
|\ \ | | | | | | Implement Resource UIDs
| * | Implement Resource UIDsreduz2021-07-242-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Use C++ iterators for Lists in many situationsAaron Franke2021-07-232-8/+8
|/ /
* | Move `alert` function from `DisplayServer` to `OS`.bruvzg2021-07-222-5/+0
| |
* | Fix MoltenVK static linking on macOS (add missing include path, Vulkan SDK ↵bruvzg2021-07-221-1/+1
| | | | | | | | path option, use xcframework instead of static framework).
* | Fixes to forward mobilereduz2021-07-151-1/+1
| | | | | | | | | | | | * 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.
* | Use specialization constants in clustered rendererreduz2021-07-121-10/+8
| | | | | | | | | | | | | | * 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.
* | Implement Specialization Constantsreduz2021-07-112-6/+164
| | | | | | | | | | | | * 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.
* | Merge pull request #48622 from Geometror/reimplement-disableable-vsyncHugo Locurcio2021-07-102-11/+51
|\ \
| * | Restructure and reimplement vsync optionsHendrik Brucker2021-07-062-11/+51
| | | | | | | | | | | | | | | -Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
* | | Fix material invalidation on reimport.reduz2021-07-072-0/+14
| | | | | | | | | | | | | | | | | | * 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.
* | | Fix threaded update for texturesreduz2021-07-072-5/+10
|/ / | | | | | | | | * Previews and other stuff now works again. * Not the best solution, will have to be improved in the future usinc async queues where supported.
* | Merge pull request #50048 from Calinou/remove-travis-codeRémi Verschelde2021-07-051-12/+0
|\ \ | | | | | | Remove unused code related to Travis CI
| * | Remove unused code related to Travis CIHugo Locurcio2021-07-011-12/+0
| | |
* | | Fix Render Inforeduz2021-07-032-6/+19
|/ / | | | | | | | | | | | | | | * 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.
* | Enum constant in boolean contextK. S. Ernest (iFire) Lee2021-06-301-1/+1
| | | | | | error: enum constant in boolean context [-Werror=int-in-bool-context]
* | Fix Context Validation Layer Errorsreduz2021-06-283-16/+58
| | | | | | | | | | | | | | * 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.
* | Implement Framebuffer Subpass supportreduz2021-06-242-231/+659
| | | | | | | | | | * Required for better optimizing mobile platforms * Will be used by the Vulkan mobile renderer.
* | Rename `instance()`->`instantiate()` when it's a verbLightning_A2021-06-192-2/+2
| |
* | Add stereoscopic rendering through multiviewBastiaan Olij2021-06-134-14/+103
| |
* | Merge pull request #49123 from aaronfranke/it-is-timeRémi Verschelde2021-06-121-2/+2
|\ \ | | | | | | Add a Time singleton
| * | Add Time singletonAaron Franke2021-06-111-2/+2
| | |
* | | Merge pull request #47835 from mortarroad/master-lossless-webpRémi Verschelde2021-06-111-2/+2
|\ \ \ | | | | | | | | Implement lossless WebP encoding