summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2021-10-28Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-26Save all 64 bits of get_ticks_msec() in more casesMax Hilbrunner
2021-10-20doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde
Fixes #53913.
2021-10-14Implement toast notifications in the editorGilles Roudière
2021-10-12Merge pull request #53712 from CakHuri/nullptrRémi Verschelde
Replace NULL with nullptr
2021-10-12Build for 64-bit ARM by default when compiling or exporting for AndroidHugo Locurcio
All Android devices that support Vulkan support 64-bit ARM. This also removes NEON opt-out code for ARMv7 as pretty much all ARMv7 devices also support NEON.
2021-10-12Replaced NULL with nullptrM. Huri
2021-10-06Merge pull request #53408 from EIRTeam/fix_wasapi_output_latencyRémi Verschelde
2021-10-06Make WASAPI return accurate latency informationÁlex Román Núñez
2021-10-05Merge pull request #52963 from Pineapple/WIN32_LEAN_AND_MEAN_masterRémi Verschelde
2021-10-02Merge pull request #43068 from cooperra/rename-fixRémi Verschelde
2021-10-01Initialize AudioClientPropertiesFrixuu
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-29Rename RID's `getornull()` to `get_or_null()`Hugo Locurcio
2021-09-23Add missing WIN32_LEAN_AND_MEANBartłomiej T. Listwon
2021-09-17Merge pull request #52464 from raulsntos/fix_buffer_info_uninitializedRémi Verschelde
2021-09-17Fix buffer_info may be used uninitializedRaul Santos
2021-09-15Merge pull request #52562 from BastiaanOlij/gd_extensions_register_driversRémi Verschelde
Add driver types to GD extension initialisation levels
2021-09-14Print the Vulkan API version and device used on the same lineHugo Locurcio
This matches Godot 3.x's OpenGL renderer behavior and is more compact.
2021-09-14Fix startup warning - Property not found: `audio/output_latency`Yuri Roubinsky
2021-09-13Add driver types to GD extension initialisation levelsBastiaan Olij
2021-09-12Merge pull request #51604 from TechnoPorg/fix-vulkan-parent-materialJFonS
Vulkan: Fix CanvasItem::use_parent_material
2021-09-09Expose Vulkan internal values for access from extensionsBastiaan Olij
2021-08-29Rename String::is_rel_path to String::is_relative_pathWilson E. Alvarez
2021-08-26Optionally scale 3D render contentBastiaan Olij
2021-08-23Merge pull request #51947 from AnilBK/redundant-assignmentsMichael Alexsander
[cppcheck] Remove some redundant assignments.
2021-08-22Merge pull request #38210 from benjarmstrong/wasapi-audio-output-latencyK. S. Ernest (iFire) Lee
Add support for variable output latency in WASAPI audio driver
2021-08-21Remove redundant assignments.Anilforextra
Use used_in_transfer instead of used_in_compute twice.
2021-08-17Fixes to mobile rendererreduz
* 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.
2021-08-17Vulkan: Fix CanvasItem::use_parent_materialTechnoPorg
The "Use Parent Material" option now does something when enabled on a CanvasItem. As before, it's not just limited to a node's direct parent but can move up the tree until it finds a material. Also corrected a typo in rendering_device_vulkan.h that didn't merit its own commit.
2021-08-17Fix init code so it works properly on Vulkan 1.1 devicesBastiaan Olij
2021-08-13Upgrade Vulkan memory allocatorPedro J. Estébanez
2021-08-12Android: Use volk instead of NDK Vulkan headersRémi Verschelde
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.
2021-08-12Use "volk" instead of statically linked Vulkan loader.bruvzg
2021-08-10Fixes and optimizations to mobile rendererreduz
* 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).
2021-08-10FileAccessWindows: Add missing share.h includeRémi Verschelde
Follow-up to #51430.
2021-08-09FileAccessWindows: Cosmetic improvementsMax Hilbrunner
2021-08-09Fix Windows platform file accessMax Hilbrunner
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.
2021-08-06Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij
2021-07-31Merge pull request #51103 from Calinou/vulkan-detect-intel-title-caseRémi Verschelde
Use title case instead of uppercase for Vulkan Intel GPU detection
2021-07-31Merge pull request #51108 from Calinou/vulkan-print-verboseRémi Verschelde
Move Vulkan debugging prints to verbose
2021-07-31Use title case instead of uppercase for Vulkan Intel GPU detectionHugo Locurcio
This matches how the vendor name is displayed in most places. The Apple GPU vendor was also added for the M1.
2021-07-31Move Vulkan debugging prints to verboseHugo Locurcio
These messages can now be displayed in release builds if the `--verbose` command line argument is specified, which is useful for troubleshooting.
2021-07-31Print the Vulkan device name in release builds tooHugo Locurcio
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`.
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