Commit graph

167 commits

Author SHA1 Message Date
RipleyTom
cd87a64621 Headers cleanup 2025-02-11 20:38:35 +01:00
kd-11
89eb473dce rsx: Fix graphics corruption when switching between shader interpreter and recompiler at runtime 2025-02-02 12:08:05 +03:00
kd-11
27c56cde22 rsx/shaders: Track active MRT count per shader
- Also use more robust hashing to avoid collisions
2025-01-10 04:34:28 +03:00
Megamouse
1ab3a0bd73 RSX/Qt: Reuse gs_frame if possible 2025-01-06 15:49:09 +01:00
kd-11
681debd8f6 gl: Finalize host labels implementation 2024-10-23 16:33:44 +03:00
kd-11
6ce1816e3f rsx: Move the host job management into common code to share with GL 2024-10-23 16:33:44 +03:00
kd-11
cc313bfba1 gl: Implement transform constants patching 2024-05-12 21:26:25 +03:00
kd-11
f748fe688c gl: Allow selecting FSR1 upscaling from the settings 2024-02-26 18:15:06 +03:00
kd-11
12694dcf69 gl: Introduce the concept of scaling passes to the backend 2024-02-26 18:15:06 +03:00
kd-11
bc141831f7 gl: Implement display output format correction 2024-01-04 13:03:32 +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
Megamouse
3f2c75d920 overlays: move debug overlay to native overlay 2023-12-20 23:33:43 +01:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows 2023-07-11 21:40:30 +03:00
kd-11
4d565eade6 rsx: Drop format information from the vertex cache and use a simpler model that is much faster 2023-06-10 01:36:10 +03:00
kd-11
6adcabda29 rsx: Fix graphics state foot-gun 2023-01-26 11:42:39 +03:00
kd-11
3dba894369 rsx: Minor refactoring RSXThread
- Part 1 of many
2023-01-11 16:48:53 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
kd-11
3fd846687e gl: Refactor buffer object code 2022-06-03 11:54:09 +03:00
kd-11
9a2d4fe46b rsx: Relocatable transform constants 2022-03-26 16:10:18 +03:00
kd-11
472efc08eb rsx: Implement precise ZCULL stats 2021-09-06 20:04:03 +03:00
Megamouse
37425d6fcd GL: Remove unused copy functions 2021-04-30 08:23:16 +02:00
Nekotekina
ea5e837bd6 fixed_typemap.hpp: return reference 2021-03-02 16:08:14 +03:00
Nekotekina
a8e0d261b7 types.hpp: more cleanup
Also fix compilation.
2020-12-22 19:08:09 +03:00
kd-11
0ef5743261 rsx: Fix sampler descriptor updates for framebuffer resources
- Each desc manages its own lifetime now instead of relying on global timestamp check
- Fixes situation where same object remains active without update for long
2020-12-16 10:10:06 +03:00
Nekotekina
eb66302907 atomic.hpp: replace std::atomic with atomic_t
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
RipleyTom
af8c661a64 Remove BOM markers 2020-12-06 15:30:12 +03:00
kd-11
3ddfa288cf rsx: Use multithreaded shader compiler backend 2020-11-21 20:43:15 +03:00
kd-11
8d8fb4a2e4 rsx: Remove ARGB->D24S8 conversion shader which has been deprecated for years since compute capabilities were added to the emulator 2020-06-15 14:18:12 +03:00
kd-11
1677618c75 rsx: Implement stippled rendering 2020-05-30 14:47:10 +03:00
kd-11
0072df7f20 rsx/gl: Add basic interpreter support to OGL
- Adds basic interpreter functionality.
- Flow control and other instructions not yet implemented.
2020-04-30 15:02:59 +03:00
kd-11
4965bf7d7a gl/vk: Refactor draw call handling and stub shader interpreter
- Refactors backend draw call management to make it easier to extend
  functionality.
- Stubs shader interpreter functionality.
2020-03-23 14:47:28 +03:00
kd-11
1725f7a34b rsx: Add anaglyph 3D filter 2020-03-07 16:58:35 +03:00
kd-11
43dae6c14d gl: Implement RCB/RDB 2020-02-06 17:54:05 +03:00
kd-11
7453e46a7c rsx: Refactor out complex present code into separate files
- Also restructures present code to have image lookup in a separate
re-usable function.
2020-01-18 19:52:52 +03:00
kd-11
8dfea032f2 rsx: Remove deprecated do_method path that has been superceded by c++ inheritance for many years 2019-12-29 13:49:46 +03:00
Emmanuel Gil Peyrot
ef368c5171 rsx: Replace gsl::byte with C++17’s std::byte 2019-11-09 19:30:05 +01:00
Jan Beich
5ec35c7daa rsx: unbreak build with Clang 9
ld: error: rpcs3/CMakeFiles/rpcs3.dir/main_application.cpp.o: unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLGSRender.cpp.o): unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLRenderTargets.cpp.o): unable to find library from dependent library specifier: opengl32.lib
ld: error: rpcs3/Emu/librpcs3_emu.a(GLVertexBuffers.cpp.o): unable to find library from dependent library specifier: opengl32.lib
2019-09-24 01:00:45 +03:00
kd-11
e0005ec347 rsx: Refactoring and improvement
- Separate displayed statistics from actual backend statistics.
  Allows asynchronous flipping to work correctly as it just uses display stats.
  The real stats are used by the frame scope marker to determine behavior like engaging the FIFO optimizer or skipping draw calls correctly.
2019-09-19 23:10:09 +03:00
kd-11
27aeaf66bc gl: Restructure buffer objects to give more control over usage
- This allows creating buffers with no MAP bits set which should ensure they are created for VRAM usage only
- TODO: Implement compute kernels to avoid software fallback mode for pack/unpack operations
2019-08-27 21:59:02 +03:00
kd-11
9d981de96d rsx: Fix offloader deadlock
- Do not allow offloader to handle its own faults. Serialize them on RSX instead.
  This approach introduces a GPU race condition that should be avoided with improved synchronization.
- TODO: Use proper GPU-side synchronization to avoid this situation
2019-08-25 22:09:20 +03:00
kd-11
9a7c2784f0 rsx: Do not clip scissor to viewport when doing buffer clear 2019-07-20 16:39:32 +03:00
Eladash
43f919c04b Fixup after #6143 (#6146)
vm::spu max address was overflowing resulting in issues, so cast to u64 where needed. Fixes #6145.
    Use vm::get_addr instead of manually substructing vm::base(0) from pointer in texture cache code.
    Prefer std::atomic_thread_fence over _mm_?fence(), adjust usage to be more correct.
    Used sequantially consistent ordering in semaphore_release for TSX path as well.
    Improved memory ordering for sys_rsx_context_iounmap/map.
    Fixed sync bugs in HLE gcm because of not using atomic instructions.
    Use release memory barrier in lwsync for PPU LLVM, according to this xbox360 programming guide lwsync is a hw release memory barrier.
    Also use release barrier where lwsync was originally used in liblv2 sys_lwmutex and cellSync.
    Use acquire barrier for isync instruction, see https://devblogs.microsoft.com/oldnewthing/20180814-00/?p=99485
2019-06-29 18:48:42 +03:00
Lassi Hämäläinen
c963c51a60 Remove unnecessary header includes
- Manually removed lot of unneeded #includes to clean code and reduce
  compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
e9e87b8bd9 Add missing #includes to header files
- Multiple header files where missing #includes to other headers that
  where used in the header. Correct header was included in correct
  order in source files which caused everything to compile.
- Added missing #includes so header files correctly include all their
  dependencies and fixes problems with IDEs being unable to parse
  headers correctly due to missing symbols
2019-06-25 17:11:10 +03:00
scribam
f1e939936a rsx: Apply Clang-Tidy fix "modernize-use-override" 2019-06-12 15:11:52 +03:00
scribam
801fa0113f rsx: Apply Clang-Tidy fix "readability-inconsistent-declaration-parameter-name" 2019-06-12 15:11:52 +03:00
Nekotekina
dfd50d0185 Implement std::bit_cast<>
Partial implementation of std::bit_cast from C++20.
Also fix most strict-aliasing rule break warnings (gcc).
2019-06-02 23:22:16 +03:00
eladash
6f76e34104 rsx: Fix race on clearing native_ui vs emu_requested flag 2019-04-20 01:04:41 +03:00
kd-11
fb778e4821 rsx: Reimplement attrib divisor 2019-01-25 14:34:22 +03:00
kd-11
417a2e6731 rsx: Refactor index buffers
- Index offset is ignored anyway and only used to calculate vertex attribute divisor index
- Specialized optimization for untouched xfer without primitive restart
2019-01-25 14:34:22 +03:00