Vladislav Belov
92ee2dba9e
Removes unused OGL legacy
2026-07-09 22:53:30 +02:00
Vladislav Belov
11f78e5c1a
Uses GLAD to get GL version
2026-07-08 20:52:23 +02:00
vyordan
ec8b420abc
Move Script* classes to Script namespace
...
- Rename ScriptEngine, ScriptContext, ScriptInterface, ScriptRequest to
Script::Engine, Script::Context, Script::Interface, Script::Request
- Remove 'Script' prefix from filenames:
ScriptContext.* → Context.*
ScriptInterface.* → Interface.*
ScriptRequest.* → Request.*
ScriptEngine.* → Engine.*
ScriptConversions.* → Conversions.*
ScriptExceptions.* → Exceptions.*
ScriptForward.* → ForwardDeclarations.*
ScriptStats.* → Stats.*
- Update all includes, forward declarations, and friend classes
- Use namespace Script { ... } in .cpp definitions to avoid repetitive
Script:: prefix (keeping global callbacks outside)
- Rename internal implementation structs:
ScriptInterface_impl → Interface_impl
ScriptFunction → Function
- Update copyright year to 2026 in all touched files
- Suppress pre-existing cppcheck warnings (uninitvar, nullPointer, unknown
macro) by adding them to suppressions-list.txt (these are not caused
by this refactor)
Fixes #7516
2026-06-20 17:43:00 +02:00
Vladislav Belov
cf4a4d8fd5
Adds SwapChain as an explicit DeviceObject
...
It allows us more flexibility on how we control swapchain. That includes
toggling V-Sync in real time.
2026-06-08 18:26:58 +02:00
Vladislav Belov
2e87f6b5aa
Adds renderer backend-specific statistics
...
Different backend have different metrics to watch and debug. So we need
a simple way to collect that.
2026-05-10 19:26:16 +02: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
e8a5103f8c
Fixes #8057 by properly initializing atlas texture.
...
Fixes #8057
Fixes #8184
Fixes #8345
2025-09-17 14:31:16 +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
Ralph Sennhauser
2cedb48de2
Remove custom span and use std::span
...
With C++20 the custom container PS:span, which was a backport of
std::span is no longer needed.
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2025-08-24 11:09:57 +02:00
Ralph Sennhauser
f9e1e742bf
Fix includes in source/renderer
...
Make include-what-you-use happy with files in source/renderer and
fix what needs to be fixed.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2025-07-27 16:07:14 +02:00
trompetin17
256dff7fd4
Font: make atlas uploads queue-aware on Vulkan
...
Goal
----
Avoid corrupting the dynamic font-atlas on Vulkan by blocking any
re-uploads until the command buffer that created / last updated the
texture has actually been submitted.
What changed
------------
* **Queue-aware textures**
* Added `queueSubmitAware` flag to `IDevice::CreateTexture*` APIs.
* `Vulkan::CTexture` now stores two booleans:
- `m_QueueSubmitAware` – opt-in per texture.
- `m_PendingQueueSubmit` – set to *true* the moment an upload
is recorded, cleared once the submit scheduler has flushed.
* `CRingCommandContext::ScheduleUpload` marks the texture as
pending (`SetPendingQueueSubmit(true)`).
* **Device-side watcher**
* `Vulkan::CDevice` keeps a
`m_TextureUploadWatcherQueue`. Each frame it checks textures that
were uploaded ≥ `NUMBER_OF_FRAMES_IN_FLIGHT` frames ago and
clears their pending flag.
* New helpers
`ScheduleTextureUploadWatch `,
`ProcessTextureUploadWatchQueue()`.
* **Font code**
* Atlas texture is now created with
`queueSubmitAware = true`.
* `CFont::UploadTextureAtlasToGPU()` early-outs when
`IsPendingQueueSubmit()` returns *true*, instead of tracking a
submit-handle or the manual `m_IsLoadingTextureToGPU` flag
(removed).
Why this is better
------------------
The logic to wait for a flush is localised inside the rendering
backend, so `CFont` only needs to ask *“is my texture busy?”*.
This removes the fragile submit-handle bookkeeping and works even if
the scheduler issues multiple submits per frame in future.
Result
------
Atlas uploads are deferred until the previous submit completes,
eliminating the intermittent glyph corruption on the Vulkan backend
while leaving GL and the dummy backend unchanged.
2025-07-09 13:09:46 -05:00
Ralph Sennhauser
5e4b49f65f
Fix some includes in source/renderer
...
Make include-what-you-use happy with some files in source/renderer and
fix what needs to be fixed.
Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com >
2025-07-07 17:45:54 +02:00
Vladislav Belov
6ef6a87287
Adds queries implementation to renderer backends.
2025-04-16 22:38:32 +02: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
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
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
7dca5d23ad
Adds preferred depth stencil format to renderer backend.
...
This was SVN commit r27379.
2023-01-06 23:07:50 +00:00
vladislavbelov
90f064ff03
Switches from per draw vertex attribute format to precompiled vertex input layout.
...
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4852
This was SVN commit r27363.
2023-01-06 00:39:25 +00:00
vladislavbelov
4ed41d4a9a
Switches from pipeline state descriptions to pipeline states.
...
Tested By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4850
This was SVN commit r27328.
2022-12-31 18:29:44 +00:00
vladislavbelov
c0e888e2af
Removes SetViewport from CRenderer.
...
Differential Revision: https://code.wildfiregames.com/D4849
This was SVN commit r27313.
2022-12-29 06:53:06 +00:00
vladislavbelov
29368cf776
Adds framebuffer attachment load and store operations.
...
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4830
This was SVN commit r27256.
2022-11-26 21:55:17 +00:00
vladislavbelov
3a4c8342a0
Makes AcquireNextBackbuffer returns true in case of successful backbuffer acquirement.
...
This was SVN commit r27184.
2022-10-30 00:38:45 +00:00
vladislavbelov
968fd50fb0
Moves Backend enum from CVideoMode to backends.
...
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4809
This was SVN commit r27173.
2022-10-25 22:45:54 +00:00
vladislavbelov
64bd81ae6b
Adds usage flags to backend textures.
...
This was SVN commit r27152.
2022-10-12 23:19:27 +00:00
vladislavbelov
8ae3a2bfd6
Adds AcquireNextBackbuffer to CDevice to have something to present.
...
This was SVN commit r27148.
2022-10-11 22:48:07 +00:00
vladislavbelov
095838da0a
Fixes A8 framebuffer format used for LOS interpolation and enables smooth LOS by default.
...
Tested By: Langbart, mastoras
Differential Revision: https://code.wildfiregames.com/D4654
This was SVN commit r26906.
2022-05-26 16:36:57 +00:00
vladislavbelov
62e589ab76
Adds renderer backend interface and dummy backend.
...
Comments By: phosit, Stan
Tested By: Langbart, phosit
Differential Revision: https://code.wildfiregames.com/D4636
This was SVN commit r26858.
2022-05-08 22:02:46 +00:00
vladislavbelov
04bd96cee0
Moves uniform and texture binding to CDeviceCommandContext.
...
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4631
This was SVN commit r26848.
2022-05-02 20:57:22 +00:00
vladislavbelov
ad2068dae0
Uses sequential numbering of GL vertex attributes for modern hardware. Refs #3054
...
Differential Revision: https://code.wildfiregames.com/D4601
This was SVN commit r26781.
2022-04-12 16:13:47 +00:00
vladislavbelov
b4253d48cb
Moves CShaderProgram to backend and handling via CDeviceCommandContext.
...
Differential Revision: https://code.wildfiregames.com/D4548
This was SVN commit r26652.
2022-03-14 22:16:14 +00:00
vladislavbelov
3399791677
Adds renderer backend vertex formats and normalizes texture formats.
...
This was SVN commit r26588.
2022-03-06 22:14:57 +00:00
vladislavbelov
36833d1df2
Moves max texture size to backend device capabilities.
...
This was SVN commit r26409.
2022-02-18 23:17:48 +00:00
vladislavbelov
5eb21cbfbf
Adds debug labels to backend framebuffers.
...
This was SVN commit r26408.
2022-02-18 23:00:11 +00:00
vladislavbelov
b949f19875
Moves GL debug information toggle to run-time to make it easier to test after release.
...
This was SVN commit r26407.
2022-02-18 22:38:45 +00:00
vladislavbelov
cff79b421a
Moves GL vertex and index buffer management to CDeviceCommandContext.
...
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4493
This was SVN commit r26406.
2022-02-18 17:33:12 +00:00
vladislavbelov
aaf378f041
Moves backend capabilities to CDevice.
...
This was SVN commit r26366.
2022-02-13 21:46:03 +00:00
vladislavbelov
4de89c3db1
Moves texture management to CDeviceCommandContext, adds quality options.
...
Comments By: nwtour, Stan
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4488
This was SVN commit r26365.
2022-02-13 19:30:28 +00:00
vladislavbelov
a17fad722a
Moves framebuffer management to CDeviceCommandContext.
...
Tested By: Langbart, nwtour
Differential Revision: https://code.wildfiregames.com/D4475
This was SVN commit r26302.
2022-02-05 16:59:23 +00:00
vladislavbelov
912202ff0c
Uses core GL functions for GLSL shaders.
...
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4416
This was SVN commit r26175.
2022-01-06 11:41:04 +00:00
vladislavbelov
a32ab00f4d
Moves backbuffer swap and error check to GL device.
...
This was SVN commit r26092.
2021-12-21 17:02:04 +00:00
vladislavbelov
3b9b7cd605
Moves GL report from HWDetect to GL device.
...
Tested By: Freagarach, Stan
Differential Revision: https://code.wildfiregames.com/D4376
This was SVN commit r26081.
2021-12-16 06:36:46 +00:00
vladislavbelov
eb004e5c98
Uses forward declaration for SDL in GL device.
...
This was SVN commit r26078.
2021-12-15 10:50:31 +00:00
vladislavbelov
89c181ded1
Encapsulates information about GL inside device.
...
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4375
This was SVN commit r26072.
2021-12-15 06:43:41 +00:00