Commit graph

350 commits

Author SHA1 Message Date
kd-11
406a519400 rsx: Implement deferred transform constants load 2024-05-12 21:26:25 +03:00
kd-11
c1aaa1bcf6 Get reworked RSX to compile 2024-04-13 03:29:57 +03:00
kd-11
10fe14e783 rsx: Separate register context from RSX thread 2024-04-13 03:29:57 +03:00
Megamouse
b501953d41 rsx: remove unused param 2023-12-30 19:07:35 +01:00
kd-11
2b9bfc0ec2 rsx: Pick tiler/detiler according to actual block size 2023-12-30 12:35:23 +01:00
kd-11
475191cf7f rsx: Fix typo 2023-12-27 21:25:46 +01:00
kd-11
69a463ad02 rsx: Support DMA tiling in the CPU blit path 2023-12-26 18:30:00 +03:00
kd-11
51fc193395 rsx: De-spaghettify nv3089::image_in
- This function was a disaster with random code added in without much thought over a decade.
- Restructures the logic into decode and transfer steps for easier management.
2023-12-26 18:30:00 +03:00
kd-11
ab6bcd32a9 rsx: Improve strict mode check in 308a::color
- The chances that someone is using strict mode is lower than the odds of having default ZCULL
2023-12-09 22:34:02 +03:00
kd-11
67f97b0e15 rsx: Let 308a::color have a synchronization side-effect in strict mode
- Some games use 308a::color to implement custom sync primitives (ETQW).
- When the color data is written, the engine assumes all occlusion reports are ready which can cause severe flickering if we don't flush the pipeline.
2023-12-09 22:34:02 +03:00
Eladash
5fde96d563 rsx: Discard color mask writes with reserved bits 2023-08-25 05:41:54 +03:00
Megamouse
16f869fe5a logging: minor trace optimizations 2023-06-15 19:48:15 +02:00
kd-11
d0c029c83e rsx: Ignore bad face mode configuration 2023-01-28 21:11:32 +03:00
kd-11
6adcabda29 rsx: Fix graphics state foot-gun 2023-01-26 11:42:39 +03:00
kd-11
719e7a9d56 rsx: Fix inadvertent signal override for MSAA 2023-01-17 02:24:21 +03:00
kd-11
bd69466e94 rsx: Fix some pipe state signal propagation routines 2023-01-16 15:20:53 +03:00
kd-11
2752cd1390 rsx/vk: Fix some problems with dynamic state updates 2023-01-11 16:48:53 +03:00
kd-11
29c1b20b41 Fix compilation 2023-01-11 16:48:53 +03:00
kd-11
71efb3bc84 rsx: Use gcm cast to handle input enum validation 2023-01-11 16:48:53 +03:00
kd-11
c7fed20f3c vk: Short-circuit program load if state did not change
- TODO: Incorporate VK_EXT_extended_dynamic_state
2023-01-11 16:48:53 +03:00
kd-11
3dd6e5664c rsx: Do not call a dynamic function to simply test-and-set. Do it inline. 2023-01-11 16:48:53 +03:00
kd-11
eae1ac6558 refactor: Fix build 2023-01-11 16:48:53 +03:00
kd-11
3dba894369 rsx: Minor refactoring RSXThread
- Part 1 of many
2023-01-11 16:48:53 +03:00
kd-11
388d090b91 rsx: Propagate surface format changes to shader ROP control 2022-12-19 23:13:25 +03:00
Eladash
151a0955cf rsx: Implement draw call stepping 2022-12-10 15:09:42 +01:00
kd-11
0737c788fc rsx: Fix parsing of broken command streams with hanging begin/end commands without a pair.
- While these are game bugs, the parser shouldn't break on encountering them.
2022-10-12 11:19:52 +03:00
kd-11
d6d7ade6e3 vk: Reload state on dynamic state changed 2022-10-09 03:00:39 +03:00
kd-11
ffe8133865 vk: Avoid unnecessary dynamic state updates 2022-10-07 11:53:34 +03:00
kd-11
5281a85b67 rsx: Fix compiler warnings 2022-09-28 12:55:31 +03:00
kd-11
de28c812e8 rsx: Re-evaluate color MRT setup when the surface target type changes 2022-09-28 12:55:31 +03:00
Nekotekina
6ff6a4989a Implement at32() util
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
Nekotekina
b49a1f27eb Warning fixes 2022-09-17 16:35:02 +03:00
Elad Ashkenazi
cd2adbad9a Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi
99730ac4f9 Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi
d2ab3383ad Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi
3b15a6b39e Update rsx_methods.cpp 2022-08-03 17:15:59 +03:00
Elad Ashkenazi
651e58f443 rsx: Trivial optimization 2022-08-03 17:15:59 +03:00
Eladash
ab27ee4cf4 Savestates/RSX: Save NV406E semaphore waiting 2022-07-12 15:15:42 +03:00
Eladash
4ade06f36f Savestates/RSX: Restore the ZCULL control state
And fix the ZCULL control state at the initial state of RSX.
2022-07-10 14:19:59 +03:00
Eladash
4ac88fa8d3 Savestates/RSX: Save drawing context 2022-07-08 12:57:43 +03:00
Eladash
7422ab9e55 rsx: Do not discard flip notifications 2022-06-25 15:30:41 +02:00
Eladash
f66256cc13 rsx: PS3 Native frame limiter improvements, add Infinite frame limiter
* Do not wait on DEVICE 0x30 semaphore, it seems like it is something to do with queue command synchronization.
 - This also fixes cellGcmSetFlipWithWaitLabel which is built specifically to enable accurate RSX flipping time, its waiting command is confirmed to be placed **AFTER** DEVICE 0x30 waiting.
* Fix default vsync state to be enabled. (and set it to enabled in cellGcmSetVBlankFrequency as well)
* Add experimental "Infinite" frame limiter mode.
* Fix spurious enabling of second vblank.
2022-06-25 15:30:41 +02:00
Eladash
264253757c rsx: Improve Null Renderer 2022-06-12 20:54:42 +03:00
Elad Ashkenazi
280aa6da91
rsx: Fix NV406E semaphore_acquire timeout detection (#12205) 2022-06-12 12:34:29 +03:00
Eladash
f9bc7458d4 rsx: Resurgence of HLE GCM 2022-06-06 12:56:25 +02:00
Elad Ashkenazi
9bb7e8d614
rsx: Implement atomic FIFO fetching (stability improvement) (non-default setting) (#12107) 2022-06-04 15:35:06 +03:00
Nekotekina
76c72351a5 rsx_methods: fix warning 2022-06-02 12:56:49 +03:00
kd-11
7c8fbc35bc rsx: Move PS3-compliant behavior to a new option 2022-05-21 16:35:35 +03:00
kd-11
d52bb78d2c rsx: Trivial non-blocking display synchronization 2022-05-21 16:35:35 +03:00
Eladash
cd74fb6a6d rsx: Implement HW accurate frame limiter 2022-05-20 22:40:48 +02:00