Commit Graph

12370 Commits (17a721c8f7be7217d9ac28e6f4d8a3d67ed33be6)
 

Author SHA1 Message Date
Stenzek fe32554cce
GDBServer: Restore run state after disconnect
Remember whether the system was running before the first debugger
client forced it to pause, and resume only after the final client
disconnects. This prevents a dropped connection or disabled server
from leaving an originally running system paused, while preserving a
pause that predated debugger attachment and avoiding premature resumes
with multiple clients.
2 months ago
Stenzek d176e31aa3
GDBServer: Support signal resume packets
Accept the remote protocol's C and S packet forms, including their
optional resume addresses, so GDB can continue or step after reporting
a signal. Validate the signal and address fields completely; signal
delivery itself is intentionally ignored because the emulated
bare-metal target has no inferior process signal mechanism.
2 months ago
Stenzek cba85882a6
GDBServer: Reject oversized incoming packets
Enforce the advertised PacketSize while scanning the receive buffer.
Close clients that exceed the framed packet limit so an unterminated
or oversized request cannot fill the fixed receive buffer and leave
the connection permanently stalled.
2 months ago
Stenzek 54d074fb6a
GDBServer: Retransmit rejected replies
Keep the most recently framed RSP reply for each client and resend it
when GDB returns a negative acknowledgement. Build acknowledgement and
reply frames separately so only the reply packet is retained for
protocol recovery.
2 months ago
Stenzek 60a4ec3639
GDBServer: Queue complete protocol packets
Expose BufferedStreamSocket's allow-smaller policy through Write while
preserving the existing default for other callers. GDB replies now
require enough queue space for the complete RSP packet and close the
connection instead of silently discarding an unwritten suffix.
2 months ago
Stenzek 8d7046a893
GDBServer: Bound remote packet sizes
Advertise a 16 KiB RSP PacketSize and cap memory reads so their
hex-encoded replies fit within it. This prevents small m packets from
requesting multi-gigabyte allocations and keeps generated replies
within the server's transport capacity.
2 months ago
Stenzek 7c279dc96b
GDBServer: Invalidate code after memory writes
Invalidate affected emulated instruction-cache lines and translated
RAM code pages after a successful M packet. This ensures debugger
patches and GDB's fallback software breakpoints execute the newly
written instructions instead of stale cached code.
2 months ago
Stenzek 4e0940500d
GDBServer: Apply register writes atomically
Decode and validate the complete G packet before mutating CPU state,
preserve the zero and read-only BadVaddr registers, and return the
protocol-defined OK response. Apply SR and CAUSE masks and side
effects, and rebuild the instruction pipeline only when PC changes.
2 months ago
Stenzek aea3746414
GDBServer: Validate complete packet fields
Require command payloads, numeric fields, breakpoint kinds, and
checksums to be consumed in full. This prevents valid command prefixes
and partial numeric conversions from accepting trailing garbage while
retaining the protocol-defined breakpoint packet layout.
2 months ago
Stenzek 3885778a2b
GDBServer: Reply to invalid command arguments
A checksum-valid packet must be acknowledged even when its command
arguments are malformed. Return an RSP error or unsupported reply from
the affected handlers instead of sending a negative transport ACK,
which caused GDB to retransmit the same valid packet indefinitely.
2 months ago
Stenzek 05166d1a79
GDBServer: Track the last stop signal
Record the signal reported by each client's most recent stop reply and
use it when handling the '?' query. Interrupt requests now report
SIGINT while single-step, breakpoint, and other system pauses continue
to report SIGTRAP.
2 months ago
Stenzek c7324e3333
GDBServer: Preserve unchanged resume state
Avoid calling SetPC when an address-qualified continue or single-step
names the CPU's current PC. The next instruction is already prefetched
at that address, and rebuilding the pipeline would incorrectly discard
pending load and branch-delay state.
2 months ago
Stenzek a36b75716a
GDBServer: Support single-step addresses
Honor the optional resume address carried by the remote protocol's
single-step packet. Validate the address and update the CPU through
SetPC before setting the single-step flag so the instruction pipeline
resumes from the requested location.
2 months ago
Stenzek 1a9379bd63
GDBServer: Support continue addresses
Route continue packets through the normal checksum-validated command
dispatcher and parse the optional resume address defined by the remote
protocol. Address-qualified continues now update the CPU through SetPC
before resuming instead of being treated as unsupported commands.
2 months ago
Stenzek f04e08b245
GDBServer: Fix stop reply acknowledgements
Acknowledge step and continue packets when they are received, then send
the eventual stop reply without another leading ACK. This avoids
emitting two acknowledgements for a single resume packet and prevents
external system resumes from producing stray protocol ACKs.
2 months ago
Stenzek d92fe3dacf
Data: Move all PromptFont glyphs to unallocated range
They just keep conflicting with the text/emoji fonts otherwise.

Also drop some unused glyphs.
2 months ago
Stenzek 0697597c5a
Controller: Make mandatory functions pure virtual 2 months ago
Stenzek f7797b57ea
Controller: Add 'Disable Simultaneous Opposing Cardinal Directions' option 2 months ago
Stenzek ee21478ad1
GPU/HW: Don't miss updating read texture for recursive draws
Fixes missing glow in Castlevania SOTN.
2 months ago
Stenzek 6f704d405b
FullscreenUI: Fix shared card name not disabling if unused 2 months ago
Stenzek 4431915b41
FullscreenUI: Expose multitap memory cards 2 months ago
Stenzek 2f9c587622
FullscreenUI: Fix shared memory card selection 2 months ago
Stenzek 48a1a06f59
Qt: Don't try to load HTTP URLs as animated images in game list 2 months ago
Stenzek 41ee402156
D3D12Device: Track readback source usage
Record the current fence on source textures used by asynchronous readback copies.
2 months ago
Stenzek 7b15961208
D3D12Device: Fix incorrect push constant root parameter index
ComputeSingleTextureAndPushConstants should not be offset.
2 months ago
Stenzek 685cf83c87
D3D12Device: Order dependent compute UAV accesses
Insert UAV barriers for image render targets before each compute dispatch.
2 months ago
Stenzek a4a03c476d
D3D12Device: Assert alignment of download texture footprints
Also use destination coordinates for subregion copies.
2 months ago
Stenzek 402f9207f7
D3D12Device: Set render-pass clear formats
Initialize render-pass descriptors and provide the required RTV and
DSV formats for clear accesses.
2 months ago
Stenzek b5f821bf4f
D3D12Device: Transition all uploaded subresources
Use an all-subresource barrier after initial uploads so tracked state matches
every texture slice and mip level.
2 months ago
Stenzek 2273890101
D3D12Device: Create texture arrays with all layers
Use the requested array size and create array-aware UAV and mipmap
views for layered textures.
2 months ago
Stenzek 6e2f06a55a
D3D12Device: Bound persistent descriptor allocation
Mark unused tail bits unavailable so partial descriptor heaps cannot return
out-of-range handles.
2 months ago
Stenzek a8c9324f4a
D3D12Device: Transition cleared compute targets to UAV
Commit pending clears before transitioning image render targets to
unordered-access state.
2 months ago
Stenzek 69c5051a80
D3D12Device: Restore state after mipmap rendering
Rebind the normal pipeline state after the temporary mipmap pass and
explicitly set its triangle topology.
2 months ago
Stenzek 7b690ec1f4
VulkanDevice: Reset descriptor builder storage
Reset all backing-info cursors alongside descriptor writes so a cleared
builder can be reused safely.
2 months ago
Stenzek a8de757b97
VulkanDevice: Store compute specialization values
Write each specialization value into packed backing storage and map entries to
that storage instead of leaving zero-initialized data.

Not used anywhere, but was still wrong.
2 months ago
Stenzek d1720c040b
VulkanDevice: Respect fixed surface extents
Use currentExtent on normal WSI platforms and retain the intentional
window-size override only for Android and macOS.
2 months ago
Stenzek 40e178787a
VulkanDevice: Fix legacy render pass attachments
Don't set the attachment-description flags (was totally wrong).

Describe only the first render target as the feedback-loop input attachment.
2 months ago
Stenzek 5f40f0ac1b
VulkanDevice: Select advertised surface format pairs
Return complete VkSurfaceFormatKHR entries from the surface query, preserve
color spaces, and only choose an arbitrary format for the single
undefined-format case.
2 months ago
Stenzek 8462365389
VulkanDevice: Address texture array subresources
Create array views for layered textures, copy and blit the requested layer.

Also fix the off-by-one in Map().
2 months ago
Stenzek 668f39fabc
VulkanDevice: Wait for presentation before swapchain teardown
Make GPU-idle waits include queued presentation work and use them before resize
and present-mode recreation destroys swapchain semaphores.
2 months ago
Stenzek 037ee47f7e
VulkanDevice: Validate imported host buffer memory
Create the buffer before allocation, intersect both memory-type masks, honor
size and dedicated requirements, and propagate bind failures.

Also require that the memory is coherent, because otherwise we'd have to resort
to architecture-specific cache flush methods. vkInvalidateMappedMemoryRanges()
is only valid on memory mapped by vkMapMemory().
2 months ago
Stenzek 6584adde9b
VulkanDevice: Fix download buffer barrier ranges
Synchronize the actual offset and full pitched-row span written by image
readbacks, and invalidate the matching allocation range on the host.

Also fix the incorrect source stage.
2 months ago
Stenzek 4b5edbb85c
VulkanDevice: Preserve mapped texture upload pitch
Commit and copy partial texture maps with the same mapped-width pitch that was
reserved and returned to the caller.
2 months ago
Stenzek fc3e117f8d
VulkanDevice: Synchronize compute image accesses
Use the compute storage-image layout for dispatches and include compute shader
stages when transitioning sampled images.
2 months ago
Stenzek bbac943b5c
VulkanDevice: Expose shared UBO binding to compute shaders 2 months ago
Stenzek b3b57a2a02
VulkanDevice: Bind initial compute pipelines correctly
Select the pipeline bind point from the pipeline layout while initializing shared
command-buffer state needed by later graphics draws.
2 months ago
Stenzek 213c5b450e
VideoPresenter: Use transfer pitch for screenshots
Unless it's an imported buffer. Should already be the same, but it's
needed for D3D12.
2 months ago
Stenzek 5245a58b0e
Settings: Fix invalid memory card values after install 2 months ago
Stenzek e175c84227
Bus: Pack state in struct 2 months ago
Stenzek 8778034bf2
RegTest: Fix compiling again 2 months ago