Commit Graph

164 Commits

Author SHA1 Message Date
Vladislav Belov 6ef6a87287 Adds queries implementation to renderer backends. 2025-04-16 22:38:32 +02:00
Vladislav Belov 0e7d193fcc Adds an interface for queries. 2025-04-16 22:38:24 +02:00
Vladislav Belov 9c560c36af Removes ARBShadersShadow IDevice capability.
According to our stats `GL_ARB_fragment_program_shadow` is supported
by all our GL users. Also we're going to remove OpenGL ARB in A29. So
I remove ARBShadersShadow completely.
2025-04-12 23:14:28 +02:00
Vladislav Belov fa3fb5d064 Allows compute shaders for GL only since 4.3.
It seems current checks for GL 4.2 aren't enough so just disable
compute shaders for GL 4.2. Fixes #7734.
2025-04-12 16:56:18 +02:00
Vladislav Belov bce6e2c238 Fixes out of bounds during GL buffer binding.
There was an out of bounds access during binding a uniform buffer on
GL. Fixes #7567, #7598.
2025-04-12 16:27:52 +02:00
Dunedan 8482f25800 Fix a bunch of spelling mistakes
This fixes a bunch of spelling mistakes found in user facing strings.

Fixes #7716
2025-04-11 06:24:32 +02:00
phosit 1a8757660f Get config values without using return parameters
Many temporaries can be removed.
2025-04-09 12:51:21 +02:00
phosit 473f8ca72e Remove FALLTHROUGH on empty cases
`#include "lib/code_annotation.h"` can be removed in some places.
2025-01-29 19:34:12 +01:00
Vladislav Belov a7ead4cf4c Disables compute shaders for GL ARB backend. 2025-01-28 18:56:15 +01:00
Vladislav Belov 635a268dd9 Disables GL storage buffers on Mesa.
This is a workaround to avoid disabling GL storage buffers completely.
Because they might not work or might lead to a decreased performance.
We need to investigate that further when we have a local reproduce.
2025-01-28 01:40:47 +01:00
Vladislav Belov 0467d27b07 Fixes slow-path texture conversion on RPI4.
RPI4 returns `false` for `textureCompressionBC` because it doesn't
support formats above BC3. As the Vulkan specification requires to
support all BC formats to have `true` for `textureCompressionBC`.
2025-01-05 00:27:02 +01:00
Vladislav Belov 54701868da Fixes GLES compilation. 2025-01-04 18:22:23 +01:00
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
Ralph Sennhauser ead62bba78 Update trac links with gitea links
This replaces all links pointing to trac with their corresponding links
to gitea. Also replace http with https while at it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-10 11:29:48 +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
phosit 256152df6d Add CXeromycesEngine
This way the destructor can be used for clean up and `Singleton` can be
used.
2024-11-17 18:03:49 +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 eecc5a8fea Updates the list of GL extensions for glad. 2024-11-03 20:35:28 +01:00
Stan 361a32a7e5 Fix parameter typo in GL backend 2024-11-01 13:30:12 +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
Stan 09e42692bb Fix GLES 2.0 build after the compute shader addition 2024-10-08 08:13:33 +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 c78ad51057 Fixes incorrect case of GLX extensions. Fixes #6547
Patch By: xone47
Differential Revision: https://code.wildfiregames.com/D5160
This was SVN commit r27920.
2023-11-07 21:28:59 +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 5807e2982f Makes GL ShaderProgram stage independent.
Differential Revision: https://code.wildfiregames.com/D5069
This was SVN commit r27761.
2023-07-17 22:07:13 +00:00
vladislavbelov a9fc21fae7 Fixes printing a log of a GL shader compilation following b193633e59.
This was SVN commit r27745.
2023-06-30 10:02:24 +00:00
vladislavbelov b193633e59 Moves GLSL compiling function out of CShaderProgram as it's independent.
This was SVN commit r27743.
2023-06-27 21:27:56 +00:00
vladislavbelov 3d071e4649 Removes OpenGL driver DLL version from reports on Windows.
Differential Revision: https://code.wildfiregames.com/D5052
This was SVN commit r27718.
2023-06-18 16:29:13 +00:00
vladislavbelov 44611294de Fixes Sampler::Desc comment about using BorderColor.
This was SVN commit r27694.
2023-06-14 07:14:31 +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