Henrik Rydgård and Claude Opus 5
70095e458b
thin3d: add sub-rectangle texture updates, use them for imgui fonts
...
imgui 1.92 hands the backend a list of dirty rectangles when its font atlas
grows, but thin3d could only replace a whole mip level, so every new glyph
re-uploaded the entire atlas.
Adds DrawContext::UpdateTextureRegions, taking a batch of regions so each
backend can submit them together:
- Vulkan: packs the regions into the push pool and issues a single
vkCmdCopyBufferToImage from the init command buffer, transitioning only
the level being written.
- OpenGL: new TEXTURE_SUBIMAGE init step. The existing sub-image path is a
render command needing an active render pass and a texture slot, which
doesn't fit here. Rows are packed caller-side since GLES2 lacks
GL_UNPACK_ROW_LENGTH.
- D3D11: UpdateSubresource with a box, no staging texture needed.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected] >
2026-09-12 13:16:17 -06:00
Henrik Rydgård
10a5d2f810
OpenGL: Improve checks for fragment shader float precision.
...
Fixes #22001 (although there may be other artifacts).
2026-07-30 10:03:15 +02:00
Henrik Rydgård
5f7281bd8e
Remove old vestiges of geometry shader support
2026-07-08 18:25:08 +02:00
Henrik Rydgård
ebc564a465
Centralize handling of another GPU flag
2026-06-27 13:50:03 +02:00
Henrik Rydgård
ea8a648737
Refactor UI shader presets, prepare for some updates to the ImGe debugger
2026-06-14 11:08:56 +02:00
jasaaved
5e25118043
Fix the exclusive fullscreen config guard and switching the setting on/off
...
Previously the exclusive fullscreen option in the settings screen was
guarded by a compile-time #ifdef VK_EXT_full_screen_exclusive, which is
always true on Windows. It now uses a runtime fullScreenExclusiveSupported
cap derived from whether the extension is actually enabled by the driver.
Switching between borderless and exclusive fullscreen currently requires a
restart. This is because once DWM has claimed the window (any frames
presented), ALLOWED_EXT cannot re-engage exclusive mode on an existing
swapchain. A new process gets a fresh HWND that DWM has not claimed yet,
so ALLOWED_EXT works correctly at startup.
The proper fix is to use VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
with vkAcquireFullScreenExclusiveModeEXT/vkReleaseFullScreenExclusiveModeEXT
to explicitly negotiate exclusive mode with DWM mid-session without needing
a restart. To be done in a follow-up.
2026-06-03 17:15:13 -07:00
Henrik Rydgård
f60e27a9b7
Just some refactoring of the GPUStatistics struct, and more use of StringWriter
2026-05-29 14:40:31 +02:00
Henrik Rydgård
dd125b2e4d
Delete obsolete (and non-working) support for GPUs without non-pow-2 textures.
2026-05-24 14:15:34 +02:00
Henrik Rydgård
4a420c95c2
Remove some redundant device caps, show clip/cull/depth-clamp in system info
2026-05-21 11:59:26 +02:00
Henrik Rydgård
f12472aede
Give a name to an old mali GPU bug
2026-01-22 13:32:43 +01:00
Henrik Rydgård
1efcaafd5a
Add query for max texture size
2025-11-15 15:26:02 +01:00
Henrik Rydgård
042cf87248
Rework the present mode settings, refactor.
2025-10-20 21:28:38 +02:00
Henrik Rydgård
82bba691dd
Unexpose the specialized Vulkan presentation modes for now
2025-10-20 19:53:21 +02:00
Henrik Rydgård
176c55da25
Remove unused "interval" concept from presentation mode
2025-10-19 18:18:06 +02:00
Henrik Rydgård
b082e94edb
Initial work on using premultiplied alpha in the UI
2025-10-16 11:07:05 +02:00
Henrik Rydgård
14016f84df
Comments
2025-09-04 11:24:43 +02:00
Henrik Rydgård
2cf0ffea73
Allow choosing the frame presentation mode in detail in Vulkan mode
2025-08-21 01:01:16 +02:00
Henrik Rydgård
dae0d11809
Remove some D3D9 leftovers
2025-06-10 16:59:14 +02:00
Henrik Rydgård
6cfea96e58
Remove D3D9 support, to make future changes easier
2025-06-10 15:07:16 +02:00
Henrik Rydgård
531842f577
Add font cache stats to "internals" screen
2025-04-09 12:40:10 +02:00
Henrik Rydgård
58adb379ea
GE debugger improvements
2024-12-20 20:31:58 +01:00
Henrik Rydgård
111d0c872d
Global rename of FBChannel to Aspect, also make it a class enum
2024-12-15 22:24:05 +01:00
Henrik Rydgård
27122a9e64
Work on previews
2024-12-10 22:09:51 +01:00
Henrik Rydgård
e4adc112ff
ImDebugger: Add a basic texture browser
2024-11-29 19:30:38 +01:00
Henrik Rydgård
6763c13f88
ImGui: Finish implementing pipeline switching for all backends
2024-11-27 01:19:05 +01:00
Henrik Rydgård
09779e0f44
ImGui drawing: Allow varying the pipeline when binding textures
2024-11-26 19:59:09 +01:00
Henrik Rydgård
e82b7f788e
Implement texture binding in draw batches. Framebuffer viewer now works in Vulkan.
2024-11-26 09:22:35 +01:00
Henrik Rydgård
e66516eb50
ImDebugger: Add ability to rename function symbols
2024-11-23 23:23:52 +01:00
Henrik Rydgård
194b2ce076
Ge Debugger: Add a framebuffer listing, along with some plumbing
2024-11-23 23:23:48 +01:00
Henrik Rydgård
659af60613
Fix ImDebugger rendering on D3D9 as well (although not very optimally).
2024-11-21 15:48:18 +01:00
Henrik Rydgård
472103d460
Back out the 32-bit index buffer support. Not actually needed for ImGui.
2024-11-04 23:14:39 +01:00
Henrik Rydgård
17a7c80cb1
Get it rendering on Vulkan and D3D11 (OpenGL is bugged though)
2024-11-04 23:14:39 +01:00
Henrik Rydgård
d37c04079d
Change the 2D matrix generation to query the coordinate convention from the draw context
2024-11-04 23:14:23 +01:00
Henrik Rydgård
8f8598c347
thin3d: Add partial support for 32-bit index buffers. Add DrawIndexedUP.
2024-11-04 23:14:22 +01:00
Henrik Rydgård
4d6905672e
Bunch more linting
2024-10-10 11:57:10 +02:00
Henrik Rydgård
8c8b34aac4
Vulkan: Separate the instance and device API versions, for extension loading purposes
2024-09-25 18:38:31 +02:00
Henrik Rydgård
b2d9ac54dd
Make InfoField an "enum class", extract function FormatAPIVersion
2024-09-25 16:34:33 +02:00
Henrik Rydgård
eccd7f3767
More const/static-ification
2024-09-17 15:22:37 +02:00
Henrik Rydgård
665f03ff62
Add provoking vertex to caps, flip the flag around
2024-07-17 14:40:52 +02:00
Henrik Rydgård
c38ce2a5be
Fix an issue when bringin up the dev menu with transparent background disabled
2024-05-11 21:28:26 +02:00
Henrik Rydgård
c5791764d8
Make the i18n T function use std::string_view
...
Buildfixes, crashfixes
One more
Android buildfix
Buildfix Qt
2024-02-12 18:44:39 +01:00
Henrik Rydgård
6ce4933db8
Split the discard-stencil-bug flag into separate flags for Adreno and Mali
2024-02-02 11:11:31 +01:00
Henrik Rydgård
c5191cad4c
Disable 16-bit textures on PowerVR.
...
Fixes #18780
2024-01-29 15:48:27 +01:00
Henrik Rydgård
51097279c9
Vulkan: Fix race condition when changing MSAA mode with the game running "behind" the menu.
2024-01-23 11:28:45 +01:00
Henrik Rydgård
74f5be02a1
GameInfo: Try to reduce the locking a bit.
2024-01-18 22:52:56 +01:00
Henrik Rydgård
cbb4236cd8
Vulkan: Attempt to fix some more shutdown race conditions, simplify.
2024-01-17 14:49:49 +01:00
Henrik Rydgård
d0faf250b5
Remove unused async compute pipeline creation
2024-01-15 12:38:59 +01:00
Henrik Rydgård
ed4941f416
Remove Vulkan (and Windows.h) include from DevScreens.cpp
2023-12-14 19:01:18 +01:00
Henrik Rydgård
4c3f82da55
Remove ManagedTexture from HttpImageView
2023-12-12 22:44:03 +01:00
Henrik Rydgård
e2480b9fa0
D3D9: Apply a half-pixel offset in 2D shader draws. Makes Tantalus games less broken (but still broken)
2023-12-05 14:09:14 +01:00