Commit Graph

12490 Commits (master)
 

Author SHA1 Message Date
Stenzek 3d16465175
InputManager: Clear bindings when input is lost
Cancel active bindings for a disconnected device and when background input is
disabled. Match source cleanup by source type and device index so buttons,
axes, and hats are all reset together.
6 days ago
Stenzek 396dae9233
InputManager: Release cancelled hold bindings
Treat cancellation like release for hold hotkeys and macro triggers, preventing
fast-forward, turbo, rewind, or macros from remaining active after chord
supersession or state clearing.
6 days ago
Stenzek ef86bf11ca
InputManager: Add hotkey flag for UI-activatable 6 days ago
Stenzek 6ef27141fd
MSBuild: Force SHA256 source file hashes
Works around disassembly view being broken in Clang-CL builds.

See https://developercommunity.visualstudio.com/t/Debugger-disassembly-view-fails-with-cla/11123599
6 days ago
Stenzek d7036f3470
Qt: Persist use-serial-file-names in cover downloader 1 week ago
Stenzek 63d72ac156
GameDB: DisableUpscaledDirectTextures for Fear Effect 1 week ago
Stenzek 28ea031c40
GPU: Add Disable Upscaled Direct Textures option
Needed for games like Fear Effect which use FMV/16-bit backgrounds.

Probably others, feel free to suggest/add them.
1 week ago
Stenzek 024face27d
Qt: Add context menu to game list exclusion list
And allow multiple items to be selected.
1 week ago
Stenzek 5b056fc8df
Qt: Fix icon missing on newly-added excluded paths 1 week ago
Stenzek 0874ed65d2
Qt: Fix empty debugger toolbar window title 1 week ago
Stenzek 9c335d9e03
Qt: Add icons to context menu 1 week ago
Stenzek 5cc77ac186
Qt: Persist debugger window state 1 week ago
Stenzek c81a747ff8
Qt: Add multi-instruction selection to debugger
And the ability to copy code to the clipboard.
1 week ago
Stenzek b5f0fb9c36
FullscreenUI: Tweak separator style 1 week ago
Stenzek 8c6ff3bfc7
VideoThread: Propagate thread startup failure
Return video thread creation errors through CoreThreadInitialize and unwind
the core-thread resources initialized before the failure.

Unlikely to occur, and if thread creation fails we have bigger problems,
but whatever.
1 week ago
Stenzek 0cad5f5054
VideoThread: Dispatch thread toggle failures safely
Run fatal reconfiguration handling through the active video execution context
so video-owned teardown and thread assertions execute on the correct thread.
1 week ago
Stenzek c54f16ae57
VideoThread: Snapshot fullscreen state for resize
Pass the core-thread fullscreen state through the queued resize callback so
video-thread recovery does not read mutable core-owned state.

Assert fullscreen entry points stay on the core thread.
1 week ago
Stenzek 7131d91442
VideoThread: Destroy inline reconfigure commands
Run the non-trivial reconfigure command destructor after direct single-threaded
execution to release copied settings resources before FIFO storage is reused.
1 week ago
Stenzek e0519a899f
VideoThread: Use video-owned fullscreen settings
Read exclusive fullscreen control from the GPU settings copy on the video
thread, preserving queued settings ordering and avoiding a settings race.
1 week ago
Stenzek 67d5943128
VideoThread: Keep successful software fallback
Mark backend creation successful after the fallback software renderer
initializes so it is not immediately destroyed.
1 week ago
Stenzek 7c173d9147
VideoThread: Enforce command producer ownership
Assert that command allocation, submission, and synchronization run on the
core thread. Marshal exclusive-fullscreen loss to the core thread instead
of enqueueing recursively from the video thread.
1 week ago
Stenzek 6fe06b99e7
VideoThread: Preserve command queue empty slot
Reserve one aligned command slot so full and empty ring states cannot alias.

Assert that aligned commands fit within the usable queue capacity.
1 week ago
Stenzek 74a743a5e4
GPU/HW: Use multi-threaded pipeline compilation 1 week ago
Stenzek 94e5f08f18
GPU/HW: Use multi-threaded shader compilation 1 week ago
Stenzek 7c239271fd
GPU/HW: Use UIDs as shader cache keys 1 week ago
Stenzek 5ebeff9c23
GPU/HW: Use UIDs for shader generation 1 week ago
Stenzek f541abb11e
GPUDevice: Add LoadPipeline() for supported backends
Returns null if the cache isn't hit, so the caller can know when to
parallelise pipeline creation.
1 week ago
Stenzek 7951eba8a0
GPUDevice: Support looking up cached shaders and opaque keys 1 week ago
Stenzek 5420d699e2
GPUDevice: Use ObjectArchive for shader cache 1 week ago
Stenzek 79371c47a2
HTTPCache: Use object archive synchronization 1 week ago
Stenzek 3151c5256b
ObjectArchive: Synchronize access internally
Reduces the locked portion to not include compression/decompression.
1 week ago
Stenzek 60b06c0e28
ObjectArchive: Use binary keys instead of strings 1 week ago
Stenzek 0d2e66235c
Core: Make TaskQueue thread count dynamic 1 week ago
Stenzek efecb78dbd
Threading: Add GetProcessorCount() 1 week ago
Stenzek 563c355131
TaskQueue: Add GetOutstandingTasks() and ExecuteOneTask() 1 week ago
Davide Pesavento e26fa60915
Update Italian translation (#3798) 1 week ago
ranchodelaluna 390c878f78
GameDB: Persona localizedName 1 week ago
Stenzek 96268ab66a
Qt: Remove empty widget text 1 week ago
Stenzek 0910d4edc6
FullscreenUI: Reduce text size of small-mode category badges
So it's not larger than the title itself...
1 week ago
Stenzek 3c141418a3
FullscreenUI: Fix extra uneven height in achievement notifications 1 week ago
Stenzek 16452a0483
Achievements: Check for login request in LoadStateFromBuffer()
Game load request won't be created if we're still logging in and it's
taking a while to complete.
1 week ago
Stenzek 88ccab2a23
Achievements: Fix some options potentially not live-updating 1 week ago
Stenzek 025ea24fc4
GPU/HW: Fix typo in CompilePipelines()
Results in VRAM copy pipeline always succeeding even when it failed.
1 week ago
Stenzek ed6720bbf5
Tests: Fix core-tests building on Windows 2 weeks ago
Stenzek a4904189cf
VulkanDevice: Use timeline semaphores when available 2 weeks ago
Stenzek a24350c47c
SPU: Decode ADPCM nibbles in pairs
Consume both nibbles from each ADPCM data byte in sequence, halving
loop-control and packed-byte load overhead.
2 weeks ago
Stenzek 5a7a301a78
SPU: Consolidate capture buffer writes
Write the four per-frame capture values through one helper so the capture
position, IRQ target, and IRQ eligibility are loaded once. Preserve the
original channel order and continue checking for an IRQ immediately after
each corresponding RAM store.
2 weeks ago
Stenzek 690ead7eec
SPU: Vectorize Gaussian interpolation
This turns four scattered coefficient loads and four scalar multiplies into two
contiguous 64-bit loads and one vector signed multiply-add with a horizontal
reduction.

The coefficient and sample bounds keep every intermediate within signed 32-bit
range, so reassociation is exact.

Gets us another ~2.5% when SPU-bound.
2 weeks ago
Stenzek 2781502e04
SPU: Streamline per-voice flag processing
- Walk the voice array directly and consume the noise, pitch modulation, and
  reverb masks one bit at a time.

- Pass the previous voice volume into SampleVoice explicitly, preserving pitch
  modulation ordering while avoiding repeated indexed lookups and the per-voice
  address multiplication generated for the 148-byte Voice structure.

~2% speedup in SPU-bound scenarios.
2 weeks ago
Stenzek c66b2694da
DynLibs: Fix libwebp loading on Windows 2 weeks ago