Commit Graph
100 Commits
Author SHA1 Message Date
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