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