Vladislav Belov
a7967d4ad9
Adds PBR output texture to PostProc
2026-04-29 19:25:14 +02:00
Vladislav Belov
25df2d8a02
Adds resolve PBR compute shader
...
Also fixes sky shader as it was writing negative values for -Y
direction.
2026-04-29 19:25:12 +02:00
Vladislav Belov
1a277269d3
Adds floating point textures to backends
...
R8G8B8A8_UNORM isn't enough to store HDR data as the scene can brighter
than 1.0 especially when looking into sun speculars.
2026-04-29 19:25:11 +02:00
Vladislav Belov
c4fb0eed3a
Adds slider to developer overlay
...
Also adds PBR config values. Refs #8535
2026-04-29 19:25:03 +02:00
Vladislav Belov
456e2a0b56
Removes dummy GL functions as replaced by core
2026-04-25 17:47:06 +02:00
Vladislav Belov
9b79fb3793
Fixes particle solid axes after aae957ec7b
2026-04-25 15:58:25 +02:00
Vladislav Belov
dd9124ae99
Fixes Vulkan uniform buffer size after 9e371824c2
...
32 was accidentally added during debugging.
2026-04-25 11:55:12 +02:00
Vladislav Belov
cb1fe07540
Removes GetDeviceCommandContext call from CFont
...
We need remove all occurences of GetDeviceCommandContext to be able to
add multithreading support in the future.
2026-04-10 23:53:23 +02:00
Vladislav Belov
68091177ac
Removes ArrayDeleter
2026-04-10 23:03:00 +02:00
Vladislav Belov
b52fbb7c62
Fixes particle shader compilation
...
The problem was only in case of USE_DESCRIPTOR_INDEXING. Because it adds
additional data for textures to the end of draw uniforms.
Fixes #8780
2026-03-22 00:53:30 +01:00
Vladislav Belov
975d1cb5fa
Makes default rain a bit more natural
2026-02-20 22:46:50 +01:00
Vladislav Belov
f1d62f348c
Adds simple samples for new particle features
2026-02-20 22:46:50 +01:00
Vladislav Belov
aae957ec7b
Adds fixed orientation to particles
...
New features:
* Relative position
* Relative and absolute fixed axis
* Local space
* Axis along velocity vector
2026-02-20 22:46:49 +01:00
Vladislav Belov
4dff44ac9b
Removes GL extensions for ARB backend
2026-02-20 22:07:40 +01:00
Vladislav Belov
6e9b94d3fc
Removes ARB backend from options
2026-02-20 22:07:39 +01:00
Vladislav Belov
145e1c116d
Removes ARB shaders
2026-02-20 22:07:39 +01:00
Vladislav Belov
0432b86de7
Removes ARB (legacy OpenGL) backend
...
ARB is a legacy backend which uses old assembly shaders. It makes
writing shaders more complex. According to the stats
https://feedback.wildfiregames.com we small amount of players with
ARB.
Fixes #8533
2026-02-20 22:07:38 +01:00
Vladislav Belov
2e0c34d479
Adds sort mode to particles
2026-02-09 21:29:42 +01:00
Vladislav Belov
70c15abadb
Fixes Atlas Terrain panel in dark mode
2026-02-06 15:21:15 +01:00
Vladislav Belov
cce01f4d6c
Fixes compilation after #8621
...
Fixes #8685
2026-01-25 16:29:16 +01:00
Vladislav Belov
df9c6f510c
Fixes ProfilerViewer when drawing empty cells
...
Currently CalculateStringSize can't handle empty string (see #8630 ).
As a simple fix for RC just avoid drawing empty texts.
Refs: #8630
2025-12-28 17:36:36 +01:00
Vladislav Belov
cea77c497c
Fixes TerrainTextureManager after refactoring
...
In fb98f5059a the manager was refactored
and the order of deinitialization was incorrectly changed.
2025-12-28 12:34:26 +01:00
Vladislav Belov
f43e98da09
Fixes uninitialized GPUSkinning in Atlas
...
Currently CRenderingOptions are initialized only once on the application
start. It means changed m_GPUSkinning wasn't reset on the switch to Atlas.
Fixes #8596
2025-12-27 21:02:48 +01:00
Vladislav Belov
c0ea17f06e
Replaces choosedDeviceIt by chosenDeviceIt
2025-11-11 01:51:16 +01:00
Vladislav Belov
485200342d
Disables Vulkan devices sorting by default
...
Currently we always choose the best device. But it's not always
desirable. A more safe approach is to use the default device (with
index 0). The only downside of that is if a user didn't adjust
settings then the game might run on an integrated GPU instead of a
discrete one. In the future it'll be solved by selecting GPU in
options: #8529
Fixes #8455
2025-11-11 01:50:58 +01:00
Vladislav Belov
c4bc6c9627
Adds an option to destroy Vulkan old swapchain before
...
Now it's possible to destroy the old swapchain before creating a new
one. It might make the swapchain creation a bit slower but with a
lower memory peak.
2025-11-10 00:06:52 +01:00
Vladislav Belov
8a64182ca2
Waits Vulkan device idle also on window resize
...
Fixes the case when a swapchain was recreated on resize rather than
by VK_ERROR_OUT_OF_DATE_KHR.
2025-11-10 00:06:51 +01:00
Vladislav Belov
de36c75023
Deletes Vulkan resources on swapchain recreation
...
The change tries to minimize a memory peak during a window resizing.
Refs #6864
2025-11-10 00:06:41 +01:00
Vladislav Belov
8b1b1d28f8
Fixes missing Vulkan application version
...
Missing after dc830ccf55 .
2025-11-09 12:58:16 +01:00
Vladislav Belov
cb58116270
Fixes lseek for big files on Windows
...
It was broken in ef69c37f66 , before that we were using _lseeki64.
Fixes #8459
2025-10-25 13:35:59 +02:00
Vladislav Belov
99bf50cd4e
Reduces boost usage for strings
2025-10-16 09:17:05 +02:00
Vladislav Belov
e8d9a8db67
Adds Vulkan timestamp limits to report
2025-10-16 00:36:02 +02:00
Vladislav Belov
1441c971f5
Uses SDL workaround only for GL
2025-10-15 00:52:25 +02:00
Vladislav Belov
f2752f7230
Removes ARBShader capability
2025-10-14 13:04:16 +02:00
Vladislav Belov
70893b6a32
Adds ARM Neon to report
2025-10-13 19:57:52 +02:00
Vladislav Belov
c99345a24b
Adds MapReader to cppcheck ignore.
2025-10-13 16:57:15 +02:00
Vladislav Belov
fb94cc704f
Makes loading terrain textures more smooth
2025-10-13 00:14:45 +02:00
Vladislav Belov
fb98f5059a
Refactors TerrainTextureManager
2025-10-13 00:14:43 +02:00
Vladislav Belov
5bbb2c0b76
Makes parsing entities more smooth
2025-10-13 00:14:29 +02:00
Vladislav Belov
893f192eaa
Makes TextRenderer allocates using LinearAllocator
...
Also replaces DynamicArena for model and terrain rendering by
LinearAllocator.
2025-10-12 00:53:12 +02:00
Vladislav Belov
e4de94415e
Removes unused pointer from the allocate function
...
Also allows to compare ProxyAllocator. For example, it might be
required for containers to compare iterators.
2025-10-12 00:53:10 +02:00
Vladislav Belov
53ff6f0d50
Adds LinearAllocator for faster allocations.
...
LinearAllocator (also known as bump allocator) allows to reuse the
same memory across the frame for short lifetime allocations.
2025-10-12 00:53:08 +02:00
Vladislav Belov
bedb6129f2
Reduces string allocations in GUI and maths.
2025-10-11 19:44:22 +02:00
Vladislav Belov
3ffb5ec5a0
Removes USE_FOG define and switches to a shader parameter.
...
Refs #8385
2025-10-11 08:11:35 +02:00
Vladislav Belov
8f4aa8ddbd
Adds a script to modify rules and tests to it.
2025-10-08 13:56:48 +02:00
Vladislav Belov
199f4cb666
Fixes uninitialized water textures.
...
Fixes #8052
2025-10-05 14:13:49 +02:00
Vladislav Belov
e1d5e92c2a
Restores minimap entities size and adds options.
...
Restores minimap entities size to size they have in A25.
Adds minimap options.
Fixes #6782 .
2025-10-05 12:04:21 +02:00
Vladislav Belov
e63c80c613
Reduces string allocations in paths.
2025-10-05 01:31:27 +02:00
Vladislav Belov
13b988cecb
Removes shader effect duplications.
2025-09-29 12:04:53 +02:00
Vladislav Belov
275f6631c4
Allows to use the same technique for multiple shaders.
2025-09-29 12:04:42 +02:00
Vladislav Belov
9884317d33
Fixes non-PCH builds after e8a5103f8c.
2025-09-18 13:26:20 +02:00
Vladislav Belov
e8a5103f8c
Fixes #8057 by properly initializing atlas texture.
...
Fixes #8057
Fixes #8184
Fixes #8345
2025-09-17 14:31:16 +02:00
Vladislav Belov
3eca24ed11
Fixes CC for fonts.
2025-09-17 12:32:12 +02:00
Vladislav Belov
e2d9450d0d
Revert "Font: make atlas uploads queue-aware on Vulkan"
...
This reverts commit 256dff7fd4 .
2025-09-17 12:32:08 +02:00
Vladislav Belov
7275f590e9
Fixes wxWidgets on 64bits.
2025-04-26 20:53:24 +02:00
Vladislav Belov
d049a09f81
Adds libraries/win64 to .gitignore.
2025-04-26 20:53:22 +02:00
Vladislav Belov
f2fcc12859
Restores iconv dependency for collada.
2025-04-26 20:53:20 +02:00
Vladislav Belov
c46593149b
Adds amd64 support to get-windows-libs.
2025-04-26 20:53:18 +02:00
Vladislav Belov
479cdbfc82
Removes unapplied arch_suffix for now.
2025-04-26 20:53:16 +02:00
Vladislav Belov
b0160d0ece
Adds 64bits support.
2025-04-26 20:53:09 +02:00
Vladislav Belov
2264807ad0
Fixes runtime switch of the GPU skinning.
...
Fixes #7572 , #7630 .
2025-04-25 20:13:59 +02:00
Vladislav Belov
0180faa1f2
Adds fixed frame frequency.
...
Adds possibility to control the frame time by setting the frame
frequency by a command line argument (`-fixed-frame-frequency`). It's
mostly useful for a trailer recording and graphics debugging.
2025-04-25 19:15:57 +02:00
Vladislav Belov
0bf3ff5ad6
Reduce allocations for GUI and Hotkeys.
...
It allows to reduce the number of allocations per-frame for GUI and
during initialization for Hotkeys.
2025-04-24 15:11:22 +02:00
Vladislav Belov
bdd3cac051
Reduces allocations for ShaderDefines.
...
It allows to reduce the number of allocations per-frame for
ShaderDefines. For example, on Acropolis Bay it goes down from
2.7k to 0.9k for the whole map view.
We don't really need std::vector for it. Because materials and
particularly shaders shouldn't have so many parameters.
2025-04-24 01:05:34 +02:00
Vladislav Belov
9306aae297
Fixes PS::StaticVector insert and adds more tests
...
There was an incorrect mutable iterator construction missed in
ca242239f1 .
2025-04-20 17:13:40 +02:00
Vladislav Belov
e65879bdbf
Fixes non-PCH compilation after 0b33921c06.
2025-04-17 23:26:23 +02:00
Vladislav Belov
0b33921c06
Removes GL code from the common GPU profiler.
2025-04-16 22:38:34 +02:00
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
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
cf9bc03ee9
Adds a temporary hack for grass lighting.
...
The hack uses per-vertex lighting for translucent objects. In the
future we need to use a separate shader.
2025-01-09 01:48:56 +01:00
Vladislav Belov
8ee48a164a
Fixes missing SPIR-V shader combinations.
...
We have multiple renderer backends for a while. So we can't rely on
a single CONFIG_GLES2 macro for disabling features.
2025-01-07 02:49:38 +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
Vladislav Belov
c7ae248b77
Removes duplicated manifest for Windows.
2024-12-16 23:07:37 +01:00
Vladislav Belov
239720fd22
Adds @vladislavbelov as a codeowner to related parts.
2024-12-12 00:19:04 +01:00
Vladislav Belov
e27909e603
Fixes SPIR-V compilation for compute_skinning shader.
...
Currently we don't mix storage images and storage buffers in the same
shader. Also we don't sample textures when we use storage buffers.
In the future we need to avoid shifting descriptor sets.
2024-12-11 01:18:05 +01:00
Vladislav Belov
38a0a0cf2e
Adds GPU skinning to the options page.
2024-12-09 22:47:20 +01:00
Vladislav Belov
5d4df9cbe4
Enables GPU skinning by default.
2024-12-09 22:47:18 +01:00
Vladislav Belov
de1257c8da
Adds GPU skinning support via compute shaders.
...
We use a shader with 64 bones by default to consume less uniform memory.
But if we meet bigger skeletons we batch and handle them afterwards.
In the future we need to sort the input models to have less changes for
bound buffers. Also we might want to skin up to 4 models per a single
dispatch.
2024-12-09 22:47:17 +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
4fb9a20c37
Removes the old code from the model_* shaders.
2024-12-09 22:47:14 +01:00
Vladislav Belov
6b18e58017
Adds a compute shader to perform a GPU skinning.
...
The main logic is taken from the experimental code in the model_common
shader but rewritten to use storage buffers as inputs.
2024-12-09 22:47:07 +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
e765a2c4ba
Moves tests for generate_rules and merge_rules to a separate folder.
2024-12-05 17:25:54 +01:00
Vladislav Belov
dbeb11a36b
Adds avoiding non-default render debug modes for generating rules of SPIR-V shaders.
2024-12-05 17:25:52 +01:00
Vladislav Belov
7801c40b40
Adds order test to merge_rules.
2024-12-05 17:25:50 +01:00
Vladislav Belov
53de281311
Adds +x to tools.
2024-12-05 17:25:48 +01:00
Vladislav Belov
d0d6113fc4
Fixes linter notes.
2024-12-05 17:25:47 +01:00
Vladislav Belov
b12cc27bef
Adds tools for SPIR-V rules.
2024-12-05 17:21:19 +01:00
Vladislav Belov
9094c3adb0
Batches update and upload passes for model renderers.
2024-11-08 13:57:57 +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
Vladislav Belov
ff923e5d6a
Adds a patch to automatically apply the macOS fix to glad after its generation.
2024-11-03 20:26:13 +01:00