1
0
forked from mirrors/0ad
Commit Graph

62 Commits

Author SHA1 Message Date
Vladislav Belov dba968013f Fixes Vulkan device selection.
According to #6936 some lower devices (especially virtual ones) might
report more memory than regular ones. So we can't use the memory
amount as a score for now.
2024-12-16 23:18:20 +01:00
Vladislav Belov 9e371824c2 Adds storage buffer support to Vulkan and GL.
The idea is similar to the storage images but we need a separate
descriptor set in Vulkan and a program interface to gather used buffer
in GL.

For Vulkan we also need to track buffers to free used descriptor sets.
2024-12-09 22:47:15 +01:00
Vladislav Belov 60b4072b29 Avoids assertions on Vulkan backend device creation in case of driver bugs. 2024-12-05 18:32:15 +01:00
Vladislav Belov 0a6703762d Removes hardcoded Vulkan uniform descriptor set ranges. 2024-11-06 23:24:22 +01:00
Vladislav Belov 3a01d852e2 Adds binding slot type to Vulkan shader program. 2024-11-06 19:09:22 +01:00
Vladislav Belov 2b324fdd94 Avoids recalculating Vulkan pipeline state in case of the same desc. 2024-10-25 21:23:47 +02:00
Vladislav Belov 960b3180e5 Reduces code duplication for Vulkan pipeline state binding. 2024-10-19 19:58:03 +02:00
Vladislav Belov 3eb1da6e5c Fixes incorrect Vulkan buffer usage enum name. 2024-10-19 00:13:50 +02:00
Itms 35e0a98940 Avoid a copy in a range-for-loop
This fixes -Wrange-loop-construct with FreeBSD's clang17.
2024-09-28 21:55:30 +02:00
vladislavbelov 6d5dc7f311 Fixes zero usage for Vulkan upload buffer after b9fd6f18f0.
This was SVN commit r28110.
2024-06-14 22:05:32 +00:00
vladislavbelov b9fd6f18f0 Adds proper IBuffer usage instead of dynamic flag.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D5281
This was SVN commit r28107.
2024-06-10 19:31:41 +00:00
vladislavbelov e9bc76040d Accounts maxAnisotropy for Vulkan samplers.
This was SVN commit r28034.
2024-02-16 18:46:44 +00:00
vladislavbelov aeeeb2c8d9 Makes pipeline state dirty on Vulkan only when VertexInputLayout was changed.
This was SVN commit r28011.
2024-01-17 19:55:28 +00:00
vladislavbelov e3f46bb809 Adds compute shaders support and scaling with FSR.
Fixes #6842

Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D5218
This was SVN commit r28010.
2024-01-17 19:40:27 +00:00
vladislavbelov ffc4a56b9f Revert non-ASCII characters from source and configuration files introduced in 157c6af18e.
Fixes #6846

Differential Revision: https://code.wildfiregames.com/D5185
This was SVN commit r27965.
2023-12-03 00:30:12 +00:00
vladislavbelov a905932712 Moves single descriptor set binding management for Vulkan to a separate class.
Differential Revision: https://code.wildfiregames.com/D5163
This was SVN commit r27921.
2023-11-07 21:43:52 +00:00
vladislavbelov 5e583beb22 Fixes result of VkDescriptorSet creation forgotten in 6ef27d2ffe.
This was SVN commit r27887.
2023-10-13 18:32:22 +00:00
vladislavbelov 6ef27d2ffe Merges UID from different Vulkan device objects and unifies single type descriptor set creation.
Differential Revision: https://code.wildfiregames.com/D5140
This was SVN commit r27879.
2023-10-09 18:34:50 +00:00
vladislavbelov af13be489e Adds printing error names to Vulkan backend.
Differential Revision: https://code.wildfiregames.com/D5121
This was SVN commit r27839.
2023-09-13 17:36:52 +00:00
vladislavbelov 37b2f93a3c Adds texture checks for framebuffer attachments on Vulkan.
This was SVN commit r27817.
2023-08-28 17:53:41 +00:00
vladislavbelov 11e8f80b58 Fixes descriptor pool type for GetSingleTypePool.
This was SVN commit r27809.
2023-08-22 17:48:22 +00:00
vladislavbelov 23f1949e2a Handles VK_INCOMPLETE for vkGetSwapchainImagesKHR.
Differential Revision: https://code.wildfiregames.com/D5090
This was SVN commit r27797.
2023-08-15 17:27:23 +00:00
bb 157c6af18e Make the space in 0 A.D. non-breaking throughout the codebase.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful

Will add linter rule in seperate commit

Happy recompiling everyone!

Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
2023-07-27 20:54:46 +00:00
vladislavbelov 94e30ae08e Adds mipLODBias usage to Vulkan samplers.
This was SVN commit r27784.
2023-07-25 20:22:28 +00:00
vladislavbelov 9707931878 Fixes Vulkan hazards reported by validation layers.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D5024
This was SVN commit r27665.
2023-06-05 16:32:18 +00:00
vladislavbelov 1b948580c7 Adds color blend state to Vulkan pipeline description only if color attachments are present.
This was SVN commit r27661.
2023-06-01 17:48:23 +00:00
vladislavbelov 753949eb73 Enables PolygonMode for Vulkan only when allowed by fillModeNonSolid.
This was SVN commit r27660.
2023-06-01 17:12:27 +00:00
vladislavbelov cd1dccd59f Fixes the property name of available devices in a Vulkan report.
This was SVN commit r27579.
2023-03-14 20:21:53 +00:00
vladislavbelov 05c77b1819 Switches VMA to Vulkan 1.1.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4947
This was SVN commit r27573.
2023-03-11 19:12:54 +00:00
vladislavbelov 4355c8675b Implements framebuffer readback for Vulkan to allow screenshots.
Differential Revision: https://code.wildfiregames.com/D4940
This was SVN commit r27552.
2023-02-17 17:36:10 +00:00
vladislavbelov f8520e0275 Increases minImageCount for Vulkan swapchain only when there is a room for that.
This was SVN commit r27537.
2023-02-12 23:12:28 +00:00
vladislavbelov afd0f181e1 Fixes invalid swapchain size during a window minimize.
Differential Revision: https://code.wildfiregames.com/D4932
This was SVN commit r27536.
2023-02-12 22:58:36 +00:00
vladislavbelov 6126b518c4 Fixes overflow of inplace vertex and index Vulkan buffers.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4920
This was SVN commit r27522.
2023-02-01 22:09:25 +00:00
vladislavbelov 2339067737 Makes Vulkan device selection stop searching after a first suitable queue family.
This was SVN commit r27516.
2023-01-31 17:01:47 +00:00
vladislavbelov ac75966d67 Fixes descriptor set overwrite when multiple textures reference it with delayed deletion. Fixes #6717
Refs #6636

Comments By: phosit, Stan
Tested By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4916
This was SVN commit r27511.
2023-01-30 21:23:44 +00:00
vladislavbelov c17bffff1e Extends logs for Vulkan available device.
Differential Revision: https://code.wildfiregames.com/D4917
This was SVN commit r27510.
2023-01-30 21:16:47 +00:00
vladislavbelov c80bfc8732 Uses Vulkan physical device indices as the last comparison for device selection.
This was SVN commit r27503.
2023-01-29 23:06:42 +00:00
vladislavbelov e050a32eef Adds more features to report for Vulkan backend.
This was SVN commit r27502.
2023-01-29 22:10:52 +00:00
vladislavbelov cb5a0b6342 Prevents using R8G8B8_UNORM format for Vulkan textures as it can be supported as a native format only by workarounds.
This was SVN commit r27496.
2023-01-26 21:44:50 +00:00
vladislavbelov 840dbdd6d8 Creates image views for Vulkan textures only when needed.
This was SVN commit r27495.
2023-01-26 21:38:39 +00:00
vladislavbelov 6648b1b53c Enables non-solid fill for Vulkan to allow wireframe drawing.
This was SVN commit r27494.
2023-01-26 17:23:56 +00:00
vladislavbelov 18b2f6e184 Disables descriptor indexing on macOS.
This was SVN commit r27477.
2023-01-21 22:53:16 +00:00
vladislavbelov e8ec04fd53 Fixes querying descriptor indexing features and properties on some drivers.
This was SVN commit r27475.
2023-01-21 17:06:55 +00:00
vladislavbelov 64bc717a18 Hides some warnings for VMA.
Differential Revision: https://code.wildfiregames.com/D4889
This was SVN commit r27450.
2023-01-16 06:37:22 +00:00
vladislavbelov 0f130fb19c Removes unnecessary PreDraw from Vulkan CDeviceCommandContext.
This was SVN commit r27446.
2023-01-15 11:51:47 +00:00
vladislavbelov 32c43eaef8 Fixes StaticVector size type warning inside Vulkan CDeviceCommandContext.
This was SVN commit r27423.
2023-01-12 06:40:42 +00:00
vladislavbelov ec704d8179 Recreates Vulkan swapchain on window resize.
Tested By: hyperion
Differential Revision: https://code.wildfiregames.com/D4879
This was SVN commit r27422.
2023-01-12 06:35:59 +00:00
vladislavbelov ccda54a662 Ands new depth stencil format to support all combinations on Vulkan.
Tested By: hyperion, nwtour
Differential Revision: https://code.wildfiregames.com/D4878
This was SVN commit r27421.
2023-01-12 06:32:52 +00:00
vladislavbelov b5e8b4944d Fixes silhouettes on Vulkan by using VkStencilOpState.
This was SVN commit r27418.
2023-01-11 16:22:09 +00:00
vladislavbelov 7c84c23114 Adds Vulkan backend.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4876
This was SVN commit r27412.
2023-01-10 20:22:20 +00:00