925 Commits

Author SHA1 Message Date
Stenzek
4132b5ef3d
Settings: Remove 'Increase Timer Resolution' option
It's no longer needed since I switched to high-resolution waitable
timers, which are supported on Win10 1803+.
2024-09-28 23:50:44 +10:00
Stenzek
ca6b99401b
Common: Build fix when compiling with AVX2 march 2024-09-28 19:43:23 +10:00
Stenzek
2cfad2126d
Common: Missed another SSE4 instruction 2024-09-25 01:37:07 +10:00
Stenzek
b971125469
MSBuild: Support creating legacy SSE2 builds 2024-09-23 21:19:28 +10:00
Stenzek
c439de6364
Common: SSE2 backsupport for vector classes
shuffle8() sucks, the rest aren't _too_ bad.
2024-09-22 21:06:05 +10:00
Stenzek
e1c876671a
Misc: More iNN => sNN 2024-09-22 21:06:05 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
19698559c3
System: Drop IPC server
The one group using it switched to shared memory exports anyway.
2024-09-21 22:26:05 +10:00
Stenzek
a7747c5be3
Common: Add 256-bit integer vector wrapper 2024-09-21 22:26:05 +10:00
Stenzek
96ece5de1c
SmallString: MSVC warning fix 2024-09-19 22:25:35 +10:00
Stenzek
369599202c
StringUtil: Speed up EncodeHex()/append_hex() 2024-09-18 21:42:46 +10:00
Stenzek
401295ebdb
Common: Allow PRINTFLIKE to work on Clang
And thus clang-cl.
2024-09-18 21:31:06 +10:00
Stenzek
d330dca38a
MetalDevice: Use CocoaTools methods 2024-09-13 19:52:09 +10:00
Stenzek
ad67ab7ec3
MetalDevice: Use TranspileAndCreateShaderFromSource() 2024-09-13 17:31:59 +10:00
Stenzek
ddcb0cb541
Misc: Warning fixes 2024-09-10 23:53:27 +10:00
Stenzek
d1770b616f
Settings: Default console logging to running from TTY 2024-09-09 20:55:15 +10:00
Stenzek
e2a3fe14f0
Cheats: Prevent inlining of memory functions
Clang is way too eager here and inlines the whole thing hundreds of
times within CheatList::Apply().
2024-09-09 18:53:51 +10:00
Stenzek
4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek
3078339f64
Common: Extract out ryml helpers 2024-09-09 00:35:31 +10:00
Stenzek
b10f043350
StringUtil: Fix typo 2024-09-09 00:35:12 +10:00
Stenzek
1956575710
Cheats: Fix detection of ungrouped cheat import 2024-09-08 11:49:59 +10:00
Stenzek
9d6ec23dc4
Common: Fix GSVector natvis 2024-09-07 21:53:32 +10:00
Stenzek
87eded4bce
FileSystem: Fix FD leak with atomic updated file on Linux
Also add the ability to explicitly commit and check for errors.
2024-09-03 20:43:10 +10:00
Stenzek
6d0f92d4fb
dep/fmt: Bump to v11.0.2 2024-09-03 17:54:43 +10:00
Stenzek
6a3b1a2725
MDEC: Vectorize 16 and 24-bit copy-out
Speedup of 15% and 6% in FMV playback respectively.
2024-09-02 17:57:26 +10:00
Stenzek
88ee70ef8a
Misc: Remove unused files 2024-09-01 23:17:17 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
14ab642ff3
Common: Add aligned_unique_ptr 2024-09-01 13:02:58 +10:00
Stenzek
81c9bdeeef
GSVector: Add a bunch of fp64 operations 2024-09-01 12:00:09 +10:00
Stenzek
cdba1fe25a
Common: Rename iNN -> sNN 2024-08-31 14:38:20 +10:00
Stenzek
c7a6e7e483
SHA1Digest: Span-ify 2024-08-26 21:27:51 +10:00
Stenzek
ae2e79f401
Util: Add CompressHelpers 2024-08-26 21:27:30 +10:00
Stenzek
88e4bf6aad
SmallString: Tidy-up and add wide string helpers 2024-08-26 14:06:18 +10:00
Stenzek
707453b596
FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
Stenzek
c8e61307b2
StringUtil: Use unicode replacement character in DecodeUTF8() 2024-08-25 13:56:01 +10:00
Stenzek
bda6869084
Qt: Implement per-game controller configuration 2024-08-24 14:10:25 +10:00
Stenzek
44a12db931
Log: Flush on every write
Slower, but if we crash, need the whole thing.
2024-08-18 12:18:10 +10:00
Stenzek
2e2451998c
Misc: Fix ARM32 build (again) 2024-08-14 21:39:29 +10:00
Stenzek
cbbfc2f11a
StringUtil: Add BytePatternSearch() 2024-08-13 14:47:11 +10:00
Stenzek
290c44f4c0
Error: Add TakeDescription() 2024-08-11 20:43:13 +10:00
Stenzek
8ad133dbc0
FileSystem: Fix crash on file open fail in WriteAtomicRenamedFile() 2024-08-09 12:36:21 +10:00
Stenzek
81295c8a7d
FileSystem: Correctly use lstat() on Linux 2024-08-06 15:52:26 +10:00
Stenzek
e499f9052a
MemMap: Fix inverted condition 2024-08-05 13:08:42 +10:00
Stenzek
6c5ffba18e
MemMap: Fix object leak on fallocate() failure 2024-08-05 12:39:17 +10:00
Stenzek
02fbfae6a0
System: Add advanced 'Export Shared Memory' option
Memory map is exported as duckstation_<pid>. Previously, this only
worked on Windows, now it is extended to Linux as well.
2024-08-04 20:28:07 +10:00
Stenzek
3a83c4265c
Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2024-08-02 23:56:07 +10:00
Stenzek
0321a2cdc4
Common: Purge ByteStream 2024-07-29 17:27:32 +10:00
Stenzek
6ce9e571ed
Misc: Purge remaining ByteStream references 2024-07-29 17:27:32 +10:00
Stenzek
a6518ff9dc
System: Rewrite save state I/O
No more ByteStream or virtual calls for every piece of data.
2024-07-29 17:27:32 +10:00
Stenzek
c83b5fdd05
FileSystem: Add AtomicRenamedFile 2024-07-29 17:27:32 +10:00
Stenzek
ab7a3e1934
BinaryReaderWriter: Add class for files as well as spans 2024-07-29 17:27:32 +10:00
Stenzek
876f212685
DynamicLibrary: Add patch to versioned filename 2024-07-28 19:06:17 +10:00
Stenzek
40356fc381
FileSystem: Remove unnecessary checks 2024-07-28 19:06:17 +10:00
Stenzek
7a3a72ec3d
GPU: Add display rotation option 2024-07-26 23:09:33 +10:00
Stenzek
f1f89d3f0f
BinarySpanReaderWriter: Add subspan methods 2024-07-21 13:33:41 +10:00
Stenzek
56dd9878e1
Misc: RISC-V build fixes 2024-07-19 22:25:57 +10:00
Stenzek
0815aedca2
FileSystem: Drop use of stat64()
We define _FILE_OFFSET_BITS on 32-bit Linux anyway.
2024-07-19 22:25:57 +10:00
Stenzek
7217536fdd
MD5Digest: Span-ify 2024-07-19 15:51:25 +10:00
Stenzek
41e15539f9
FileSystem: Add Error parameter to more functions 2024-07-19 15:51:25 +10:00
Stenzek
6176a21ff1
ProgressCallback: Eliminate redundancy and drop C format strings 2024-07-19 15:51:25 +10:00
Stenzek
24ef76bfee
StringUtil: Purge StdStringFromFormat() 2024-07-19 14:01:16 +10:00
Stenzek
59a2309a83
GPU: Use half width vector types where appropriate 2024-07-14 21:25:48 +10:00
Stenzek
d70f5ddb32
GSVector: Remove unused functions 2024-07-14 21:25:48 +10:00
Stenzek
ec851c9d6d
FileSystem: Add FTruncate64() 2024-07-09 21:38:38 +10:00
Nik Chizhov
40048cbbc8 fix: remove duplicated code 2024-07-07 12:45:49 +10:00
Stenzek
eba0794b4f
FileSystem: Add Error to file writing 2024-07-06 19:36:15 +10:00
Stenzek
29b3fa2b95
GSVector: Add {min,max}v_{u8,u16} 2024-07-06 19:36:15 +10:00
Stenzek
77488db3dc
Misc: Align CPU state and SPU voices to cache lines
Fixes the ~12% performance regression from the texture replacement
namespace'ify commit. Apparently LTO was placing the CPU struct in the
middle of a cache line...
2024-07-06 18:49:37 +10:00
Stenzek
487eb102b7
Common: __m128 shouldn't be used in nosimd 2024-07-04 19:18:47 +10:00
Stenzek
7927ec647f
Qt: Fix a couple of instances of inconsistent sorting 2024-07-04 13:25:26 +10:00
Stenzek
e0509ebd9f
Common: Remove Rectangle class 2024-07-03 15:54:32 +10:00
Stenzek
2a7de25505
Common: Remove gsvector.h dependency on assert.h 2024-07-03 15:44:12 +10:00
Stenzek
0ae6ddcf7f
Common: Add GSVector
Mostly based on PCSX2.
2024-07-03 00:24:12 +10:00
Stenzek
da2dc5fa1e
FIFOQueue: Optimize PopRange() for trivially-copyable types 2024-07-02 14:26:16 +10:00
Stenzek
422102989c
CMake: Remove unused macro 2024-06-30 16:55:04 +10:00
Stenzek
be8fbafd71
CPU/CodeCache: Always dynamically allocate code buffer
Reduces .bss size.
2024-06-30 16:45:51 +10:00
Stenzek
890f3fcf5d
Common/Log: Make actually writing unlikely
Move it out of the hot path.
2024-06-30 16:45:51 +10:00
Stenzek
dd420cbfcf
Common: Alloc failures in HeapArray are unlikely 2024-06-28 13:12:50 +10:00
Stenzek
ea3fa7fe3d
Postprocessing/FX: Fix locating shaders in subdirectories 2024-06-23 13:20:47 +10:00
TheUbMunster
4827e548be
BinarySpanReaderWriter: Fix off-by-one error (#3230)
fix off-by-one error
2024-06-23 11:12:04 +10:00
Stenzek
f1465ddf43
Memmap: Use Mach VM routines for memory mapping 2024-05-29 22:49:32 +10:00
Stenzek
4e905a63ec
Util: Add socket helper classes 2024-05-26 22:20:29 +10:00
Stenzek
8e5781266a
CrashHandler: Fix call stack on manual dump 2024-05-25 17:42:12 +10:00
Stenzek
cca7b46114
Assertions: Write crash dump on assertion fail 2024-05-25 17:42:12 +10:00
Stenzek
0240ea8b49
PageFaultHandler: Simplifications 2024-05-25 17:42:12 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek
e01efaa681
Log: Channel is [[maybe_unused]] 2024-05-22 22:16:58 +10:00
Stenzek
8e3284d8c6
Vulkan: Simplify loader using DynamicLibrary 2024-05-15 00:50:25 +10:00
Stenzek
88ace6e4ae
CMake: Detect cache line size dynamically on AArch64 Linux 2024-05-15 00:50:24 +10:00
Stenzek
d9003b10c3
SettingsInterface: Fix TinyString helper 2024-05-15 00:50:24 +10:00
Stenzek
117e6be1dc
HeapArray: Add span returners 2024-05-12 22:56:54 +10:00
Stenzek
c85e743573
Error: Strip trailing whitespace from Windows errors 2024-05-12 15:20:39 +10:00
Stenzek
4ca7753720
CrashHandler: Use SetUnhandledExceptionFilter() and terminate on crash
Fixes zombie processes sticking around.
2024-05-05 22:29:26 +10:00
Stenzek
fa104acdd1
Misc: Purge unused code and report startup error to host 2024-05-05 22:29:26 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
295081fe62
Misc: Replace offsetof with constexpr-friendly OFFSETOF
Fixes build with clang-18.
2024-04-28 15:25:24 +10:00
Stenzek
5477f2eae2
HeapArray: Fix swap() not swapping size
Even though it's not used.
2024-04-27 13:18:36 +10:00
Stenzek
d2b9195c66
MemorySettingsInterface: Warning fix 2024-04-25 15:06:41 +10:00
Stenzek
1cdfca155d
Qt: Clean and remove empty game settings 2024-04-25 14:02:16 +10:00
Stenzek
a5613fc815
System: Add OSD message when all enhancements are disabled 2024-04-22 00:38:46 +10:00
Stenzek
17b9736899
Misc: Use a 128b cache line size on Apple Silicon
Turns out it's not 64 bytes like I assumed. The things you learn.
2024-04-18 20:38:36 +10:00
Stenzek
9fd2994b73
Log: Fix crash with >1 instance + file log 2024-04-14 21:18:47 +10:00
Stenzek
6258cb9e0e
FullscreenUI: Various minor bug fixes 2024-04-13 19:57:25 +10:00
Stenzek
e2d87f554b
FileSystem: Canonicalize() after RealPath() 2024-04-11 14:44:29 +10:00
Stenzek
164062f80d
Build: Use C++20 for everything except reshadefx 2024-04-11 13:46:25 +10:00
Stenzek
f75a5605eb
SmallString: Add vformat overloads 2024-04-11 13:42:00 +10:00
Stenzek
631fca3042
SettingsInterface: Add SmallString overloads 2024-04-09 19:54:25 +10:00
Stenzek
6b7cf6a432
SmallString: Add missing methods 2024-04-09 19:54:25 +10:00
Stenzek
9dd686a994
ByteStream: Add error feedback 2024-04-07 13:10:34 +10:00
Stenzek
69c9133cd4
Common: Fix double free on opening invalid zip file 2024-04-05 17:23:29 +10:00
Stenzek
59a13d91ea
Image: Don't use libjpeg stdio functions
Fixes I/O in debug builds.
2024-04-03 23:01:53 +10:00
Stenzek
693982d755
SettingsInterface: Add Error to Save() 2024-03-31 15:50:29 +10:00
Stenzek
eb504143c1
FileSystem: Add Error to CreateDirectory()/RenamePath() 2024-03-31 15:50:13 +10:00
Stenzek
979b7bd36f
FileSystem: Use PathCchCanonicalizeEx() for GetWin32Path() 2024-03-30 00:46:38 +10:00
Stenzek
ab445ec69d
FileSystem: Handle paths longer than MAX_PATH on Windows 2024-03-29 16:23:03 +10:00
Stenzek
b143d96476
Build: Use deps DLLs on Windows 2024-03-24 16:02:59 +10:00
Stenzek
43eb6e20fa
System: Improve screenshot naming 2024-03-16 14:14:15 +10:00
Stenzek
9211d9f2e3
Path: Add CreateFileURL() 2024-03-16 14:10:35 +10:00
Stenzek
620d08f72d
Build: Move Image from common to util 2024-03-06 16:09:21 +10:00
Stenzek
f936a36c85
GPUDevice: Add GPUDownloadTexture
Which can also be based in host/client memory.
Use it for screenshots and VRAM downloads.
2024-02-29 18:56:50 +10:00
Stenzek
4a70164dac
CMake: Determine host page size at build time
Needed for running on Asahi Linux.
2024-02-25 20:30:41 +10:00
Stenzek
c1381cfda6
System: Gracefully handle memory allocaion failure 2024-02-25 20:30:41 +10:00
Stenzek
18ba2032ad
Error: Add AddPrefix()/AddSuffix() 2024-02-25 20:30:41 +10:00
Stenzek
fcb8ce1ebc
Common: Add DynamicLibrary 2024-02-25 20:30:40 +10:00
Stenzek
ea649bdb1b
Common: Fix duplicate fastjmp on Windows/CMake 2024-02-25 01:53:23 +10:00
Stenzek
d5fb5645fc
ByteStream: Move zstd wrapper to util project
Removes zstd dependency from common, fixes updater running on Mac.
2024-02-05 14:28:26 +10:00
Stenzek
a957fb669d
StringUtil: Fix inequal-length EqualNoCase 2024-02-04 15:22:38 +10:00
Stenzek
c2c3eac749
Build: Use shared webp/zstd/zlib 2024-02-03 19:41:56 +10:00
Stenzek
f66866ed73
GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
Stenzek
ecd8d97f72
FileSystem: Handle infinite symlink loops in FindFiles() 2024-01-21 00:07:32 +10:00
Stenzek
03d6500250
Log: Skip argument packing when below filter level 2024-01-14 01:44:21 +10:00
Stenzek
87a7c09466
GPU/HW: Improve heuristics for draw/write when copying 2023-12-15 16:05:44 +10:00
Stenzek
23d5b20da6
GPU/HW: Split dirty rect into draw/write
Significant performance improvement in Persona 2.
2023-12-14 20:23:49 +10:00
Stenzek
2cd747983a
SmallString: Pass string_view by value 2023-12-14 20:23:48 +10:00
Stenzek
4f84a98864
StringUtil: Pass string_views by value 2023-12-13 21:20:31 +10:00
Stenzek
710698f7e1
Misc: Remove StringUtil::{Starts,Ends}With, use C++20 2023-12-13 21:18:19 +10:00
Stenzek
79c226efff
SmallString: fmt -> format, format -> sprintf 2023-12-13 21:06:15 +10:00
Stenzek
fdd3edf73a
Common: Add LLVM SmallVector 2023-12-09 22:08:14 +10:00
Stenzek
a9ee2a34d8
SmallString: Add missing constructors/move operators 2023-12-09 22:06:59 +10:00
Stenzek
524625269f
Path: Add RealPath() 2023-12-05 16:05:27 +10:00
Stenzek
7ef3578630
ByteStream: Fix incorrect computation in Zstd SeekRelative() 2023-12-03 17:03:38 +10:00
Ganael Laplanche
5486a7a467 Fix get_thread_time() declaration on FreeBSD 2023-11-29 21:05:21 +01:00
Ganael Laplanche
af046c8987 Fix build on FreeBSD
FreeBSD's alloca(3) only needs <stdlib.h>
2023-11-29 20:54:12 +01:00
Stenzek
e382f2b64a
Settings: Add option to disable DSB/fbfetch 2023-11-28 14:38:38 +10:00
Stenzek
333c9fdf6f
Misc: Fix a couple of fmt errors 2023-11-28 14:38:38 +10:00
Stenzek
5cf41a41f3
JitCodeBuffer: Allocate within 32-bit range 2023-11-24 20:35:19 +10:00
Stenzek
bbeae07478
MemorySettingsInterface: Fix bool and SetValue() 2023-11-21 22:31:18 +10:00
Stenzek
cce7be4723
Misc: Make struct member functions file-local 2023-11-18 16:46:11 +10:00
Stenzek
6f66460ec0
Common: Remove ThreadPool class
No longer needed.
2023-11-06 23:17:58 +10:00