summaryrefslogtreecommitdiffstats
path: root/drivers/vulkan/rendering_device_vulkan.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde2021-04-271-5/+5
| | | | | | | | We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
* Merge pull request #47283 from Panquesito7/fix_lgtm_alertsRémi Verschelde2021-03-311-3/+3
|\ | | | | fix: 3 LGTM alerts/warnings
| * fix: 3 LGTM alerts/warningsDavid Leal2021-03-311-3/+3
| |
* | Obtain supported Vulkan APIBastiaan Olij2021-03-261-0/+13
|/
* Fixes small typos and grammar correctionAnshul7sp12021-03-121-12/+12
|
* Fixes to get Godot running again on Intel IGPreduz2021-02-051-2/+12
| | | | | -Fixed strange bug with shadowed instance_param (this should not have worked anywhere, odd..) -Cleaned up barrier usage further.
* Rewrote how barriers work for faster renderingreduz2021-02-041-34/+262
| | | | | | | | | | | -Added more finegrained control in RenderingDevice API -Optimized barriers (use less ones for thee same) -General optimizations -Shadows render all together unbarriered -GI can render together with shadows. -SDFGI can render together with depth-preoass. -General fixes -Added GPU detection
* Reorganize RenderingDevice barriersreduz2021-01-261-80/+301
| | | | | | | -Removed sync to draw, now everything syncs to draw by default. -Fixed many validation layer errors. -Added support for VkImageViewUsageCreateInfo to fix validation layer warnings. -Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
* Add named resources and debug labels in RenderDocclayjohn2021-01-251-0/+66
|
* Shadow map rendering optimizationreduz2021-01-241-8/+16
| | | | | | | -All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
* Added GPU based cluster builderreduz2021-01-191-7/+38
| | | | Clustering is now GPU based, uses an implementation based on the Activision algorithm.
* spirv-reflect: Update to upstream commit c0ce03a (Jan 6, 2021)Rémi Verschelde2021-01-081-0/+4
|
* Threaded optimizations to cull and renderreduz2021-01-051-7/+7
| | | | | -Reorganize thread work pool for rendering -Fixes to make secondary command buffers to work (disabled because they need more testing)
* Merge pull request #44842 from clayjohn/VULKAN-SSAO-2Rémi Verschelde2021-01-041-1/+10
|\ | | | | SSAO renames and move push constant binding
| * SSAO cleanup and fixesclayjohn2021-01-031-1/+10
| |
* | Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
|/ | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Rename empty() to is_empty()Marcel Admiraal2020-12-281-1/+1
|
* Port ASSAO to Godot to replace SAOclayjohn2020-12-211-2/+13
|
* Merge pull request #44521 from madmiraal/rename-rect2-clipRémi Verschelde2020-12-191-1/+1
|\ | | | | Rename Rect2 and Rect2i clip() to intersection()
| * Rename Rect2 and Rect2i clip() to intersection()Marcel Admiraal2020-12-191-1/+1
| |
* | Fix error spam on wrong attachmentreduz2020-12-191-6/+12
|/ | | | | -For now, disable reading from depth this was always broken, needs to be fixed later -Give better error showing binding and set when this happens.
* Reimplement skeletons and blend shapesreduz2020-12-161-3/+16
| | | | Uses compute shaders, which only once, on demand, and all in parallel.
* Static analyzer fixes:bruvzg2020-12-091-2/+2
| | | | | | Removes unused code in OS. Fixes return types. Fixes few typos.
* Rename RD texture "type" to "texture_type"Aaron Franke2020-12-041-7/+7
| | | "type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
* Rename RD uniform "type" to "uniform_type"Aaron Franke2020-12-041-3/+3
| | | "type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
* Refactored Mesh internals and formats.reduz2020-12-021-1/+2
| | | | | | | | | | | | | | | -Changed how mesh data is organized, hoping to make it more efficient on Vulkan and GLES. -Removed compression, it now always uses the most efficient format. -Added support for custom arrays (up to 8 custom formats) -Added support for 8 weights in skeleton data. -Added a simple optional versioning system for imported assets, to reimport if binary is newer -Fixes #43979 (I needed to test) WARNING: -NOT backwards compatible with previous 4.x-devel, will most likely never be, but it will force reimport scenes due to version change. -NOT backwards compatible with 3.x scenes, this will be eventually re-added. -Skeletons not working any longer, will fix in next PR.
* Initialize class/struct variables with default values in core/ and drivers/Rafał Mikrut2020-11-231-1/+0
|
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-8/+0
|
* Reorganized core/ directory, it was too fatty alreadyreduz2020-11-071-2/+2
| | | | | | -Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
* Synchronization - Clean subpass dependency initJohn Zulauf2020-10-291-3/+3
| | | | Fix incorrect subpass dependency initialization
* Implement CanvasGroup and CanvasItem clippingreduz2020-10-281-5/+4
| | | | | | | | -Allows merging several 2D objects into a single draw operation -Use current node to clip children nodes -Further fixes to Vulkan barriers -Changed font texture generation to white, fixes dark eges when blurred -Other small misc fixes to backbuffer code.
* Fix crash in RenderingDeviceVulkan::shader_creatersjtdrjgfuzkfg2020-10-251-1/+3
| | | | | | | This commit moves the declaration of a local variable to ensure its scope survives long enough; at least in some versions of GCC and LLVM the associated memory was freed too early and thus caused issues ranging from black screens to crashes.
* Refactored 2D shader and lighting systemreduz2020-10-241-3/+3
| | | | | | | | | | -Removed normal/specular properties from nodes -Create CanvasTexture, which can contain normal/specular channels -Refactored, optimized and simplified 2D shaders -Use atlas for light textures. -Use a shadow atlas for shadow textures. -Use both items aboves to make light rendering stateless (faster). -Reorganized uniform sets for more efficiency.
* Fix invalid buffer updates in SDFGIreduz2020-10-191-0/+22
|
* Revert "Revert "Synchronization validation fix patch set 3 (inclusive of all ↵Juan Linietsky2020-10-191-67/+148
| | | | previous patches)""
* Revert "Synchronization validation fix patch set 3 (inclusive of all ↵Juan Linietsky2020-10-191-148/+67
| | | | previous patches)"
* Revert "Cause buffer_update to emit error if called during compute/draw list"Juan Linietsky2020-10-191-4/+0
|
* Merge pull request #40849 from jzulauf-lunarg/zulauf_buffer_update_err_msgJuan Linietsky2020-10-191-0/+4
|\ | | | | Cause buffer_update to emit error if called during compute/draw list
| * Cause buffer_update to emit error if called during compute/draw listJohn Zulauf2020-07-291-0/+4
| | | | | | | | Add error message to buffer update if a compute or draw list is active.
* | Add pre-copy barrier to buffer updateJohn Zulauf2020-10-161-1/+1
| | | | | | | | | | Add a barrier to "safe" the buffer update write from previous accesses to buffer range being updated. Remove duplicate unneed barrier.
* | Add subpass sync support for layout transitionsJohn Zulauf2020-10-161-0/+12
| | | | | | | | | | | | | | | | | | | | | | Add additional source and dest mask bits for "from external" and "to external" subpass dependencies (respectively) when intial and final layouts cause implicit layout transitions. This is a big hammer -- any transition in a given direction will create a full barrier. Attachment specific stage and access flags could be used instead with additional logic to deduce the prior and intended subsequent usages.
* | Sync fix for clear textureJohn Zulauf2020-10-161-12/+16
| | | | | | | | | | Make pre and post barriers non-conditional on format, as there are cases where pending operations in the GENERAL layout hazarding with clear.
* | Sync fix texture_get_data bad barrier paramJohn Zulauf2020-10-161-1/+1
| | | | | | | | Changed srcStageMask to the valid stage for post transfer barrier.
* | Additional synchronization fixes w/o FORCE_FULL_BARRIERJohn Zulauf2020-10-161-18/+76
| | | | | | | | | | Additional synchronization fixes from hazards arising from disabling FORCE_FULL_BARRIER.
* | Correct stage masks for storage texture barriersJohn Zulauf2020-10-161-1/+1
| | | | | | | | | | Change the srcStageMasks and dstStageMasks for the storage texture end draw barriers to refer to the correct stages for the use.
* | Add barrier for buffer gettingJohn Zulauf2020-10-161-34/+41
| | | | | | | | | | Add barrier for source buffer when getting. Refactor common "owner and stage/access" code to utility function.
* | Add fragment stage to texture copy/resolve barriersJohn Zulauf2020-10-161-4/+4
| | | | | | | | | | | | | | Added the fragment stage to the texture copy and resolve final barriers for source and dest. As the textures could subsequently be used by the fragment stage, this was triggering a validation error from the pre-alpha synchronization validation.
* | [Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg2020-09-031-10/+10
|/
* Vulkan: Fix struct init for VkClearAttachmentRémi Verschelde2020-07-221-27/+2
| | | | | | | | The changes from #38835 were not sufficient to fix #38829, as VkClearAttachment still had uninitialized member structs in its VkClearColor member struct. The struct rabbit hole goes deep and trying to do validation as done in #38829 doesn't appear realistic.
* Merge pull request #38835 from madmiraal/fix-38829Rémi Verschelde2020-07-221-6/+31
|\ | | | | Fix may be used unitialized warnings in _render_pass_create() and _draw_list_insert_clear_region().