shadPS4/src/common
Lander Gallastegi f9bbde9c79
video_core: Implement DMA. (#2819)
* Import memory

* 64K pages and fix memory mapping

* Queue coverage

* Buffer syncing, faulted readback adn BDA in Buffer

* Base DMA implementation

* Preparations for implementing SPV DMA access

* Base impl (pending 16K pages and getbuffersize)

* 16K pages and stack overflow fix

* clang-format

* clang-format but for real this time

* Try to fix macOS build

* Correct decltype

* Add testing log

* Fix stride and patch phi node blocks

* No need to check if it is a deleted buffer

* Clang format once more

* Offset in bytes

* Removed host buffers (may do it in another PR)

Also some random barrier fixes

* Add IR dumping from my read-const branch

* clang-format

* Correct size insteed of end

* Fix incorrect assert

* Possible fix for NieR deadlock

* Copy to avoid deadlock

* Use 2 mutexes insteed of copy

* Attempt to range sync error

* Revert "Attempt to range sync error"

This reverts commit dd287b48682b50f215680bb0956e39c2809bf3fe.

* Fix size truncated when syncing range

And memory barrier

* Some fixes (and async testing (doesn't work))

* Use compute to parse fault buffer

* Process faults on submit

* Only sync in the first time we see a readconst

Thsi is partialy wrong. We need to save the state into the submission context itself, not the rasterizer since we can yield and process another sumission (if im not understanding wrong).

* Use spec const and 32 bit atomic

* 32 bit counter

* Fix store_index

* Better sync (WIP, breaks PR now)

* Fixes for better sync

* Better sync

* Remove memory coveragte logic

* Point sirit to upstream

* Less waiting and barriers

* Correctly checkout moltenvk

* Bring back applying pending operations in wait

* Sync the whole buffer insteed of only the range

* Implement recursive shared/scoped locks

* Iterators

* Faster syncing with ranges

* Some alignment fixes

* fixed clang format

* Fix clang-format again

* Port page_manager from readbacks-poc

* clang-format

* Defer memory protect

* Remove RENDERER_TRACE

* Experiment: only sync on first readconst

* Added profiling (will be removed)

* Don't sync entire buffers

* Added logging for testing

* Updated temporary workaround to use 4k pages

* clang.-format

* Cleanup part 1

* Make ReadConst a SPIR-V function

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-05-22 21:00:15 +03:00
..
logging [Libs] Companion httpd (#2942) 2025-05-16 16:17:37 +03:00
support fix: fix #1457 again by moving av_err2str to a common header (#1688) 2024-12-08 00:52:03 +02:00
adaptive_mutex.h video_core: Use adaptive mutex on Linux (#2105) 2025-01-17 23:47:38 -08:00
aes.h externals: Remove need for cryptopp build. (#2707) 2025-03-29 10:32:06 +02:00
alignment.h libraries: Add initial HLE JPEG encoder skeleton (#1607) 2024-11-30 21:43:12 +02:00
arch.h Initial support for compiling on ARM64. (#788) 2024-09-09 13:23:16 +03:00
assert.cpp Initial support for compiling on ARM64. (#788) 2024-09-09 13:23:16 +03:00
assert.h common: Rewrite logging based on cut down citra logger (#86) 2024-02-28 00:10:34 +02:00
bit_field.h Devtools improvements I (#1392) 2024-10-16 13:12:46 +03:00
bounded_threadsafe_queue.h texture_cache: Fix linear image uploads 2024-04-29 18:22:04 +03:00
concepts.h common: Rewrite logging based on cut down citra logger (#86) 2024-02-28 00:10:34 +02:00
config.cpp savedata: Fix missing uses of config based save data dir. (#2971) 2025-05-22 11:28:41 +03:00
config.h Getting rid of the "Separate Update Folder" option (#2719) 2025-03-30 00:50:22 +02:00
cstring.h ime_dialog: Initial implementation (#1267) 2024-10-11 04:53:32 +03:00
debug.h build: exclude Tracy from release builds 2024-12-22 22:51:48 +01:00
decoder.cpp Implement shader resource tables (#1165) 2024-11-01 08:55:53 +02:00
decoder.h Implement shader resource tables (#1165) 2024-11-01 08:55:53 +02:00
discord_rpc_handler.cpp Don't use github as a CDN for Discord RPC icon (#1496) 2024-11-21 12:09:10 +02:00
discord_rpc_handler.h added discord rpc (#1178) 2024-10-08 18:14:37 +03:00
div_ceil.h Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
elf_info.h Renderer fixes (Splash + Aspect Ratio) (#2645) 2025-03-13 18:10:24 +02:00
endian.h file formats and qt (#88) 2024-03-01 00:00:35 +02:00
enum.h video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
error.cpp core: Rework memory manager 2024-06-10 02:13:44 +03:00
error.h common: Rewrite logging based on cut down citra logger (#86) 2024-02-28 00:10:34 +02:00
fixed_value.h Message Dialog library (#767) 2024-09-08 23:27:50 +03:00
func_traits.h video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
hash.h Implement shader resource tables (#1165) 2024-11-01 08:55:53 +02:00
io_file.cpp libkernel: Various filesystem fixes (#2868) 2025-05-01 14:47:43 +03:00
io_file.h libkernel: Various filesystem fixes (#2868) 2025-05-01 14:47:43 +03:00
memory_patcher.cpp Export eboot address (#2866) 2025-04-30 22:56:44 +03:00
memory_patcher.h Export eboot address (#2866) 2025-04-30 22:56:44 +03:00
native_clock.cpp native_clock: Remove unused process code. (#1989) 2024-12-31 10:04:26 +02:00
native_clock.h native_clock: Remove unused process code. (#1989) 2024-12-31 10:04:26 +02:00
ntapi.cpp Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
ntapi.h Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
number_utils.cpp video_core: Rework clear values (#1381) 2024-10-16 12:55:45 +03:00
number_utils.h video_core: Rework clear values (#1381) 2024-10-16 12:55:45 +03:00
object_pool.h video_core: Implement guest buffer manager (#373) 2024-08-08 15:02:10 +03:00
path_util.cpp savedata: Fix missing uses of config based save data dir. (#2971) 2025-05-22 11:28:41 +03:00
path_util.h savedata: Fix missing uses of config based save data dir. (#2971) 2025-05-22 11:28:41 +03:00
polyfill_thread.h Bump to Clang 19 (#2434) 2025-02-18 15:55:13 +02:00
rdtsc.cpp code: Add clang-format target and CI workflow (#82) 2024-02-23 22:57:57 +02:00
rdtsc.h Initial support for compiling on ARM64. (#788) 2024-09-09 13:23:16 +03:00
recursive_lock.cpp video_core: Implement DMA. (#2819) 2025-05-22 21:00:15 +03:00
recursive_lock.h video_core: Implement DMA. (#2819) 2025-05-22 21:00:15 +03:00
scm_rev.cpp.in build: Move versioning to CMake file. (#2752) 2025-04-07 12:22:51 +03:00
scm_rev.h build: Move versioning to CMake file. (#2752) 2025-04-07 12:22:51 +03:00
scope_exit.h core: Implement new memory manager (#133) 2024-05-16 15:55:50 +03:00
sha1.h externals: Remove need for cryptopp build. (#2707) 2025-03-29 10:32:06 +02:00
signal_context.cpp Patch extrq (#943) 2024-09-23 19:19:52 +03:00
signal_context.h Patch extrq (#943) 2024-09-23 19:19:52 +03:00
singleton.h chore: Make shadps4 REUSE compliant 2024-02-23 23:33:43 +02:00
slab_heap.h kernel: Rewrite pthread emulation (#1440) 2024-11-21 22:59:38 +02:00
slot_array.h Ajm (#1456) 2024-11-05 09:16:57 +02:00
slot_vector.h video_core: Implement DMA. (#2819) 2025-05-22 21:00:15 +03:00
spin_lock.cpp Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
spin_lock.h Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
stb.cpp cmake: unbundle stb (#1601) 2024-12-05 23:10:27 +02:00
stb.h cmake: unbundle stb (#1601) 2024-12-05 23:10:27 +02:00
string_literal.h FidelityFX FSR implementation (#2624) 2025-03-12 20:33:30 +02:00
string_util.cpp Devtools - Shader editing (#1705) 2024-12-09 21:11:11 +01:00
string_util.h Devtools - Shader editing (#1705) 2024-12-09 21:11:11 +01:00
thread.cpp externals: Remove winpthreads. (#2932) 2025-05-15 13:59:34 -07:00
thread.h externals: Remove winpthreads. (#2932) 2025-05-15 13:59:34 -07:00
types.h video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
uint128.h Added const reference params if possible, removed less 16 size 2024-08-22 02:56:01 +03:00
unique_function.h Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
va_ctx.h kernel: Clean up and fix some mistakes. (#2907) 2025-05-11 14:22:17 -07:00