summaryrefslogtreecommitdiffstats
path: root/drivers/vulkan/rendering_device_vulkan.h
Commit message (Collapse)AuthorAgeFilesLines
* Split RenderingDevice into API-agnostic and RenderingDeviceDriver partsPedro J. Estébanez2023-12-201-1293/+0
| | | | | | Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support. Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
* Merge pull request #85532 from RandomShaper/kill_redund_clearYuri Sizov2023-12-081-14/+14
|\ | | | | | | Apply some low-hanging fruit optimizations to Vulkan RD
| * Remove superfluous locking in RID owners in Vulkan RDPedro J. Estébanez2023-12-011-13/+13
| |
| * Remove redundant explicit clears in the Vulkan RDPedro J. Estébanez2023-12-011-1/+1
| |
* | Merge pull request #84852 from Alex2782/fix_vulkan_buffer_androidRémi Verschelde2023-12-041-1/+1
|\ \ | | | | | | | | | Vulkan: Fix incorrect access to the buffers on Android
| * | Vulkan: Fix incorrect access to the buffers on AndroidAlexander Hartmann2023-11-151-1/+1
| |/
* / Fix buffer updates going to the wrong cmd buffer if barriers were 0Matias N. Goldberg2023-10-211-2/+7
|/ | | | | | | | | | | | | | | From what I could see only SSAO & SSIL were affected when they both call: int zero[1] = { 0 }; RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); int zero[1] = { 0 }; RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); Also documented what setup_command_buffer & draw_command_buffer are for.
* Vertex and attribute compression to reduce the size of the vertex format.clayjohn2023-10-051-2/+2
| | | | | | | | | | | | | This allows Godot to automatically compress meshes to save a lot of bandwidth. In general, this requires no interaction from the user and should result in no noticable quality loss. This scheme is not backwards compatible, so we have provided an upgrade mechanism, and a mesh versioning mechanism. Existing meshes can still be used as a result, but users can get a performance boost by reimporting assets.
* Expose texture_create_from_extension to GDExtensionShawn Wallace2023-09-231-1/+1
|
* Enhance Vulkan PSO cachingPedro J. Estébanez2023-08-301-2/+4
|
* Add buffer_copy method to RenderingDevice interface and an implementation ↵Dario2023-08-121-0/+1
| | | | | | for the Vulkan driver. Direct buffer copies are required to perform certain operations more efficiently, as the only current alternative is to download the buffer to the CPU and upload it again. As the first use case, the new function is used when enabling motion vectors on multimeshes.
* Merge pull request #79606 from clayjohn/ShaderRD-compilation-groupsYuri Sizov2023-08-011-1/+2
|\ | | | | | | Shader rd compilation groups
| * Add Shader compile groups to RD Shader systemclayjohn2023-07-211-1/+2
| | | | | | | | | | | | | | | | This allows us to specify a subset of variants to compile at load time and conditionally other variants later. This works seamlessly with shader caching. Needed to ensure that users only pay the cost for variants they use
* | Add custom texture create functionBastiaan Olij2023-07-261-0/+1
|/
* Expose RD::texture_native_handleBastiaan Olij2023-06-141-1/+1
|
* Merge pull request #76348 from warriormaster12/pipeline-cacheRémi Verschelde2023-06-011-0/+26
|\ | | | | | | Implement Vulkan pipeline caching
| * Implement Vulkan pipeline cachingwarriormaster122023-05-311-0/+26
| |
* | For GDExternal use, provides access to internal graphics handles for texturesBastiaan Olij2023-05-091-0/+1
| |
* | Fix unsupported sampler filter used for voxel GIPedro J. Estébanez2023-04-261-0/+1
| |
* | Fix issues with Vulkan layout transitionsPedro J. Estébanez2023-04-241-0/+2
|/
* Merge pull request #70663 from EpEpDragon/feature_buffer_get_data_size_optionRémi Verschelde2023-02-101-1/+1
|\ | | | | | | Add optional size parameter to the RenderDevice buffer_get_data method.
| * Added optional offset and size parameter to RenderDevice buffer_get_data methodEpEpDragon2023-01-061-1/+1
| |
* | Add layer slice support to render device and render buffersBastiaan Olij2023-02-031-1/+1
|/
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Changed `STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT` type to enum flagsYuri Rubinsky2022-12-151-1/+1
|
* Merge pull request #69709 from RandomShaper/refactor_spirv_reflectionRémi Verschelde2022-12-151-8/+4
|\ | | | | | | Refactor SPIR-V reflection into a generic RenderingDevice feature
| * Refactor SPIR-V reflection into a generic RenderingDevice featurePedro J. Estébanez2022-12-121-4/+0
| |
| * Tidy up some aspects of Vulkan RDPedro J. Estébanez2022-12-121-4/+4
| |
* | Merge pull request #69635 from BastiaanOlij/fix_get_bufferRémi Verschelde2022-12-121-2/+2
|\ \ | |/ |/| | | Fix barrier on buffer_get_data
| * Fix barrier on buffer_get_dataBastiaan Olij2022-12-061-2/+2
| |
* | Changed `RD::PipelineDynamicStateFlags` type to enum flagsYuri Rubinsky2022-12-111-1/+1
|/
* Changed `RenderingDevice::TextureUsageBits` type to enum flagsYuri Rubinsky2022-11-261-1/+1
|
* Merge pull request #68942 from Chaosus/barrier_mask_flagsRémi Verschelde2022-11-221-11/+11
|\ | | | | | | Expose `BarrierMask` as flags enum in `RenderingDevice`
| * Expose `BarrierMask` as flags enum in `RenderingDevice`Yuri Rubinsky2022-11-221-11/+11
| |
* | Add `offsets` parameter to RenderingDevice::vertex_array_createPatrick Dawson2022-11-111-1/+1
|/
* Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg2022-10-071-1/+1
| | | | change warnings=all to use /W4.
* Merge pull request #63003 from Geometror/msaa-2dRémi Verschelde2022-08-301-0/+4
|\
| * Implement MSAA for 2D [Vulkan only]Hendrik Brucker2022-08-131-0/+4
| |
* | Add font LCD sub-pixel anti-aliasing support.bruvzg2022-08-231-0/+1
|/
* Apply correct formatting to comments in the Vulkan driverPedro J. Estébanez2022-08-091-42/+42
|
* For dev builds, keep track of resource names in the Vulkan driverBastiaan Olij2022-08-091-0/+4
|
* Add a Framebuffer cacheJuan Linietsky2022-08-051-4/+8
| | | | | | | | | | Adds a FramebufferCache singletion that operates the same way as UniformSetCache. Allows creating framebuffers on the fly (and keep them cached if re-requested) such as: ```C++ RID fb = FramebufferCache::get_singleton()->get_cache(texture1,texture2); ```
* Adding Variable Rate Shading support to GodotBastiaan Olij2022-07-171-1/+4
| | | | | Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
* Avoid manual memory management of certain arrays in Vulkan RDPedro J. Estébanez2022-06-281-6/+6
|
* Apply some small fixes/enhancements to the Vulkan RDPedro J. Estébanez2022-06-281-5/+1
| | | | | | | | | | | - 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
* Consider uniform writability part of the interface of the setPedro J. Estébanez2022-06-271-1/+5
|
* Clean up Hash Functionsreduz2022-06-201-7/+7
| | | | | | | Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934 * Clean up usage of murmur3 * Fixed usages of binary murmur3 on floats (this is invalid) * Changed DJB2 to use xor (which seems to be better)
* Add a new HashSet templatereduz2022-05-201-4/+4
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Replace most uses of Map by HashMapreduz2022-05-161-11/+11
| | | | | | | | | | | | * 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!
* Add `get_video_adapter_api_version()` to RenderingServerHugo Locurcio2022-05-031-0/+1
| | | | | | 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.