summaryrefslogtreecommitdiff
path: root/drivers/vulkan/rendering_device_vulkan.cpp
AgeCommit message (Collapse)Author
2022-06-30Use a more robust method of determining writability of bindingsPedro J. Estébanez
2022-06-28Avoid manual memory management of certain arrays in Vulkan RDPedro J. Estébanez
2022-06-28Fix confusion between Vulkan and RD storage buffer usage valuesPedro J. Estébanez
2022-06-28Stop debug time full barriers preventing layout transitions in Vulkan RDPedro J. Estébanez
2022-06-28Optimize texture update in Vulkan RDPedro J. Estébanez
2022-06-28Apply some small fixes/enhancements to the Vulkan RDPedro J. Estébanez
- Initialize queue indices to values meaning 'unset' - Remove unused parameters & members - Make texture update access flags consistent with texture copy - Fix style and pass type of some parameters - Synchronize setup-draw in flush with a semaphore - Add no current list validation to draw_list_begin_splits() - Update texture usage flags on destination of copy - Fix misuse of Vulkan flag
2022-06-27Consider uniform writability part of the interface of the setPedro J. Estébanez
2022-06-22Split GI effects and fix stereoscopic rendering of GI effectsBastiaan Olij
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-03Add `get_video_adapter_api_version()` to RenderingServerHugo Locurcio
This method can be used to get the graphics API version currently in use (such as Vulkan). It can be used by projects for troubleshooting or statistical purposes.
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-06Fix some issues found by cppcheck.bruvzg
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-29vk_mem_alloc: Update to upstream + Replace use of deprecated itemsPedro J. Estébanez
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-09Change some math macros to constexprkobewi
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
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-01Fixing retrospective code for specialisation constantsBastiaan Olij
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-17[Windows] Fix Vulkan driver crash on sub-window minimization.bruvzg
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-12Add a separate pool for small allocations in Vulkan RDPedro J. Estébanez
2022-01-22Merge pull request #54890 from briansemrau/threadsafe-drawpute-listsRémi Verschelde
Make draw/compute lists threadsafe
2022-01-19Merge pull request #54489 from briansemrau/texture-delete-updateRémi Verschelde
2022-01-14Remove support for PVRTC texture encoding and decodingHugo Locurcio
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.
2022-01-13Fix various typosluz paz
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`
2022-01-04Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde
Add `RenderingServer.get_video_adapter_type()` method
2022-01-04Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-10Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio
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.
2021-12-10Merge pull request #55704 from RandomShaper/fix_little_vk_mistakeRémi Verschelde
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-12-07Fix misuse of Vulkan enum valuePedro J. Estébanez
2021-11-23Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm
2021-11-11Make draw/compute lists threadsafeBrian Semrau
Lock the rendering device while command buffers are in use
2021-11-06Added SSIL post processing effectclayjohn
2021-11-01Fix materials not updating when texture replaced/deletedBrian Semrau
2021-10-30Disallow compute dispatch with zero dimensions.Brian Semrau
2021-10-28Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
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-20doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde
Fixes #53913.
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-29Rename RID's `getornull()` to `get_or_null()`Hugo Locurcio
2021-09-17Fix buffer_info may be used uninitializedRaul Santos
2021-09-09Expose Vulkan internal values for access from extensionsBastiaan Olij