kd-11
7c572eb4dd
gl/vk: Correctly halve the invocation count when shrinking F32 to F16
2026-10-09 12:38:31 +03:00
kd-11
4d4c07c18a
vk: Ensure input attachments are in uncompressed layouts
2026-10-09 12:38:31 +03:00
kd-11
304d544bc1
ci: Skip cache load step if PR is marked with 'CI: Disable Build Caches' label
2026-10-08 23:07:27 +03:00
kd-11
e4694a7a2c
rsx/vp: Adjust constant access behavior to match real hardware
...
- Real hardware behavior for constants table access is complicated.
1. If you try to encode access of c[N] where N > 467 you read back 0 in the shader
2. If you try to bypass the limitation using ARL then the index wraps around 512.
3. Using the ARL bypass between 468 and 512 returns garbage.
2026-10-08 23:07:27 +03:00
kd-11
7f476dad89
rsx: Rework transform constant update logic
...
- This reverts commit 193975556d .
- Out of bounds writes are treated as NOP, same as real hardware
2026-10-08 23:07:27 +03:00
kd-11
222754bfd3
rsx: Use framebuffer aliasing bias to break ties between same-tag color and depth overlaps
2026-10-08 10:15:36 +03:00
kd-11
32b54f1864
rsx/vp: Process TXL input for potential ATTR references
2026-10-04 20:05:58 +03:00
kd-11
db7d845e09
rsx: Implement optimized variants of iota16 and iota32
...
- Upto 20x faster than std::iota on msvc
- 1-3x bump for GCC and clang
2026-10-03 18:27:05 +03:00
kd-11
b7f6f4e80f
rsx/fifo: Revert change in strict FIFO behavior when using atomic puller
2026-10-02 21:28:25 +03:00
kd-11
1c757181a0
rsx/lv2: Make the hw cursor resolution-aware
2026-10-02 19:56:35 +03:00
kd-11
5d8efbfeb9
rsx/lv2: Implement hardware bitmap cursor
2026-10-02 19:56:35 +03:00
kd-11
dd12be585e
rsx/overlays: Use std::span in place of std::vector to allow arbitrary memory reads
2026-10-02 19:56:35 +03:00
kd-11
fc746de37d
rsx/lv2: Document cellGcmCursor callbacks
2026-10-02 19:56:35 +03:00
kd-11
18f18b305f
gl/vk: Accept single-index draws for POINT rendering
2026-10-02 13:33:48 +03:00
kd-11
d10658b818
gl: Fix 2-sided stencil configuration caching
2026-10-02 13:33:48 +03:00
kd-11
b87a56979e
vk/gl: Allow cached resources with upto 512 depth slices
2026-10-02 13:33:48 +03:00
kd-11
5df3970a75
vk: Fix leaky ref-counts for reused query pools (unused quirk)
2026-10-02 13:33:48 +03:00
kd-11
a3409242ce
gl: Fix texture layout for RGB5A1 and BGR5A1 surfaces for readback/upload
2026-10-02 13:33:48 +03:00
kd-11
54ab16913e
vk: Fix WAW barrier when clearing the WSI present surface
2026-10-02 13:33:48 +03:00
kd-11
2ccc4983fa
gl: Fix partial clear of depth-only image (z16) when the DSV is dirty
2026-10-02 13:33:48 +03:00
kd-11
5741d891bb
vk: Only request UAB-compatible set layouts if the bindings require it
2026-10-02 13:33:48 +03:00
kd-11
4dce4ecbe5
gl: Use proper custom slot for polygon offset state caching
2026-10-02 13:33:48 +03:00
kd-11
a7e274234f
rsx/mtrsx: Fix fault range of emulated index expansion
2026-10-02 13:33:48 +03:00
kd-11
f1574d7060
rsx/nv3089: Clamp input height to 1 row
...
- Prevent underflow when calculating addresses. which can discard valid blit requests
2026-10-02 13:33:48 +03:00
kd-11
08b226b8f8
rsx/zcull: Fix find_query behavior
...
- Use umax instead of 0 to mean not-found.
2026-10-02 13:33:48 +03:00
kd-11
373d0ea7f0
rsx: Add bounds checking to transform constant loading
2026-10-02 13:33:48 +03:00
kd-11
babeda0ed2
rsx: Fix typo when replaying a constant_load_modifier_barrier
2026-10-02 13:33:48 +03:00
kd-11
c3f3529b98
rsx: Reset color write mask when re-evaluating color masks
2026-10-02 13:33:48 +03:00
kd-11
3fa07db78b
rsx/qt: Move the "disable blit engine upscaling" option to the advanced tab
2026-09-27 18:17:26 +03:00
kd-11
7f5f8c4a70
vk: Use all available threads for shader compilation during bootup
2026-09-25 20:33:15 +03:00
kd-11
56237b6858
rsx/lv2: Add a timeout to the queue drain logic
...
- Also adds an optimization to skip draining the queue if the command arg is the same.
2026-09-23 17:54:33 +03:00
kd-11
99a926d278
rsx: Force a full pipeline stall before invoking USER_COMMAND callback
...
- Proven with hardware tests
2026-09-23 17:54:33 +03:00
kd-11
ff40118b94
rsx/lv2: Fix back-to-back USER_COMMAND method invocation cloberring the callback argument
2026-09-23 17:54:33 +03:00
kd-11
d08d568d5e
vk: Fix renderpass keys attached to property blobs when seeding interpreter variants
2026-09-21 19:00:51 +03:00
kd-11
c938d3e049
vk: Support multiple attachments on renderpass key generation
2026-09-21 19:00:51 +03:00
kd-11
e59ed70470
rsx: Tweak logic regarding reuse of blit target sections
...
- Also optimizes for the common case where we overwrite the destination in full.
2026-09-21 19:00:51 +03:00
kd-11
accfecd2d1
vk: Expand the interpreter seed by taking most common formats into account
2026-09-20 21:09:01 +03:00
kd-11
507b395d4b
vk: Support linking shaders with a common pipeline cache
2026-09-20 21:09:01 +03:00
kd-11
7022a322a6
vk/interpreter: Add more seed variants and remove pipeline cache from interpreter code
2026-09-20 21:09:01 +03:00
kd-11
71f8a5e09d
vk: Clean up flat shading implementation
2026-09-20 21:09:01 +03:00
kd-11
a90c841b39
rsx: Fix flush predictor behavior when using surface cache targets for blit engine
2026-09-17 21:42:07 +03:00
kd-11
f2ac83f5eb
ci/build: Fix missing include for MacOS builds
2026-09-10 15:57:17 +02:00
kd-11
a226238355
rsx: Extra memory safety when rsx::thread crashes
2026-09-10 15:57:17 +02:00
kd-11
14bc19b7bd
ci: Remove code caches if PR has 'shaders' label
2026-09-10 10:20:50 +03:00
kd-11
06d28a5f11
rsx: Fix alpha test compilation when using native float16 types
2026-09-10 10:20:50 +03:00
kd-11
54014a7de4
rsx/qt: Add a debug setting to force programmable blending
2026-09-07 21:09:01 +03:00
kd-11
9a26a70e71
rsx: Fix decoding of 16-bit blend constants
2026-09-07 21:09:01 +03:00
kd-11
5aa23d0276
rsx: Don't force PB when we don't need to for performance reasons
2026-09-07 21:09:01 +03:00
kd-11
8a78c3ca59
rsx: Fix a really weird quirk when blending with XRGB output formats
...
- Regardless of the O/Z tag on the format, DST_ALPHA is always 1
- I don't know why it's that way, it shouldn't be but we're probably just looking at a hardware bug
2026-09-07 21:09:01 +03:00
kd-11
9c850a34f2
rsx: Fix ROP operation order.
...
- The correct order is sRGB -> ROUND -> ALPHA_TEST -> BLEND
- Blending DOES NOT run in linear space at all. The bytes are decoded as-is.
2026-09-07 21:09:01 +03:00
kd-11
78cb66ecfe
vk/gl: Fix byte order for RGB565 formats in line with hardware tests
2026-09-07 21:09:01 +03:00
kd-11
244491298b
vk: Clean up decode_rsx_state in preparation for refactor
2026-09-07 21:09:01 +03:00
kd-11
d55e9fcf22
rsx/vk: Implement programmable blending for MSAA targets
2026-09-07 21:09:01 +03:00
kd-11
0885cc617e
rsx: Minor optimization wrt shader export program options
...
- No need to rerun the blend config and depth state evaluation every time the shader changes.
- There's probably more that can be done, but I'll check later.
2026-09-07 21:09:01 +03:00
kd-11
b99fbe7bec
rsx: Minor refactor to prepare for MSAA support
2026-09-07 21:09:01 +03:00
kd-11
5a43724b44
rsx: Support variable blend target masks with programmable blending
2026-09-07 21:09:01 +03:00
kd-11
8e92a8d845
rsx/fp: Fix failing test cases for programmable blending
2026-09-07 21:09:01 +03:00
kd-11
05b4b10360
rsx: Properly implement signed blending modes
2026-09-07 21:09:01 +03:00
kd-11
87676e3632
rsx/vk: Respect programmable blending when requested
2026-09-07 21:09:01 +03:00
kd-11
e606570b44
vk: Set attachment usage flags to allow input attachments always
...
- Temporary measure. That really needs to be handled carefullly since most games will not actually need programmable blending.
2026-09-07 21:09:01 +03:00
kd-11
b6dc4e8e04
vk: Properly handle sub-pass dependency barriers
2026-09-07 21:09:01 +03:00
kd-11
284233bc6d
vk: Bind input attachments if required by pipeline configuration
2026-09-07 21:09:01 +03:00
kd-11
d7d1d9133b
vk: Properly propagate programmable blending flag down to renderpass caching
2026-09-07 21:09:01 +03:00
kd-11
c47bbab85f
rsx/vk: Plumb programmable blending shader emitter
2026-09-07 21:09:01 +03:00
kd-11
ab95783bc9
rsx: Update programmable blending code to be in line with current emulator state
2026-09-07 21:09:01 +03:00
kd-11
065b490eb4
rsx: Force a backend sync when calling nv4097::set_notify
2026-09-06 12:55:51 +03:00
kd-11
57dd6e763a
rsx/zcull: Use partial MM flush for report sync
2026-09-06 12:55:51 +03:00
kd-11
7a953ecf04
rsx/zcull: Fix broken nv3089 optimization
2026-09-06 12:55:51 +03:00
kd-11
0ead9328f2
rsx/mm: Implement partial queue flush
2026-09-06 12:55:51 +03:00
kd-11
1559b15afe
rsx: Fix broken ZCULL optimization
2026-09-06 12:55:51 +03:00
kd-11
25f1a9dfca
rsx/sync: Improve guest synchronization with host GPU operations
2026-09-06 12:55:51 +03:00
kd-11
2f53c4389f
rsx: Refactor rsx_utils header into smaller pieces
2026-09-06 11:54:20 +03:00
kd-11
c006a7f1a5
rsx/qt: Move blit engine upscaling option to debug settings
2026-08-31 02:15:50 +03:00
kd-11
d267b420f8
rsx: Don't overfit memory allocations in system RAM
...
- Avoids a lot of faults that would trigger slow flush operations when CELL is touching memory outside of the range we care about.
2026-08-31 01:27:51 +03:00
kd-11
726263377f
rsx/mm: Add unit tests
2026-08-31 01:27:51 +03:00
kd-11
0c486fb63a
rsx/mm: Implement range merging mechanics
2026-08-31 01:27:51 +03:00
kd-11
a8bfc50762
rsx/mm: Avoid flushing entire queue unless actually necessary
...
- Host MM operations are slow af
2026-08-31 01:27:51 +03:00
kd-11
85f0cc01ea
rsx: Loosen the access ordering guarantees a bit
2026-08-31 01:27:51 +03:00
kd-11
78e70af989
rsx: Add missing mm_flush in blit engine before RCB reload
2026-08-31 01:27:51 +03:00
kd-11
48d2b24813
rsx: Implement workaround for pitch compatibility of overlapping sections with blit engine targets
...
- Avoid generating surfaces that introduce pitch conflict!
2026-08-28 14:55:44 +03:00
kd-11
42cfad20eb
vk: Set up easy debug printing for captured traces
2026-08-28 14:55:44 +03:00
kd-11
85bc1d7074
rsx: Ensure blit targets do not straddle tile boundaries
2026-08-28 14:55:44 +03:00
kd-11
7a4c82aec9
rsx: Allow unlocked DST surfaces to still take writes from the host side
2026-08-28 14:55:44 +03:00
kd-11
0d9afb039e
rsx: Do not force blit writes to LOCATION_MAIN to use CPU blit unconditionally
...
- Blit DST targets are now owned by the surface cache. So always try matching there first.
- Block transfers still go through CPU copy path.
2026-08-28 14:55:44 +03:00
kd-11
71a6aeadcf
rsx: Propagate swizzle flag to surface cache from blit engine
2026-08-28 14:55:44 +03:00
kd-11
124462fbab
rsx: Avoid false surface match rejection when data is uploaded into the surface cache during RTT scan
2026-08-28 14:55:44 +03:00
kd-11
7d1b67b17a
rsx: Avoid unconditional interpolation in blit engine if the original PS3 request did not actually do interpolation
2026-08-28 14:55:44 +03:00
kd-11
6f3df0ba7b
rsx: Disable blit engine upscaling by default
...
- Temporary measure to keep regression testing on track.
2026-08-28 14:55:44 +03:00
kd-11
26209734e3
rsx: Fix potential section leak when discarding locked framebuffer region
2026-08-28 14:55:44 +03:00
kd-11
37d64bf887
rsx: Limit full range blit target invalidation to nul sections only
2026-08-28 14:55:44 +03:00
kd-11
e3585a4ec1
rsx: Ensure blit targets are always locked regardless of origin
2026-08-28 14:55:44 +03:00
kd-11
ac50c09b9d
rsx: Fix BGRA8 gcm_format -> surface_format selection
2026-08-28 14:55:44 +03:00
kd-11
cb53f2c4d6
rsx: Fix build on non-windows platforms
2026-08-28 14:55:44 +03:00
kd-11
802320ec67
rsx: Allow blit engine to preserve resolution scaling
...
- Since we're using the surface cache for storage, might as well enable resolution scaling on blit resources.
2026-08-28 14:55:44 +03:00
kd-11
27bfd637e6
rsx: Move blit_engine_utils nested group to protected section (refactor part10)
2026-08-28 14:55:44 +03:00
kd-11
2caa367615
rsx: Move some blit engine helpers to cpp file (refactor part9)
2026-08-28 14:55:44 +03:00
kd-11
34c34504f3
rsx: Move blit functions to the subclass (refactor part7)
2026-08-28 14:55:44 +03:00
kd-11
5d8862f6dd
rsx: Move blit engine target creation to separate function (refactor part6)
2026-08-28 14:55:44 +03:00
kd-11
eea763352a
rsx: Move blit_src creation to a separate helper
2026-08-28 14:55:44 +03:00
kd-11
5b2039d588
rsx: Drop unused paths from blit engine (refactor part4)
...
- We now create all targets in the surface cache. We don't need to do any local scans.
2026-08-28 14:55:44 +03:00