Commit Graph

3992 Commits

Author SHA1 Message Date
Henrik Rydgård
ac269aaa4b rcheevos: revert to before #17806
PR #17806 upgraded rcheevos, after which a regression is reported in
issue #17631.

Experimentally revert to confirm.
2023-08-08 15:38:22 +02:00
Henrik Rydgård
86db91979f Turn off present-wait for now. Too many issues. 2023-08-08 15:07:44 +02:00
Henrik Rydgård
652cc6cd65 Race condition fix 2023-08-08 14:00:58 +02:00
Henrik Rydgård
8fec4fb02f wip 2023-08-08 13:26:27 +02:00
Henrik Rydgård
527e16c17a
Merge pull request #17863 from hrydgard/merge-update-render
Merge NativeUpdate and NativeRender, we always call them together.
2023-08-08 12:00:29 +02:00
Henrik Rydgård
8e74907710 Don't try to use VK_GOOGLE_display_timing on Mac/iOS. MoltenVK has an implementation that seems broken. 2023-08-08 11:46:36 +02:00
Henrik Rydgård
bcae36d8cb Merge NativeUpdate and NativeRender, we always call them together. 2023-08-07 22:50:57 +02:00
Henrik Rydgård
096c168dd7
Add yield() function to tell the CPU that we're busy-waiting (rare) (#17862)
* Add yield() function to tell the CPU that we're busy-waiting (rare)

Use it only for the busy-wait in lag sync, which only happens in
Windows.

* Buildfix attempt
2023-08-07 21:38:03 +02:00
Henrik Rydgård
a6b5340d97 Don't crash if VK_KHR_present_id / VK_KHR_present_wait are not exposed (but feature still reported available)
Fixes the new crash in #17858
2023-08-07 11:36:49 +02:00
Henrik Rydgård
ab685be566 Windows UWP: Enable color emoji rendering through DirectWrite 2023-08-06 17:25:20 +02:00
Henrik Rydgård
5533d5ec57 More lenient emoji check, remove unused variable 2023-08-06 17:17:24 +02:00
Henrik Rydgård
63cfe28f61 Implement color emoji support on Android 2023-08-06 15:14:29 +02:00
Henrik Rydgård
a477ca3f05 Add a couple of emoji to UI in debug mode 2023-08-06 15:10:49 +02:00
Henrik Rydgård
ea659319b2
Merge pull request #17852 from unknownbrackets/riscv-centralize
IR: centralize common parts of native backend
2023-08-06 10:54:53 +02:00
Unknown W. Brackets
93e3d35f5d irjit: Move more to IRNativeBackend, split. 2023-08-06 00:16:43 -07:00
Henrik Rydgård
39d25ce91f D3D11: Allow setting the max frame latency 2023-08-04 11:53:51 +02:00
Henrik Rydgård
74a471d7a5
Merge pull request #17846 from hrydgard/debug-overlay-everywhere
Debug overlay everywhere
2023-08-03 20:55:35 +02:00
Henrik Rydgård
8e1dc35dd1 Vulkan: Show instance extensions, both enabled and available, in sysinfo 2023-08-03 18:56:47 +02:00
Henrik Rydgård
be63ce3a4a Minor refactor allowing getting the GPU profile string outside games 2023-08-03 16:31:20 +02:00
Henrik Rydgård
128acdd208
Merge pull request #17844 from hch12907/sdl-ttf
SDL: text renderer fixes, and CI
2023-08-03 15:16:31 +02:00
Hoe Hao Cheng
4d7e949f23 SDL: text alignment fix 2023-08-03 20:54:21 +08:00
Henrik Rydgård
0530dc57a8 Implement frame time measurement on Android using VK_GOOGLE_display_timing 2023-08-03 12:59:25 +02:00
Henrik Rydgård
9b038d6574 Vulkan: Show enabled extensions separately in sysinfo 2023-08-03 11:11:35 +02:00
Henrik Rydgård
e16cac6548 Initial work on supporting VK_GOOGLE_display_timing. Not working yet. 2023-08-03 11:11:16 +02:00
Henrik Rydgård
1a1a6fe15d Load the functions for VK_GOOGLE_display_timing 2023-08-03 09:52:48 +02:00
Henrik Rydgård
1dab6e5bef Linux/Mac/iOS: Switch from gettimeofday() to clock_gettime(CLOCK_MONOTONIC)
More appropriate, and adds a raw function that can be used to match up
with  VK_GOOGLE_display_timing.
2023-08-03 00:00:07 +02:00
Henrik Rydgård
14377259b5 Use VK_KHR_present_wait to get numbers on how much latency we have to screen
This extension is not available on Android, there they have
VK_GOOGLE_display_timing, which they also have an abstraction library
for, so will look at that later.

Early part of work on #17685
2023-08-02 20:34:22 +02:00
Henrik Rydgård
cda59e8510 Vulkan: Keep track of some timestamps in a frame 2023-08-02 16:25:17 +02:00
Henrik Rydgård
9df91aed37 OpenCFile: Fix Android content-uri append mode 2023-08-02 14:00:57 +02:00
Henrik Rydgård
112b624257 Improve the situation with two transparent screens on top of each other 2023-08-02 13:03:08 +02:00
Henrik Rydgård
ffd5e57a20 Vulkan: Don't use multithreaded rendering if frames-in-flight is set to 1
It has no benefit, and loses by a few percent in simple benchmarking.
2023-08-01 21:08:07 +02:00
Henrik Rydgård
f45176fd25 Allow configuring in which corner achievement notifications can show up. 2023-08-01 12:52:09 +02:00
Henrik Rydgård
1071e1f248 Move towards separate types for leaderboard events 2023-08-01 11:57:28 +02:00
Bashar Astifan
401377818c
Merge branch 'master' into master 2023-08-01 05:29:56 +04:00
Henrik Rydgård
d268dd639a Move the ScreenEdgePosition enum to a more appropriate location 2023-08-01 01:01:57 +02:00
Henrik Rydgård
a28ae79ef7 Safer handling of NONE 2023-08-01 00:28:54 +02:00
Henrik Rydgård
48d577014a Refactor the on-screen display to be more customizable 2023-08-01 00:28:54 +02:00
Henrik Rydgård
01191ff23a Extract ApplyAnchorLayoutParams from the anchor viewgroup 2023-08-01 00:28:54 +02:00
Henrik Rydgård
f39b9640b7 Rename the ChatPosition enum to a ScreenEdgePosition enum class (for future use) 2023-08-01 00:28:54 +02:00
Henrik Rydgård
3861e97a94 Experiment with the collapsible header thingy. Slightly increase the font size of headers. 2023-07-31 11:48:50 +02:00
Unknown W. Brackets
a28acf2662
Merge pull request #17805 from hch12907/sdl-ttf
SDL: address comments on #17780
2023-07-30 07:10:59 -07:00
Henrik Rydgård
36951a0b98
Merge pull request #17806 from hrydgard/update-rcheevos
Update to the latest version of rcheevos.
2023-07-30 12:19:40 +02:00
Henrik Rydgård
1c05f71b50 Update to the latest version of rcheevos. 2023-07-30 11:58:55 +02:00
Hoe Hao Cheng
c56f302e51 SDL: address comments on #17780 2023-07-30 16:25:36 +08:00
Unknown W. Brackets
26a527bdf8 riscv: Implement float/int conversion. 2023-07-30 00:45:51 -07:00
haorui wang
ec4927069e 1. remove some unused code
2. add some missing header
3. fix error address offset operation
2023-07-30 12:31:31 +08:00
Henrik Rydgård
b473f1e649
Merge pull request #17780 from hch12907/sdl-ttf
SDL: implement TextDrawer using SDL2_ttf
2023-07-29 22:51:27 +02:00
Hoe Hao Cheng
aaa7e90174 SDL: fix a curious crash 2023-07-29 03:10:00 +08:00
Hoe Hao Cheng
1c890be702 Use common UTF8 infrastructure instead of rewriting one 2023-07-29 03:10:00 +08:00
Hoe Hao Cheng
f88d1a287e SDL: implement font fallback for TextDrawerSDL 2023-07-29 03:09:57 +08:00
Unknown W. Brackets
94f7231e73 net: Fix request cancelling.
Was broken in #17737.
2023-07-25 19:42:37 -07:00
Unknown W. Brackets
3383d5b93a
Merge pull request #17751 from unknownbrackets/riscv-jit
Initial RISC-V jit based on IR
2023-07-25 00:42:22 -07:00
Hoe Hao Cheng
2b826b5614 SDL: implement TextDrawer using SDL2_ttf 2023-07-25 13:05:32 +08:00
Henrik Rydgård
2baba83f1a Add a bunch of new icon images to the atlas. 2023-07-24 14:52:32 +02:00
Unknown W. Brackets
720f868a10 riscv: Use R_RA as a temporary for calls.
This is the most logical thing, since we're about to write it anyway.
2023-07-23 18:01:00 -07:00
Unknown W. Brackets
76e3246065 riscv: Reduce jit codesize a bit. 2023-07-23 18:01:00 -07:00
Unknown W. Brackets
47b81985bd riscv: Initial untested dispatcher.
The minimum to actually, probably, running code.  Pretty slow.
2023-07-23 18:01:00 -07:00
Henrik Rydgård
a3d52ec123
Merge pull request #17773 from unknownbrackets/riscv-emit
Fix some issues in the RISC-V emitter
2023-07-24 00:06:15 +02:00
Henrik Rydgård
0afd313371
Merge pull request #17770 from unknownbrackets/http-proxy-hang
http: Fix hang on early close
2023-07-23 23:56:07 +02:00
Unknown W. Brackets
030a27f15d riscv: Stop considering bitmanip "B".
Apparently it's not being called B anymore and B is still reserved.
2023-07-23 14:41:08 -07:00
Unknown W. Brackets
e0eace505b riscv: Fix cases of SetRegToImmediate().
Was using the wrong value for AUIPC, causing assertion failures and wrong
values.  Also needed to handle sign-extend more carefully.
2023-07-23 14:41:08 -07:00
Unknown W. Brackets
0c99d6d3fa riscv: Workaround Zicsr detection issue. 2023-07-23 14:41:08 -07:00
Unknown W. Brackets
f70030fa5b http: Fix hang on early close. 2023-07-23 14:31:43 -07:00
Henrik Rydgård
b118e25b6a Vulkan: Make multithreaded rendering an option.
Multi-threaded rendering is good for smoothing out performance spikes
and increasing performance on low-power devices. However, the way we use
it it doesn't benefit latency (input lag) at all, rather the opposite.

So make it an option.
2023-07-23 22:06:01 +02:00
Henrik Rydgård
eb14c87a71 Allow configuring the game language separately from the PPSSPP UI language, with a new setting. 2023-07-23 11:30:04 +02:00
Henrik Rydgård
aa46d3aae3 UI: CollapsibleHeader no longer shows the open/close icon if there are no items 2023-07-23 11:11:44 +02:00
Hoe Hao Cheng
9305870cca Fix a segfault in ReadAllWithProgress 2023-07-23 01:18:08 +08:00
Henrik Rydgård
3e213667c6
Merge pull request #17752 from lvonasek/feature_openxr_cinema6dof
OpenXR - Enable 6DoF in cinema mode
2023-07-22 12:01:51 +02:00
Henrik Rydgård
8f6662aa55 Fix an initialLayout issue with the image we use as the backbuffers's depth 2023-07-21 23:17:24 +02:00
Henrik Rydgård
93bb113009 Common: Rename Download to Request, and the old Request to ServerRequest. 2023-07-21 22:12:00 +02:00
Henrik Rydgård
ac6301db47 Use the new function in patched naett to update user agent 2023-07-21 18:23:33 +02:00
Henrik Rydgård
9535b16740 Use the patched naett functions to implement progress updates 2023-07-21 18:23:33 +02:00
Lubos
9fdd9645de OpenXR - Enable 6DoF in cinema mode 2023-07-21 17:22:36 +02:00
Henrik Rydgård
61db21b12d Cleanup, fix so we can run RetroAchievements with https, and start doing that 2023-07-21 10:49:01 +02:00
Henrik Rydgård
9decdd198e Address more feedback, minor cleanup 2023-07-21 10:30:06 +02:00
Henrik Rydgård
96a75f9fc4 naett: Set timeout, POST body, etc. Just missing user agent 2023-07-21 10:28:32 +02:00
Henrik Rydgård
ab6e902fea Make naett work on Android, UWP, Mac. Exclude on Linux 2023-07-21 10:28:31 +02:00
Henrik Rydgård
fbd980bee6 Get basic Naett requests to work (the store works in https mode) 2023-07-21 10:28:17 +02:00
Henrik Rydgård
e2cc835c2b Setup build for new file HTTPNaettRequest 2023-07-21 10:27:40 +02:00
Henrik Rydgård
7ae34f148a Setup build for naett - a lightweight https wrapper 2023-07-21 10:27:40 +02:00
Henrik Rydgård
f13a07f19b Break out Download and RequestManager into its own file 2023-07-21 10:27:40 +02:00
Henrik Rydgård
64eff0dc0b Insert a virtual base class for Download 2023-07-21 10:27:40 +02:00
Henrik Rydgård
85f5136a81 Add a GetProperty query for the git version 2023-07-20 10:57:52 +02:00
Henrik Rydgård
370bb4c315 More progressbar improvements 2023-07-18 15:52:14 +02:00
Henrik Rydgård
ecea3844b0 Improved progress bar popups for downloads
Now shows the filename, and also there's a delay mode where they'll only
be visible if the download takes more than a second, plus they can be
named.
2023-07-18 15:13:44 +02:00
Bashar Astifan
a35c8425e6
Merge branch 'master' into master 2023-07-17 23:20:52 +04:00
Henrik Rydgård
4108dcec23 Unify CalculateTextScale 2023-07-17 12:02:32 +02:00
Henrik Rydgård
6b75bbf64a Add support for line breaks in TextDrawerWin32::MeasureString. Sometimes useful.
And actually consistent with the other backends.
2023-07-16 21:58:47 +02:00
Henrik Rydgård
43d780b552 Fix issue where achievement sounds didn't play if UI Sounds were off.
These are meant to be unrelated.
2023-07-16 21:43:49 +02:00
Henrik Rydgård
7eb1bfe1aa Spacing default 0.0 in collapsible sections, set spacing for achievements a little higher 2023-07-16 18:23:43 +02:00
Henrik Rydgård
f8b7346b8d Make the achievement lists collapsible on the main achievements screen 2023-07-16 18:13:36 +02:00
Henrik Rydgård
8a59ed0062 Add function ApplySafeSubstitution for translation strings with parameters 2023-07-16 16:26:49 +02:00
Henrik Rydgård
df104c66a8 Add back lost ini parameter 2023-07-16 14:23:06 +02:00
Henrik Rydgård
bd4f3f8953 Start work on making sound effects customizable 2023-07-16 12:56:46 +02:00
Henrik Rydgård
2537f76277 UI: Add a basic FileChooserChoice view 2023-07-16 12:14:40 +02:00
Henrik Rydgård
b092e08af1 Make literal into constexpr. 2023-07-16 09:01:16 +02:00
Henrik Rydgård
6bb97b3d46 Better mechanism to fade out the side bar when not on EmuScreen 2023-07-16 08:55:48 +02:00
Henrik Rydgård
ebc0afc828 Remove some logging 2023-07-16 00:20:55 +02:00
Henrik Rydgård
04351a18f6 Address feedback 2023-07-16 00:20:09 +02:00
Henrik Rydgård
c363cccc58 Java dialog requests: Simplify handling, more unique error codes 2023-07-15 12:24:00 +02:00
Henrik Rydgård
84d9b7e75d HTTP user agent plumbing 2023-07-14 15:24:34 +02:00
Henrik Rydgård
bf05fe22b1
Merge pull request #17717 from hrydgard/input-dialog-back-button-fix
Fix key event processing issue.
2023-07-14 13:11:30 +02:00
Henrik Rydgård
5023f2cb6c Fix key event processing issue.
Fixes #17712
2023-07-14 12:01:38 +02:00
Henrik Rydgård
1c83c4a1fe Vulkan: Enable the present-id/present-wait/display-timing extensions
Doesn't actually use any of them yet, just making sure enabling them
doesn't cause any weird issues. They will be used for the future display
timing rewrite.
2023-07-14 10:43:47 +02:00
Henrik Rydgård
66e54dee11 Minor iconcache update 2023-07-13 16:47:06 +02:00
Henrik Rydgård
86ee2253ee Save/Load the icon cache to disk if RetroAchievements are enabled.
Should reduce the server load a bit.
2023-07-13 12:44:20 +02:00
Henrik Rydgård
aa4264a192 RetroAchievements: Better handling of not being online when trying to log in 2023-07-13 11:26:43 +02:00
Henrik Rydgård
b133cd4f71
Merge pull request #17704 from lvonasek/feature_openxr_canvas3d
OpenXR - Enhancements of cinema-style screen
2023-07-12 20:57:22 +02:00
Henrik Rydgård
af92430b18 Achievement Unlocked and Leaderboard Submitted sound effects 2023-07-12 19:55:53 +02:00
Lubos
dd00dfefab OpenXR - Enhancements of cinema-style screen 2023-07-12 19:33:29 +02:00
Henrik Rydgård
f1ff12784a Allow flexible sample rate for UI sound effects 2023-07-12 17:55:49 +02:00
Henrik Rydgård
ce802664ea Minor SettingInfo cleanup 2023-07-12 10:24:06 +02:00
Henrik Rydgård
3f924d1494 Smoothly remove any left-over overlays on emuscreen exit. 2023-07-10 21:04:22 +02:00
Henrik Rydgård
4ae3c519e2 Add assorted null checks for safety
More probably needed. Should at least hopefully fix the leaderboard crash reported in #17631

Will try to do something more systematic later.
2023-07-10 19:27:07 +02:00
Henrik Rydgård
cd45125085 RetroAchievements: Show active challenge achievements on pause screen. 2023-07-10 10:39:44 +02:00
Henrik Rydgård
c17b84b3d4 Implement RetroAchievements challenge mode restrictions, and fix related bugs 2023-07-08 21:55:32 +02:00
Henrik Rydgård
9e4387c529 Implement more OSD types (challenge, progress indicators). Not really tested. 2023-07-08 21:48:23 +02:00
Henrik Rydgård
9bd67df5b2 Achievement savestate fixes 2023-07-08 21:47:16 +02:00
Henrik Rydgård
d0b42705a0 Switch over to rc-client 2023-07-08 18:59:37 +02:00
Henrik Rydgård
0bf0a4a1ef UIContext: Add an easy way to draw drop shadows under rectangular things 2023-07-08 18:25:00 +02:00
Henrik Rydgård
952e125c7e Break out rendering of "notices" from OnScreenDisplay. They can now also be used as views.
Use it for the new message in ControlMappingScreen, when you try to map
a combo when that's disabled. It'll have more uses.
2023-07-07 15:23:19 +02:00
Henrik Rydgård
e182837f86 Remove left-over debug logging 2023-07-07 15:16:47 +02:00
Henrik Rydgård
b9327073bb Add checkbox controlling if new mappings can be combo mappings.
These can be problematic with certain controllers that send double
signals. Like PS4 controllers on Android, the analog triggers send dual
axis events, and additionally digital events.
2023-07-07 10:42:08 +02:00
Henrik Rydgård
b56b3b43c7 Y-flip menu analog stick mapping on Switch 2023-07-06 20:29:26 +02:00
Henrik Rydgård
16efa1d877
Merge pull request #17672 from hrydgard/android-show-exceptions
Android: Show some Java exceptions as they happen
2023-07-06 20:24:06 +02:00
Henrik Rydgård
9d877106d7 Android: Report various exceptions that we catch to the user if they happen
This can let users help debug some obscure cases.
2023-07-06 19:06:27 +02:00
Henrik Rydgård
e1060c80ff
Merge pull request #17671 from hrydgard/android-message-cleanup
Android string message cleanup
2023-07-06 19:06:14 +02:00
Henrik Rydgård
84fffec4f3 Switch all NativeMessageReceived to System_PostUIMessage 2023-07-06 17:26:02 +02:00
Henrik Rydgård
f27850ec1d Minor cleanup in MoveFocus, set tags on screen roots for debugging 2023-07-06 16:34:54 +02:00
Henrik Rydgård
26e097923d Fix issue with analog stick menu navigation caused by processing UI events twice per frame 2023-07-06 16:34:18 +02:00
Henrik Rydgård
cbd012f522 Cleanups around focus moves 2023-07-06 16:13:25 +02:00
Henrik Rydgård
356cc64eb5 Logging improvements, cleanup 2023-07-06 14:56:52 +02:00
Henrik Rydgård
c46d6e16b8 UI root: We should "accept" all key events that we don't determine special 2023-07-06 14:55:15 +02:00
Henrik Rydgård
fc3f7da3af TouchTestScreen: Have 8 entries logged instead of 2. 2023-07-06 11:48:25 +02:00
Henrik Rydgård
adc24b5001 OpenGL: Fix a wrong assert 2023-07-03 01:10:42 +02:00
Henrik Rydgård
fc797ec55f
Merge pull request #17656 from lvonasek/compat_openxr_fixes
OpenXR - Game compatibility fixes
2023-07-02 21:12:21 +02:00
Lubos
6e10f20f8b OpenXR - Tony Hawk mirroring hack better 2023-07-02 20:29:59 +02:00
Unknown W. Brackets
9c08e27a0c
Merge pull request #17648 from fp64/div-less
Replace some signed divison in SoftGPU
2023-07-01 12:28:52 -07:00
Henrik Rydgård
1375b6e097 Buildfix 2023-06-30 17:25:44 +02:00
Henrik Rydgård
eb21a2e6c9 Break out the OSD data holder from Common/System/System.h, into OSD.cpp/h 2023-06-30 17:15:49 +02:00
fp64
f133739cd0 Replace some signed divison in SoftGPU
This also adds a few bitwise operations to Vec4<int> and further
SIMDifies it.
Also, fixes unrelated warning.
2023-06-29 16:43:21 -04:00
Henrik Rydgård
c66182a583
Merge pull request #17637 from hrydgard/revert-path-change
Revert "Path: If a Path is empty, the slash operator will not add an additional slash."
2023-06-27 23:39:53 +02:00
Henrik Rydgård
27847abac4 Fix two OSD rendering bugs (messages with text2 didn't render it, text alignment with icon) 2023-06-27 23:39:13 +02:00
Henrik Rydgård
19b494ba1e Revert "Path: If a Path is empty, the slash operator will not add an additional slash."
This reverts commit 864b2bbb31.
2023-06-27 23:31:59 +02:00
Henrik Rydgård
e4229886b7
Merge pull request #17636 from lvonasek/review_openxr
OpenXR - Major review
2023-06-27 20:07:42 +02:00
Lubos
880168ee3c OpenXR - Fix render glitches caused by wrong mirroring 2023-06-27 18:54:38 +02:00
Henrik Rydgård
caf6d8442a
Merge pull request #17630 from m4xw/common
Common & CodeBlock changes for Nintendo Switch
2023-06-27 14:43:23 +02:00
M4xw
6fdf953136 [Common] Placeholder Crash() impl. for Nintendo Switch 2023-06-27 14:21:56 +02:00
M4xw
b52d3f64ff [Common] Add cstring include to ArmCPUDetect 2023-06-27 14:21:56 +02:00
M4xw
21be8c3c2b [Common] CommonType base for Nintendo Switch
Avoid name conflicts & declare certain types
2023-06-27 14:21:55 +02:00
M4xw
36584aa6f4 [CodeBlock] W^X dualbase impl. for Nintendo Switch 2023-06-27 14:21:52 +02:00
Henrik Rydgård
01cf22e074
Merge pull request #17589 from hrydgard/retroachievements-initial-work
Retroachievements support (work-in-progress)
2023-06-27 00:13:53 +02:00
Lubos
0b68644063 Revert "OpenXR - Workaround for disfunctional depth buffer allocation"
This reverts commit 6dc264e7e5.
2023-06-26 17:27:46 +02:00
Lubos
a6709c70e0 OpenXR - Code cleanup 2023-06-26 17:26:56 +02:00
M4xw
0cf6f46330 [MemoryUtil] Platform changes for Nintendo Switch 2023-06-26 16:17:45 +02:00
M4xw
b4f602de85 [MemArena] Opt-out of MemArenaPosix for Switch 2023-06-26 13:58:39 +02:00
Henrik Rydgård
864b2bbb31 Path: If a Path is empty, the slash operator will not add an additional slash. 2023-06-26 10:01:42 +02:00
Henrik Rydgård
87846c5fcb Add simple facility for storing secret in app-private storage on Android (other platforms not so good) 2023-06-26 10:01:42 +02:00
Henrik Rydgård
69a5ca0e1d A bunch of visual updates and fixes. Lots left to polish. 2023-06-26 10:01:42 +02:00
Henrik Rydgård
c442d1de86 Implement rendering of unlocked achievements. Not final design. 2023-06-26 10:01:42 +02:00
Henrik Rydgård
1d0badae56 Achievements: Show achievement icons in list 2023-06-26 10:01:41 +02:00
Henrik Rydgård
93de74144e Add basic achievement rendering 2023-06-26 10:01:41 +02:00
Henrik Rydgård
8beca03e7e MacOSX buildfixes 2023-06-26 10:01:41 +02:00
Henrik Rydgård
f6fdaa4f56 Get it to recognize the hash by using the rcheevos hash implementation 2023-06-26 10:01:41 +02:00
Henrik Rydgård
029b887491 Initial batch of fixes. Not compiling yet, http will be the tricky one. 2023-06-26 10:01:40 +02:00
Henrik Rydgård
4745999665 Copy-paste retroachievement support from DuckStation. No fixes yet! 2023-06-26 10:01:40 +02:00
haorui
fb91cf9b21 align should be 3 when format is GL_RGB and type is GL_UNSIGNED_BYTE 2023-06-24 16:09:28 +08:00
Henrik Rydgård
cf587d2ccc More cleanup after making PopupTextInputChoice choose method automatically 2023-06-22 09:01:14 +02:00
Henrik Rydgård
337668af3e Make PopupTextInputChoice smarter (use native dialog if possible) 2023-06-22 08:58:30 +02:00
Henrik Rydgård
38f174eab4 Add query for system text input 2023-06-22 08:58:30 +02:00
Henrik Rydgård
0a1bf5532d UI: Allow showing popup string values as password stars 2023-06-22 08:58:29 +02:00
Henrik Rydgård
2708f0b93e Add a new "System" request for a username-password dialog box 2023-06-22 08:58:29 +02:00
M4xw
436b55de72 [MemArena] Add designated impl for Nintendo Switch 2023-06-22 00:06:59 +02:00
M4xw
5b6bc0cea7 [MemArena] Honor MV_MIRROR_PREVIOUS on ReleaseView
Allows for clean teardown of the Memory Map for Switch
2023-06-22 00:01:38 +02:00
Henrik Rydgård
266b85d22d Support for extra text in OSD messages (drawn smaller, on darker background) 2023-06-21 01:16:25 +02:00
Henrik Rydgård
c76b6a48ab Prepare for detailed overlay messages 2023-06-21 01:08:25 +02:00
Henrik Rydgård
ff75eced70 Progress bar: Fix the indeterminate state 2023-06-21 01:08:24 +02:00
Henrik Rydgård
d2c3a7c978 Add support for displaying progress bars 2023-06-20 22:44:31 +02:00
Henrik Rydgård
6ba0479edc OSD: Add colored backgrounds to OSD messages, according to type.
This also reorganizes a little to make rendering achievement popups more
natural later.

Adds info.png to the atlasscript, but doesn't yet rebuild it - more
images are coming.
2023-06-20 17:32:45 +02:00
Henrik Rydgård
575c428867 Buildfix 2023-06-20 15:23:45 +02:00
Henrik Rydgård
ed0c4b7a9e Rename OSD "Message" to "Entry" since it can soon be multiple other things (progress bar, etc). 2023-06-20 15:07:34 +02:00
Henrik Rydgård
7cc8c6cea4 OSD: Add semantics, move the the OSD state to common (while keeping the renderer in the UI). 2023-06-20 14:40:46 +02:00
Henrik Rydgård
d6552a7673 Implement an "OverlayScreen" concept. OSD can now render on top of other screens than EmuScreen. 2023-06-20 10:44:47 +02:00
Henrik Rydgård
300a64a86d IconCache: Remove texture objects quite quickly after it stops getting used.
They can be recreated pretty quickly as needed.
2023-06-18 15:24:56 +02:00
Henrik Rydgård
6f9941dafa Crashfix during clearing 2023-06-18 15:14:42 +02:00
Henrik Rydgård
2bf2f745e2 IconCache: Add pending state to avoid duplicate downloads in some cases 2023-06-18 14:54:11 +02:00
Henrik Rydgård
cb5926761b Add a way to monitor the icon cache from the system info screen. 2023-06-18 14:18:45 +02:00
Henrik Rydgård
2bee5b64e4 Add new icon cache, for caching small images.
It doesn't try to insert or fetch missing things itself, re-fetching is up to the caller.

This will be required for handling the many achievement icons.

Saving/loading the cache to a single file on disk is implemented but not
hooked up yet. It works without it, though of course will have to
re-fetch things on the next startup.
2023-06-18 14:11:12 +02:00
Henrik Rydgård
9f88dbd656 Icon cache for UI rendering
This will be needed for achievements, and has uses already now.
2023-06-18 14:11:12 +02:00
Henrik Rydgård
0983927319 Comment cleanup 2023-06-17 23:19:23 +02:00
Henrik Rydgård
31a6cecef9 Allow specifying content-type for posts instead of hardcoding. 2023-06-17 23:18:23 +02:00
Henrik Rydgård
2de510432d Rename our private md5 functions to not clash with other libraries (ugh) 2023-06-17 23:18:23 +02:00
Henrik Rydgård
71cb766393 Fix re-entrancy issue in Downloader 2023-06-17 23:18:23 +02:00
Henrik Rydgård
3bc2aaf7ca Set MIME type "correctly" (at least for retro purposes) for POSTs 2023-06-17 23:18:23 +02:00
Henrik Rydgård
601e767e3b HTTPClient: Generalize Download to support GET and POST 2023-06-17 23:18:23 +02:00
Lubos
4642e0a66f OpenXR - Add passthrough option (Quest only) 2023-06-17 16:33:21 +02:00
Henrik Rydgård
ae29fd2951 Vulkan profiler: Show CPU command buffer recording timing even if GPU timing is unavailable 2023-06-14 09:15:29 +02:00
Henrik Rydgård
fbd10e4722 FastVec: Add capacity lock, fix bug (extracted from a coming PR) 2023-06-14 09:06:25 +02:00
Henrik Rydgård
6d8069dfd1 Vulkan: Remove the remains of the input attachment experiment
Haven't been using these for a while.

I've come to the conclusion here that I think it's better to try to
deal with the issues using safe workarounds like copies, instead of
relying on features with somewhat iffy driver support that are not
universal across APIs anyway.
2023-06-13 20:46:27 +02:00
Henrik Rydgård
22632b82bd
Merge pull request #17565 from hrydgard/breakout-vcache-vulkan
Vulkan: Breakout the vertex cache logic from DoFlush()
2023-06-13 09:56:52 +02:00
Henrik Rydgård
963ca50ba7
Merge pull request #17567 from hrydgard/uvscale-as-argument
Pass uvScale in as a fourth argument to the vertex decoder
2023-06-13 09:49:31 +02:00
Henrik Rydgård
71a34d4ffc
Merge pull request #17569 from hrydgard/arm64dec-optimize-saved-regs
ARM64: Optimize saved registers in vertex decoder.
2023-06-13 09:49:08 +02:00
Henrik Rydgård
bb40baefb5 Fix issue with volume keys in the app UI 2023-06-13 00:47:48 +02:00
Henrik Rydgård
cdcf3b272e ARM64: Optimize saved registers in vertex decoder.
Simplify away some arrays with unused elements
2023-06-13 00:26:38 +02:00
Henrik Rydgård
4af6fac726 Nop-align the ARM and ARM64 loops too. Many CPUs benefit somewhat from hot loops being 16-byte aligned. 2023-06-13 00:05:48 +02:00
Henrik Rydgård
c4e44d66b0 x86/x64: Nop-align the main loop of vertex decoder loops 2023-06-12 20:39:39 +02:00
Henrik Rydgård
880379c15d Extract some minor changes from #17497 2023-06-12 20:20:06 +02:00
Henrik Rydgård
d90671e877 Add some comments. 2023-06-12 13:16:13 +02:00
Henrik Rydgård
7519af8481
Merge pull request #17552 from unknownbrackets/debug-hle-names
HLE: Add some assorted detected func names
2023-06-07 09:44:10 +02:00
Unknown W. Brackets
fa1da3118f riscv: Add some quick aliases. 2023-06-06 23:48:08 -07:00
Henrik Rydgård
75dd31894c Followup to #17471: Fix Lubos' VR sky clearing hack 2023-06-04 10:18:52 +02:00
Henrik Rydgård
27b8d27efc Add a different assert to SetGLCoreContext. 2023-06-03 11:57:08 +02:00
Henrik Rydgård
9d9c2c750e SWitch dbg asserts to new policy - debug mode controls it, even on Windows. 2023-06-01 23:52:52 +02:00
Henrik Rydgård
408088d1a5 Disable debug asserts and logging in Windows release builds
We allowed debug asserts and logging to be enabled in Windows on the
assumption of CPU power just always being strong enough. But there are
slow x86/x64 devices out there, and we shouldn't slow them down
unnecessarily.

Can always use debug builds to debug stuff.
2023-05-31 11:03:12 +02:00
Henrik Rydgård
e9e95d23ce VulkanDebug log fix, reduce log spam 2023-05-30 18:32:33 +02:00
Henrik Rydgård
49ecc01556 Fix image leak bug when pausing and we're just displaying a framebuffer in memory 2023-05-30 18:29:50 +02:00
Henrik Rydgård
364c205d95 Quick, suboptimal barrier fix for the new UpdateImageLevels functionality 2023-05-30 18:29:49 +02:00
Henrik Rydgård
25662a7f6c Implement UpdateTextureLevels for D3D11 2023-05-30 14:54:19 +02:00
Henrik Rydgård
3a9ce528e7 D3D11: Break out CreateStagingTexture 2023-05-30 14:43:54 +02:00
Henrik Rydgård
198f9756b8 D3D11 texture upload: Refactor for easier changes 2023-05-30 14:35:22 +02:00
Henrik Rydgård
7c4b9bac90 Cache textures created by MakePixelsTexture and reuse where appropriate. 2023-05-30 14:07:44 +02:00
Henrik Rydgård
0b1abf1de9 Add untested UpdateTextureLevels functionality to three of the four backends 2023-05-30 13:28:04 +02:00
Henrik Rydgård
f54f905be5 Vulkan: Remove support for other index types than 16-bit.
We don't have any use for them anyway.
2023-05-30 10:15:34 +02:00
Henrik Rydgård
0eec89c853 Fix a very tiny memory leak 2023-05-29 23:11:35 +02:00
Henrik Rydgård
5eb94350fa Show the class name in refcount debug asserts 2023-05-29 12:50:45 +02:00
Henrik Rydgård
d167a11b1c SDL: Add a way to reset OpenGL graphics by pressing F7. 2023-05-29 11:48:03 +02:00
Henrik Rydgård
50aa598ed1 Fix handling events in "empty" (no root) UIScreens 2023-05-27 00:35:25 +02:00
Henrik Rydgård
3715b1ffa1 Split the functions up, so you don't have to care about the Unsync ones at all in most cases while still getting synced behavior. 2023-05-26 18:41:13 +02:00
Henrik Rydgård
cca613e785 Initial work on queueing up UI events for processing. Key events excepted for now. 2023-05-26 18:41:13 +02:00
Henrik Rydgård
2675d6ea43
Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +02:00
Henrik Rydgård
ad8827ae70 Cleanup, address feedback 2023-05-26 10:28:10 +02:00
Henrik Rydgård
82934b9212 OpenGL queue-runner: Add command counts (debug builds only). Useful for checking optimizations. 2023-05-25 14:15:54 +02:00
Henrik Rydgård
0a069f39c9 Windows: Make double-click-for-fullscreen less oversensitive. 2023-05-25 09:28:55 +02:00
Henrik Rydgård
12106ceb75 Format string fix 2023-05-24 15:52:39 +02:00
Henrik Rydgård
dfb446f89d Allow other backends than Vulkan to have GPU memory stats. Implement for GL. 2023-05-24 14:33:01 +02:00
Henrik Rydgård
62b41c6640 OpenGL: Add a simple pass list to gpu profiler 2023-05-24 14:08:19 +02:00
Henrik Rydgård
edd208791e Add tag field to GLRFramebuffer for debugging 2023-05-24 13:47:51 +02:00
Henrik Rydgård
f4035a0802 GLPushBuffer: Fix bug when growing, forgot to mark space used in the new buffer. Old bug! 2023-05-24 13:45:10 +02:00
Henrik Rydgård
84da0327d6 GLQueueRunner: Make DrawIndexed parameters more consistent. 2023-05-23 17:49:11 +02:00
Henrik Rydgård
f1f0bfae2d Driveby simplification, reduce logspam 2023-05-23 17:09:40 +02:00
Henrik Rydgård
d7ea2ebf8a GL: Add tags to push buffers for debug purposes. Double the default vertex buffer size. 2023-05-23 15:53:41 +02:00
Henrik Rydgård
72df93a2f1 GLMemory: Allow "rewind" 2023-05-23 14:41:27 +02:00
Henrik Rydgård
3f5206fa9a Also dirty-track the viewport 2023-05-23 10:09:38 +02:00
Henrik Rydgård
2081e2865a Dirty track a bunch more GL state. It's so expensive to change on old devices! 2023-05-23 10:02:10 +02:00
Henrik Rydgård
3b81b3ca80 Do dirty-tracking for stencil state 2023-05-23 09:14:24 +02:00
Henrik Rydgård
cb38c43d7e GL render manager: Merge the two stencil commands, for more compact command lists 2023-05-23 09:14:23 +02:00
Henrik Rydgård
234c1f05b8 Apply the same optimizations to the Vulkan backend. Smaller effect than for OpenGL. 2023-05-23 08:54:41 +02:00
Henrik Rydgård
0b9dfac844 Make sure VKRRenderThreadTask isn't copied. 2023-05-23 08:54:41 +02:00
Henrik Rydgård
ab34d20058 Add more methods to FastVec 2023-05-23 08:54:41 +02:00
Henrik Rydgård
37906384ee Use the faster pushes. 2023-05-23 08:54:41 +02:00
Henrik Rydgård
47931deda7 Switch to FastVec for commands. Slower than std::vector! 2023-05-23 08:54:41 +02:00
Henrik Rydgård
558e29a9bb Switch to the copy-free method of initializing initsteps 2023-05-23 08:54:41 +02:00
Henrik Rydgård
956d784bde Add FastVec, start using it for InitSteps 2023-05-23 08:54:40 +02:00
Henrik Rydgård
78eaa8c235 Make sure we never copy GLRRenderThreadTask objects 2023-05-23 08:53:48 +02:00
Henrik Rydgård
c30895b6b4 Remove unnecessary variable 2023-05-23 08:53:48 +02:00
Henrik Rydgård
e4a729d371 Remove unnecessary zero-initialization of GLRRenderCommand structs 2023-05-23 08:53:48 +02:00
Henrik Rydgård
b9157fd4d4 Break out EnableDisableVertexArrays 2023-05-23 08:52:42 +02:00
Henrik Rydgård
a4baed4c0c Minor GLPushBuffer cleanup (now same API as the VK one) 2023-05-23 08:41:09 +02:00
Henrik Rydgård
d7a5edeb6f GL: Break out GLPushBuffer from GLRenderManager.cpp/h 2023-05-23 08:41:09 +02:00
Henrik Rydgård
736ba3dd90
Merge pull request #17357 from unknownbrackets/game-search
Add half of game list search
2023-05-23 08:31:04 +02:00
Henrik Rydgård
67a35d3476
Merge pull request #17356 from unknownbrackets/minor-cleanup
Cleanup some more string formats, mostly in debugger
2023-05-23 08:29:23 +02:00
Henrik Rydgård
5d7a0516cc
Merge pull request #17475 from hrydgard/opengl-basic-profiler
Add a trivial profiling tool to the OpenGL backend
2023-05-17 15:01:16 +02:00
Henrik Rydgård
05b6bbdc56 Add a trivial profiling tool to the OpenGL backend - meaasure the time it takes to run a frame of commands.
Accessed from the in-game dev menu just like the Vulkan frame profiler.

With this we can easily see that actually submitting the GL commands is often the bottleneck on old
devices like a Galaxy S3.
2023-05-17 14:38:11 +02:00
Henrik Rydgård
4f1be34f24 Revert "Remove the Android display resolution selector"
This reverts commit ea0eaa31e6.
2023-05-17 09:37:15 +02:00
Henrik Rydgård
444897a8b8 Some reordering to make the code make more sense (no actual effect) 2023-05-16 18:25:31 +02:00
Henrik Rydgård
081bdb323a Fix running some file formats from the Downloads folder
Due to how we mount stuff, we need to be able to navigate one step up
from the executable, and then re-attach the executable filename. To
allow this, in content URIs, treat ':' as a directory separator for
navigation purposes.

End result, you can now download cube.elf from the website and run it directly
from Downloads without using a file manager to move it.
2023-05-16 16:44:28 +02:00
Henrik Rydgård
07a96b8734
Merge pull request #17465 from hrydgard/android-content-uri-cpp
AndroidContentURI: Move code from the header to cpp.
2023-05-16 16:39:43 +02:00
Henrik Rydgård
c729519cf5
Merge pull request #17442 from hrydgard/glr-render-command-shrink
Shrink the GLRRenderCommand struct from 152 to 88 bytes
2023-05-16 16:38:41 +02:00
Henrik Rydgård
cf9a628a2e AndroidContentURI: Move code from the header to cpp. Some assorted cleanup, add a unit test for Download paths 2023-05-16 16:08:51 +02:00
Henrik Rydgård
b27c427547 We always bind and draw together, so let's combine them to one command. 2023-05-10 10:56:25 +02:00
Henrik Rydgård
c7caefe6d8 Have Draw and DrawIndexed share command and struct. Will make the next change easier. 2023-05-10 10:40:33 +02:00
Henrik Rydgård
d5e0299b0b GLR: Share union struct between Draw/DrawIndex 2023-05-10 10:32:13 +02:00
Henrik Rydgård
f593d65833 Avoid double-free in stereo mode 2023-05-10 10:13:54 +02:00
Henrik Rydgård
c882046251 Remove redundant render command 2023-05-10 09:23:10 +02:00
Henrik Rydgård
8f2069ef71 GLQueueRunner: Combine BindVertexBuffer with BindIndexBuffer 2023-05-10 09:23:10 +02:00
Henrik Rydgård
cc16eb8321 Shrink the GLRRenderCommand struct from 152 to 88 bytes
Turns out the VR work bloated it a bit, which can't be good.

Think it's fine to allocate these view matrices on the heap to get them
out of the way, there won't be that crazy many per frame usually.
2023-05-10 00:24:17 +02:00
Henrik Rydgård
ce632ec079 IniFile: Fix writing 64-bit hex values. 2023-05-08 10:47:03 +02:00
Henrik Rydgård
311a1a0fe2 Fix glitch when mapping analog inputs, caused by multiple TriggerFinish caused by stray analog axis events.
ADd some guards all over the place against the same thing.
2023-05-06 15:33:28 +02:00
Henrik Rydgård
ac88e73768 TextDrawerAndroid: Handle a null fontName, saw some crash reports that looked like that. 2023-05-05 23:40:06 +02:00
Henrik Rydgård
0d0b0fc60b Turn some reported crashes into asserts, to try to confirm what's going on 2023-05-05 23:26:21 +02:00
Henrik Rydgård
cd33b79ae7 Fix an issue where stray KEY_UP events could confuse the control mapper into setting empty events
This had some not-so-good consequences, like inability to map anything
in VR, and sometimes empty MultiMappings would result that we could end
up asserting on before the previous commit.
2023-05-05 23:00:01 +02:00
Henrik Rydgård
38178d34b5 Sanity checks in InitSwapchain 2023-05-05 00:03:20 +02:00
Henrik Rydgård
7e1f907826 VulkanPushPool: Sprinkle a couple of asserts. 2023-05-04 10:25:16 +02:00
Bashar Astifan
f86a462145 Revert creating ToShortFriendlyPath, more cleanup
Path preview can actually solved within ToVisualString without creating another function, I feel it will cause confusing as both function will be similar.
2023-05-04 12:03:14 +04:00
Henrik Rydgård
fcd11dfd4c Update a comment 2023-05-04 09:49:14 +02:00
Henrik Rydgård
3148a8a437 PopupMultiChoiceDynamic: Check that valueStr_ isn't null before writing to it. Don't see how this happened. 2023-05-04 08:59:12 +02:00
Bashar Astifan
b75cf52909 Fixed Path issue 2023-05-04 05:48:14 +04:00
Henrik Rydgård
a132b72ba1 Paranoia 2023-05-04 01:24:31 +02:00
Henrik Rydgård
1d053d2ea8 GLPushBuffer::Flush: Add debug-assert-and-bail prompted by suspicious callstack 2023-05-03 23:49:41 +02:00
Henrik Rydgård
5724bbd8e9 Correct size calculations in GLPushBuffer. I don't see how this failed as badly as in that crash report though... 2023-05-03 23:49:41 +02:00
Henrik Rydgård
c9b7c815a1 ~GPU_Vulkan: Check that we still have a draw_ pointer before trying to drain the compile queue. 2023-05-03 22:33:34 +02:00
Bashar Astifan
132a00ade3
Merge branch 'master' into master 2023-05-03 23:23:29 +04:00
Henrik Rydgård
2cca0b265e Vulkan: Turn off the ubershader on T880, T860 and T830 on old driver versions. 2023-05-03 11:53:32 +02:00
Bashar Astifan
808ff28aa5 Free space and other fixes
- Fixed freespace value
- added back BOOTABLE case to BROWSE_FOR_FILE
- Fixed fake folder info
- Fixed some code formating
2023-05-03 13:04:07 +04:00
Henrik Rydgård
aff455a7e6
Merge pull request #17391 from hrydgard/key-bind-popup-workaround
Better (but not great) workaround for key bindings that pop up dialogs.
2023-05-03 08:33:01 +02:00
Henrik Rydgård
52b7bf502f
Merge pull request #17392 from hrydgard/misc-crash-fixes
Misc crash fixes from mystery thread
2023-05-02 23:41:32 +02:00
Henrik Rydgård
97488c0a79 Vulkan: Before cleaning the shader managers, drain the shader compile queue.
Mainly paranoia, but might help with the mutex crash from #17364
2023-05-02 22:05:28 +02:00
Henrik Rydgård
c037f6731d Better (but not great) workaround for key bindings that pop up dialogs. 2023-05-02 21:36:17 +02:00
Henrik Rydgård
919979eece Disable excessive logging 2023-05-02 11:40:50 +02:00
Henrik Rydgård
ee7e8d7c06 Add a unit test, fix listing zip directories 2023-05-02 11:35:45 +02:00