summaryrefslogtreecommitdiffstats
path: root/drivers/vulkan/rendering_device_vulkan.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a UniformSet cachereduz2022-03-061-65/+64
| | | | | | | * 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.
* Fixing retrospective code for specialisation constantsBastiaan Olij2022-03-011-5/+8
|
* vk_mem_alloc: Update to upstream + Adapt approach to small objects poolingPedro J. Estébanez2022-02-241-18/+44
| | | | | | 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.
* Implementing OpenXR driverBastiaan Olij2022-02-231-0/+118
|
* [Windows] Fix Vulkan driver crash on sub-window minimization.bruvzg2022-02-171-0/+4
|
* Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde2022-02-161-17/+17
| | | | | Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
* Add a separate pool for small allocations in Vulkan RDPedro J. Estébanez2022-02-121-2/+20
|
* Merge pull request #54890 from briansemrau/threadsafe-drawpute-listsRémi Verschelde2022-01-221-0/+12
|\ | | | | Make draw/compute lists threadsafe
| * Make draw/compute lists threadsafeBrian Semrau2021-11-111-0/+12
| | | | | | | | Lock the rendering device while command buffers are in use
* | Merge pull request #54489 from briansemrau/texture-delete-updateRémi Verschelde2022-01-191-3/+3
|\ \
| * | Fix materials not updating when texture replaced/deletedBrian Semrau2021-11-011-3/+3
| |/
* | Remove support for PVRTC texture encoding and decodingHugo Locurcio2022-01-141-57/+0
| | | | | | | | | | | | | | On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
* | Fix various typosluz paz2022-01-131-1/+1
| | | | | | Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inh,inout,leapyear,lod,nd,numer,ois,ony,paket,ro,seeked,sinc,switchs,te,uint,varn,vew`
* | Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde2022-01-041-0/+5
|\ \ | | | | | | Add `RenderingServer.get_video_adapter_type()` method
| * | Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio2021-12-101-0/+5
| | | | | | | | | | | | | | | | | | | | | This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
* | | Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde2022-01-041-3/+4
|\ \ \
| * | | Added SSIL post processing effectclayjohn2021-11-061-3/+4
| | |/ | |/|
* | | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| |/ |/| | | | | Happy new year to the wonderful Godot community!
* | Merge pull request #55704 from RandomShaper/fix_little_vk_mistakeRémi Verschelde2021-12-101-1/+1
|\ \
| * | Fix misuse of Vulkan enum valuePedro J. Estébanez2021-12-071-1/+1
| | |
* | | Replace String comparisons with "", String() to is_empty()Nathan Franke2021-12-091-1/+1
|/ / | | | | | | | | | | 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-0/+1
|/
* Disallow compute dispatch with zero dimensions.Brian Semrau2021-10-301-0/+9
|
* Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn2021-10-281-2/+2
| | | | Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
* clang-format: Disable alignment of operands, too unreliableRémi Verschelde2021-10-281-32/+32
| | | | | | | | | 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`.
* doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde2021-10-201-0/+2
| | | | Fixes #53913.
* Use range iterators for `Map`Lightning_A2021-09-301-3/+3
|
* Rename RID's `getornull()` to `get_or_null()`Hugo Locurcio2021-09-291-103/+103
|
* Fix buffer_info may be used uninitializedRaul Santos2021-09-171-0/+1
|
* Expose Vulkan internal values for access from extensionsBastiaan Olij2021-09-091-2/+88
|
* Optionally scale 3D render contentBastiaan Olij2021-08-261-0/+8
|
* Remove redundant assignments.Anilforextra2021-08-211-2/+2
| | | | Use used_in_transfer instead of used_in_compute twice.
* Fixes to mobile rendererreduz2021-08-171-4/+34
| | | | | | * 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.
* Upgrade Vulkan memory allocatorPedro J. Estébanez2021-08-131-0/+1
|
* Use "volk" instead of statically linked Vulkan loader.bruvzg2021-08-121-1/+1
|
* 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).
* Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij2021-08-061-9/+29
|
* Merge pull request #50847 from reduz/implement-binary-shader-compilationRémi Verschelde2021-07-261-108/+403
|\ | | | | Implement Binary Shader Compilation
| * Implement Binary Shader Compilationreduz2021-07-261-108/+403
| | | | | | | | | | | | | | | | | | | | * 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`
* Use const references where possible for List range iteratorsRémi Verschelde2021-07-251-2/+2
|
* Use C++ iterators for Lists in many situationsAaron Franke2021-07-231-5/+5
|
* 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-111-4/+156
| | | | | | * 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.
* Fix material invalidation on reimport.reduz2021-07-071-0/+11
| | | | | | * 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-071-5/+9
| | | | | * Previews and other stuff now works again. * Not the best solution, will have to be improved in the future usinc async queues where supported.
* Fix Render Inforeduz2021-07-031-5/+15
| | | | | | | | * 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.
* Fix Context Validation Layer Errorsreduz2021-06-281-1/+4
| | | | | | | * 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-241-222/+559
| | | | | * Required for better optimizing mobile platforms * Will be used by the Vulkan mobile renderer.