Henrik Rydgård
6e073bb53f
More chat code cleanup. Make the virtual keyboard in TextInputPopup scrollable.
2026-03-31 16:22:24 -06:00
Henrik Rydgård
e0b75ff7e6
Fix mouse focus for TextEdit
2026-03-31 15:33:51 -06:00
Henrik Rydgård
1f65b326a8
Make sure touch-gamepad components can't be focused by accident
2026-03-31 14:58:56 -06:00
Henrik Rydgård
a94faabcd0
Correct focus issue with TextEdit boxes
2026-03-31 14:35:17 -06:00
Henrik Rydgård
6d49f9f260
Add a send button to the chat menu, increase padding
2026-03-31 14:25:15 -06:00
Henrik Rydgård
94f85ed689
TextEdit: Add internal padding to make it look nicer.
2026-03-31 14:13:42 -06:00
Henrik Rydgård
02a624075a
Android: Make the "Auto" rotation mode override user rotation lock (SENSOR mode)
2026-03-31 10:43:27 -06:00
Henrik Rydgård
de228bd96c
Merge pull request #21496 from hrydgard/server-status-live
...
WIP: Add live server status for servers supporting data.json
2026-03-30 13:08:11 -06:00
Henrik Rydgård
cfc5d74602
Some progress with server status UI
2026-03-30 11:34:19 -06:00
Henrik Rydgård
5c082f8a2a
Merge pull request #21499 from lrzlin/loong-handler
...
loongarch: Implement excepetion handler and JIT bug fix
2026-03-30 11:12:15 -06:00
Lin Runze
53338cf029
loongarch: Implement excepetion handler and JIT bug fix
2026-03-30 18:35:54 +08:00
Henrik Rydgård
0a0b4b9d95
Make opening 7z file android-compatible. Assorted buildfixes.
2026-03-27 14:34:18 -06:00
Henrik Rydgård
288b72cb16
Add 7z streaming support, so we can have a progress bar
2026-03-27 14:34:18 -06:00
Henrik Rydgård
5e0a9a0113
Add really simple 7z extraction, using the 7z VFS
2026-03-27 14:34:18 -06:00
Henrik Rydgård
0c077acc74
Do some include untangling, to limit the spread of the Windows.h include from SevenZipFileReader.h
2026-03-27 14:34:18 -06:00
Henrik Rydgård
8380e13f10
Add AI-generated SevenZipFileReader
2026-03-27 14:34:18 -06:00
Henrik Rydgård
116c31e7d9
Add the LZMA sdk
2026-03-27 14:34:15 -06:00
Henrik Rydgård
3083d37728
Add support for the raintegration menu rebuild event
2026-03-26 17:18:12 -06:00
Henrik Rydgård
0153761de0
IniFile: Disallow section headers from starting at other line offsets than 0.
...
See #21479
2026-03-26 13:04:23 -06:00
Henrik Rydgård
fd40faeea0
Merge pull request #21475 from GermanAizek/remove-thread-limit
...
threadmanager: remove detect cpu max 16 threads for compute
2026-03-23 10:12:38 -06:00
Herman Semenoff
fc0812061e
threadmanager: remove detect cpu max 16 threads for compute
...
Removing restrictions greatly improves performance software rendering on multi-core systems above 16 threads.
2026-03-23 02:56:46 +03:00
Chris Healy
49bfbd49cd
OpenGL: Integrate GLProfiler into render pass execution
...
Integrates the GLProfiler into GLQueueRunner to provide GPU timestamp
profiling for OpenGL render passes, similar to the Vulkan backend.
Profiled operations:
- RenderPass (with tag name for identification)
- Copy operations
- Blit operations
- Readback operations
- ReadbackImage operations
The profiler is initialized in CreateDeviceObjects() and shutdown in
DestroyDeviceObjects(). Timing results are logged each frame when the
GPU profile debug overlay is enabled.
Signed-off-by: Chris Healy <cphealy@gmail.com >
2026-03-18 09:52:43 -07:00
Chris Healy
ba59170b0b
OpenGL: Add GLProfiler for GPU timestamp profiling
...
Adds a new GLProfiler class for GPU-side timestamp profiling, similar to
VulkanProfiler. Uses GL_EXT_disjoint_timer_query (GLES) or GL_ARB_timer_query
(desktop GL).
Features:
- Scoped Begin()/End() profiling with printf-style naming
- Automatic GPU disjoint detection (frequency changes invalidate results)
- Millisecond timing output via INFO_LOG
- Pre-allocated query pool (1024 queries max per frame)
- Nested scope support with indented output
Signed-off-by: Chris Healy <cphealy@gmail.com >
2026-03-18 09:52:43 -07:00
Chris Healy
856e6ed49b
OpenGL: Add timer query extension detection
...
Add detection for GL_EXT_disjoint_timer_query (OpenGL ES) and
GL_ARB_timer_query (desktop GL) extensions. These extensions provide
GPU timestamp queries for profiling render pass durations.
Also adds function pointer declarations for glQueryCounter,
glGetQueryObjecti64v, and glGetQueryObjectui64v.
Signed-off-by: Chris Healy <cphealy@gmail.com >
2026-03-18 09:52:42 -07:00
Henrik Rydgård
836bbaf4c8
Merge pull request #21398 from chealy/fix-panfrost-gles3
...
OpenGL: Fix GLES3 detection for Mesa/Panfrost Mali drivers
2026-03-17 22:43:38 +01:00
Henrik Rydgård
30c717cb4a
Merge pull request #21386 from chealy/gpu-shader-optimizations
...
GPU: Shader optimizations using inversesqrt and dead code removal
2026-03-17 22:31:06 +01:00
Henrik Rydgård
3352df3ae7
Not super pretty, but implements keyboard navigation for the adhoc server list
2026-03-15 14:43:28 +01:00
Henrik Rydgård
2cc8e87389
WASAPI: Improve error handling and sysinfo display
2026-03-14 23:50:10 +01:00
Henrik Rydgård
fead647304
Android: Improve insets behavior on older devices without camera cutouts
2026-03-14 22:53:17 +01:00
Henrik Rydgård
75453632f9
Handle inset adjustements on the C++ side, handle them better in the UI.
2026-03-14 18:13:37 +01:00
Henrik Rydgård
160e2c4f9b
Refactor: Call GetLayoutBounds on the screen instead of the context where possible.
...
This will allow screens to influence the layout bounds in a unified way
2026-03-14 13:07:48 +01:00
Henrik Rydgård
f138aed508
Merge pull request #21424 from hrydgard/more-minor-fixes
...
Fix control input issues when toggling the pause menu using a controller
2026-03-13 17:45:04 +01:00
Henrik Rydgård
b8d793daf9
Repeat key handling: Clear held keys when turning off focus movement
2026-03-13 16:31:02 +01:00
Henrik Rydgård
7e3079b035
VulkanRenderManager: Try to survive StopThreads being called twice (shouldn't happen, but...)
2026-03-13 10:33:00 +01:00
Henrik Rydgård
56be37a2e4
Correct two minor bugs causing reported crashes
2026-03-13 10:16:25 +01:00
Henrik Rydgård
b7f257152d
Fix logging to file
...
Fixes #21411
2026-03-11 14:14:58 +01:00
Henrik Rydgård
efef734034
Fix some compiler warnings
2026-03-11 11:05:33 +01:00
Henrik Rydgård
2b946094a9
Warning fixes
2026-03-10 12:19:27 +01:00
Henrik Rydgård
28d73b6f68
Minor tweak to Add Server
2026-03-10 09:36:32 +01:00
Henrik Rydgård
33c8bdc05b
Show radio button images in the server list
2026-03-10 09:21:19 +01:00
Henrik Rydgård
14211aa1c0
Button layout, tweaks
2026-03-10 09:05:10 +01:00
Henrik Rydgård
cb7e34b560
Fix some complications when adding servers
2026-03-10 09:05:10 +01:00
Henrik Rydgård
c634e73885
Fix more centering and sizing bugs
2026-03-09 16:41:07 +01:00
Henrik Rydgård
d54fb5097a
Margin fixes for PopupScreens
2026-03-09 15:59:23 +01:00
Henrik Rydgård
0cc5eb920b
Translation fixes, more button images in MessagePopupScreen
2026-03-09 14:06:20 +01:00
Henrik Rydgård
8c8dd0f0d0
Add utility function to snoop the file cache
2026-03-09 10:40:51 +01:00
Chris Healy
7ea1260ef0
OpenGL: Fix GLES3 detection for Mesa/Panfrost Mali drivers
...
The original code checked for "Mali" in GL_RENDERER and disabled GLES3
for all Mali GPUs, which was a workaround for bugs in ARM's proprietary
Mali driver. However, Mesa/Panfrost (open-source Mali driver) does not
have these bugs and should be allowed to use GLES3.
This patch:
- Adds GPU_VENDOR_MESA for identifying Mesa drivers via GL_VENDOR
- Changes the GLES3 ban to only apply when GL_VENDOR="ARM" (proprietary)
- Allows Mesa/Panfrost Mali GPUs to use GLES3 features
Expected behavior:
- ARM proprietary driver (GL_VENDOR="ARM"): GLES3 disabled (preserved)
- Mesa/Panfrost (GL_VENDOR="Mesa"): GLES3 enabled
- Other Mesa drivers: Unaffected
Related issues: #4078 , #15413
Signed-off-by: Chris Healy <cphealy@gmail.com >
2026-03-08 21:41:20 -07:00
Chris Healy
9ed5dcdc27
GPU: Use inversesqrt for light distance and half-vector calculations
...
Replace length()/normalize() with inversesqrt() pattern for better
performance on mobile GPUs. The inversesqrt instruction is a single
hardware operation, while length() requires sqrt(dot()) and normalize()
requires inversesqrt internally plus a multiply.
Changes:
1. Light distance calculation:
Before: distance = length(toLight); toLight /= distance;
After: distSq = dot(toLight, toLight);
invDist = inversesqrt(distSq);
distance = distSq * invDist;
toLight *= invDist;
2. Specular half-vector normalization:
Before: ldot = dot(normalize(toLight + vec3(0,0,1)), worldnormal);
After: halfVec = toLight + vec3(0,0,1);
halfInvLen = inversesqrt(dot(halfVec, halfVec));
ldot = dot(halfVec, worldnormal) * halfInvLen;
Also reuses distSq in attenuation calculation to avoid recomputing
distance*distance.
Offline shader compiler results (vertex shader with 4-light ubershader):
Mali (malioc):
G31 (Bifrost): 44.90 -> 40.50 cycles (-9.8%)
G52 (Bifrost): 14.97 -> 13.50 cycles (-9.8%)
G310 (Valhall): 13.88 -> 12.88 cycles (-7.2%)
G57 (Valhall): 7.60 -> 6.97 cycles (-8.3%)
PowerVR (Profiling Compilers):
Series 8 GE8300: 322 -> 302 ALU cycles (-6.2%)
Series 9 GM9445: 296 -> 280 ALU cycles (-5.4%)
Series B BXM: 560 -> 540 instructions (-3.6%)
Signed-off-by: Chris Healy <cphealy@gmail.com >
2026-03-08 19:13:41 -07:00
Henrik Rydgård
71d884379d
Fix a potential race condition
2026-03-09 00:51:39 +01:00
Henrik Rydgård
53f1f57bbc
Crashfix in Resolve.cpp, fix some bad return values
2026-03-09 00:21:56 +01:00