georgemoralis
ae709d6557
Merge pull request #219 from shadps4-emu/gnmdriver/hw_init
...
Complete HW state init functions
2024-06-27 17:33:58 +03:00
georgemoralis
0845d8f250
Stabilization8 ( #218 )
...
* disable configured flexible memory size (caused issues in some games)
* fixed case S_OR_B64 for blazing chrome
* submodules updates and fixes for latest SDL
* stubbed _sigprocmask (not handled and spams too much)
* added ReplaceOp case in Stencilop
* dummy ajm module added
2024-06-27 16:37:17 +03:00
psucien
0dfb003aca
libraries: gnmdriver: complete HW stat init functions
2024-06-27 13:36:55 +02:00
georgemoralis
1bf2e69c97
clang format fixes
2024-06-26 20:32:08 +03:00
IndecisiveTurtle
40f16aadd4
liverpool: Fix assert for compute queues
2024-06-26 20:00:09 +03:00
IndecisiveTurtle
ee50cbdcb6
shader_recompiler: More instructions and fix for swords of ditto
2024-06-26 18:03:09 +03:00
Alexandre Bouvier
aae827786d
fix system include paths
2024-06-25 18:17:16 +02:00
psucien
7ad9d4a0d3
common: Common
namespace for the slot vector container
2024-06-25 09:31:32 +02:00
psucien
117f859021
libraries: gnm_driver: added sceGnmDrawIndexIndirect
and sceGnmDrawIndirect
2024-06-24 22:53:59 +02:00
psucien
e6e3aa0080
Initial instancing and asynchronous compute queues ( #207 )
...
* gnm_driver: added `sceGnmRegisterOwner` and `sceGnmRegisterResource`
* video_out: `sceVideoOutGetDeviceCapabilityInfo` for sdk runtime
* gnm_driver: correct vqid index range
* amdgpu: indirect buffer, release mem and some additional irq modes
* amdgpu: added ASC commands processor
* shader_recompiler: added support for fetch instance id
* amdgpu: classic bitfields for T# representation (debugging experience)
* renderer_vulkan: skip zero sized VBs from binding
* texture_cache: image upload logic moved into `Image` object
* gnm_driver: `sceGnmDingDong` implementation
* texture_cache: `Image` usage flags moved; correct VO buffer pitch
2024-06-22 19:50:20 +03:00
IndecisiveTurtle
f830b08b3f
linker: Set rela bits for all symbol types
2024-06-22 18:09:04 +03:00
IndecisiveTurtle
fc1d1e6f73
shader_recompiler: Even more instructions
2024-06-22 18:09:04 +03:00
IndecisiveTurtle
9844aaaec2
kernel: Add scePthreadExit
2024-06-22 18:09:04 +03:00
psucien
2a87be7c00
texture_cache: return back image view usage override
2024-06-16 22:30:18 +02:00
psucien
c53e86248f
renderer_vulkan: simplified sRGB hack
2024-06-16 22:29:23 +02:00
psucien
24ca6a26b4
renderer_vulkan: BC3 formats conversion
2024-06-16 22:29:04 +02:00
psucien
61c9e70781
renderer_vulkan: added log entry for CS compiling
2024-06-16 20:51:35 +02:00
psucien
72948f379f
video_out: proper sRGB output workflow
2024-06-15 23:24:34 +02:00
psucien
200fe2f31c
video_core: added support for alternate CB channels order
2024-06-15 23:24:33 +02:00
psucien
44cdbdbf90
renderer_vulkan: sRGB swapchain
2024-06-15 23:24:33 +02:00
psucien
e5c27356f2
videoout: register buffers in texture cache at VO creation time
2024-06-15 23:24:33 +02:00
psucien
06f45310b2
texture_cache: don't set color attachment usage flag for packed images
2024-06-15 23:24:33 +02:00
psucien
42af4aab41
video_core: shaders hash switched to one from binary header
2024-06-15 23:24:32 +02:00
psucien
92c3a794be
renderer_vulkan: static vector for vertex buffers ranges
2024-06-15 23:20:14 +02:00
psucien
4b3acb7ccb
renderer_vulkan: fixed buffers alignments
2024-06-15 23:20:13 +02:00
TheTurtle
556d88ecb4
core: Many things ( #194 )
...
* video_core: Add a few missed things
* libkernel: More proper memory mapped files
* memory: Fix tessellation buffer mapping
* Cuphead work
* sceKernelPollSema fix
* clang format
* fixed ngs2 lle loading and rtc lib
* draft pthreads keys implementation
* fixed return codes
* return error code if sceKernelLoadStartModule module is invalid
* re-enabled system modules and disable debug in libs.h
* Improve linux support
* fix windows build
* kernel: Rework keys
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-06-15 14:36:07 +03:00
TheTurtle
1e5fed2e8a
core: Fixup linux support ( #195 )
...
* tls: Implement for linux
* core: Implement memory manager for linux
2024-06-14 00:58:57 +03:00
psucien
dca807f132
tracy: guards for missing vk profiler context
2024-06-11 22:57:37 +02:00
psucien
65a7155cd5
tracy: added Vulkan GPU profiling
2024-06-11 21:52:48 +02:00
psucien
ce62ae31e5
tracy: basic markup and project palette
2024-06-11 12:14:33 +02:00
psucien
fa198e228d
renderer_vulkan: another fix for vertex buffer offsets
2024-06-10 23:20:32 +02:00
TheTurtle
769eb6a9ee
video_core: Preliminary storage image support and more ( #188 )
...
* vk_rasterizer: Clear depth buffer when DB_RENDER_CONTROL says so
* video_core: Preliminary storage image support, more opcodes
* renderer_vulkan: a fix for vertex buffers merging
* renderer_vulkan: a heuristic for blend override when alpha out is masked
---------
Co-authored-by: psucien <bad_cast@protonmail.com>
2024-06-10 22:35:14 +03:00
psucien
94e574c660
texture_cache: detiler: added support for block coded 64bit images
2024-06-09 18:18:49 +02:00
psucien
bda21bb659
texture_cache: detiler: added support for block coded 128bit images
2024-06-09 12:54:19 +02:00
psucien
f3636b77b8
common: slot_vector moved into common
2024-06-08 01:19:51 +02:00
TheTurtle
718ade970f
video_core: Add depth buffer support and fix some bugs ( #172 )
...
* memory: Avoid crash when alignment is zero
* Also remove unused file
* shader_recompiler: Add more instructions
* Also fix some minor issues with a few existing instructions
* control_flow: Don't emit discard for null exports
* renderer_vulkan: Add depth buffer support
* liverpool: Fix wrong color buffer number type and viewport zscale
* Also add some more formats
2024-06-07 16:26:43 +03:00
psucien
3adf7d9937
renderer_vulkan, config: option to toggle VK validation layer
2024-06-07 11:21:02 +02:00
psucien
a3ee11914a
review iteration
2024-06-07 08:39:03 +02:00
psucien
0723625321
texture_cache: detiler: more verbosity in print
2024-06-07 00:12:16 +02:00
psucien
a60cf29b61
texture_cache: fix for forgotten cb tiling info update
2024-06-07 00:12:16 +02:00
psucien
7c9325ddbb
texture_cache: detiler: redundant flag removed
2024-06-07 00:12:15 +02:00
psucien
ae6e246f9c
renderer_vulkan: proper barriers
2024-06-06 23:40:31 +02:00
psucien
e63115d3c7
renderer_vulkan: proper min uniform alignment
2024-06-06 22:24:20 +02:00
psucien
02ec0f6d4d
renderer_vulkan: fix for vertex buffer mapping offset
2024-06-06 21:41:59 +02:00
raphaelthegreat
6fbd20c2d8
shader: Fix block processing order in dead code elimination pass
2024-06-06 02:46:36 +03:00
raphaelthegreat
fc8e4a1f97
shader_recompiler: Add more instructions and fix a few thinhs
2024-06-05 22:22:34 +03:00
TheTurtle
4779381eec
core: Properly implement TLS ( #164 )
...
* core: Split module code from linker
* linker: Properly implement thread local storage
* kernel: Fix a few memory functions
* kernel: Implement module loading
* Now it's easy to do anyway with new module rework
2024-06-05 22:08:18 +03:00
psucien
0d8c705810
texture_cache: detiler image view moved into image class
2024-06-05 18:37:06 +02:00
psucien
304c266232
texture_cache: detiler: change staging to faster stream buffer
2024-06-05 18:16:31 +02:00
psucien
cfd1af1785
fix for re-use
2024-06-05 17:57:05 +02:00
psucien
76c1f0ae87
final touch
2024-06-05 16:34:17 +02:00
psucien
ca27729153
amdgpu: render target size hint for old runtime
2024-06-05 16:34:04 +02:00
psucien
d6df222351
texture_cache: detiler: shader module release and debug name
2024-06-05 16:33:26 +02:00
psucien
88a0715aae
texture_cache: detiler: m8x1 and m8x4 shaders
2024-06-05 16:14:22 +02:00
psucien
a2eb813bee
video_core: added shader header files generator from Citra
2024-06-05 14:31:50 +02:00
psucien
10396a38af
texture_cache: a support for m8x1 and m8x4 layouts added to the detiler
2024-06-05 13:10:48 +02:00
psucien
b593b8e1fc
renderer_vulkan: unused extension removed
2024-06-04 12:43:23 +02:00
psucien
d732a03b2e
amdgpu: tiling mode introduced
2024-06-04 12:40:08 +02:00
psucien
59153f5c2a
amdgpu: surface bits per element LUT
2024-06-02 22:46:40 +02:00
psucien
8a6528bc5a
video_core: amdgpu: simply crash if an exception occured in coro
2024-06-02 19:16:05 +02:00
raphaelthegreat
ead6ef58b5
shader_recompiler: Better branch detection + more opcodes
2024-06-02 03:05:40 +03:00
psucien
09bacf155e
Fixes and QoL ( #159 )
...
* to ensure that we're not unlocking submits too early
* a final touch
* video_core: texture_cache: fix for page table corruption
* core: linker: a name for the game main thread
* libraries: gnmdriver: an option to dump application command lists
* libraries: kernel: named guest threads
* video_core: added a heuristic for determination of CB/DB surface extents
* fix for rebase leftover
2024-06-01 23:50:03 +03:00
raphaelthegreat
e637f52076
video_core: Moar shader instruction
2024-05-30 18:17:54 +03:00
psucien
57158da07b
video_core: renderer_vulkan: write mask fallback
2024-05-30 16:27:39 +02:00
psucien
75d74e53f3
video_core: renderer_vulkan: added color mask support
2024-05-30 12:55:37 +02:00
psucien
9cb6ea82a0
Linux build fix
2024-05-30 12:09:33 +02:00
psucien
7762def3e5
video_core: multiple color attachments support
2024-05-30 11:21:26 +02:00
psucien
11bdadc319
video_core: renderer_vulkan: support for passes w\o a fs
2024-05-30 09:42:44 +02:00
raphaelthegreat
99d20d4119
video_core: Implement basic compute shaders and more instructions
2024-05-30 01:39:24 +03:00
psucien
b1f76d5e0a
video_core: texture_cache: proper UniqueImage
class movers
2024-05-29 17:17:24 +02:00
psucien
381d6c2816
video_core: renderer_vulkan: proper inclusion of maintenance4
2024-05-29 17:06:46 +02:00
psucien
acddeb5bbf
video_core: amdgpu: fix for a deadlock in wait on idle
2024-05-29 16:03:37 +02:00
psucien
0dbebc1902
video_core: amdgpu: proper destruction of processing thread
2024-05-29 16:02:51 +02:00
raphaelthegreat
05c4542301
video_core: Address some feedback
2024-05-27 22:13:55 +03:00
raphaelthegreat
8bd9bf1a7d
video_core: Add image support
2024-05-27 18:25:45 +03:00
georgemoralis
f850679b6e
Merge pull request #146 from shadps4-emu/video_out/new_gpu_frontend
...
video_core: initial support for CE and ASC queues
2024-05-27 13:50:25 +03:00
psucien
1a04516c13
fix for leaks of coroutine handle
2024-05-27 13:48:35 +03:00
TheTurtle
22b7ae4b63
video_core: Add constant buffer support ( #147 )
2024-05-26 15:51:35 +03:00
psucien
b3c26564cd
video_core: initial support for CE and ASC queues
2024-05-26 12:39:30 +02:00
TheTurtle
0aa04c60cb
video_core: Bringup some basic functionality ( #145 )
...
* video_core: Remove hack in rasterizer
* The hack was to skip the first draw as the display buffer had not been created yet and the texture cache couldn't create one itself. With this patch it now can, using the color buffer parameters from registers
* shader_recompiler: Implement attribute loads/stores
* video_core: Add basic vertex, index buffer handling and pipeline caching
* externals: Make xxhash lowercase
2024-05-25 15:33:15 +03:00
psucien
3f6de86eb6
video_core: a fix for multi submits processing (temporary code)
2024-05-22 22:20:33 +02:00
psucien
f56f6f7be4
config, video_core: null gpu configuration added
2024-05-22 20:19:42 +02:00
TheTurtle
4380066a90
video: Import new shader recompiler + display a triangle ( #142 )
2024-05-22 01:35:12 +03:00
georgemoralis
7a6a8bfd88
Merge pull request #140 from shadps4-emu/additional_evq_func
...
A bunch of new functional and small improvements
2024-05-18 09:46:14 +03:00
psucien
8c95a2ba75
gnmdriver: submission lock moved out from gpu
2024-05-17 23:31:19 +02:00
psucien
dc8759b4e0
renderer_vulkan: state tracking for Image
resources
2024-05-17 12:44:07 +02:00
psucien
851bd00251
a fair multi-submissions support
2024-05-17 08:47:38 +02:00
psucien
0d443ac467
amdgpu: non-blocking submitDone
2024-05-17 08:22:47 +02:00
psucien
b1eaec2ea1
amdgpu: added support for several single GFX submits per frame
2024-05-17 00:01:47 +02:00
psucien
c69c0d1649
fix for crash in apps when splash is missing
2024-05-16 16:59:38 +03:00
psucien
cd077362c3
review comments
2024-05-16 16:59:04 +03:00
georgemoralis
521fc0401f
show title splash while the game is loading
2024-05-16 16:58:14 +03:00
TheTurtle
94caa0336e
core: Implement new memory manager ( #133 )
...
* core: Implement new memory manager
* ci: Attempt to fix linux build
* code: Fix a few build errors
2024-05-16 15:55:50 +03:00
georgemoralis
085ffe359b
Merge pull request #132 from shadps4-emu/gpu_flip
...
graphics: separate IRQ for GPU driven flips
2024-05-14 23:56:12 +03:00
psucien
18d7b08400
renderer_vk: missing barriers ( #134 )
2024-05-14 23:46:34 +03:00
psucien
1857828b50
graphics: separate IRQ for GPU driven flips
2024-05-14 21:33:20 +02:00
psucien
8edce87dac
review comments applied
2024-05-11 00:04:04 +02:00
psucien
3c4a9d6a44
amdgpu: return perfcounter on EOP
2024-05-10 23:16:56 +02:00
psucien
8bb89aa746
core: gpu interrupt dispatcher
2024-05-10 21:48:01 +02:00
psucien
40923e5448
amdgpu: EOS event packet handling
2024-05-10 11:55:04 +02:00
psucien
758d695e31
amdgpu: wait_reg_mem
and write_data
implementation
...
Command list parsing is temporary moved to async task
2024-05-09 22:59:35 +02:00
psucien
8897e647b9
amdgpu: EOP irq and dummy PM4 handlers
2024-05-08 23:27:56 +02:00
psucien
717b00d63b
gnm_driver: sceGnmSubmitAndFlipCommandBuffers
implementation
2024-05-08 22:55:39 +02:00
psucien
f0ac475ffd
gnm_driver: various fixes
2024-05-08 22:53:55 +02:00
psucien
d2856a7616
video_core, kernel: added gfx eop event handling
2024-05-07 22:46:54 +02:00
psucien
8347026ecb
core: libraries: gnmdriver: basic functionality extension ( #120 )
...
Also a bit of refactoring in `video_core`
2024-05-01 19:29:06 +03:00
TheTurtle
49e65be25b
core: Rewrite thread local storage implementation ( #118 )
2024-05-01 13:38:41 +03:00
TheTurtle
13fe78f0f5
video_core: Add basic command list processing ( #117 )
2024-04-30 01:23:28 +03:00
psucien
87f3724675
video_core: prefer discrete gpu if available ( #116 )
...
* video_core: prefer discrete gpu if available
* ci: Upgrade to clang format 17
* rewrite w\o std::zip usage
---------
Co-authored-by: raphaelthegreat <47210458+raphaelthegreat@users.noreply.github.com>
2024-04-30 00:19:12 +03:00
georgemoralis
bdb0a6cf94
give texture cache exception handler priority over tls exception handler
2024-04-29 19:26:35 +03:00
raphaelthegreat
733956c39b
texture_cache: Fix linear image uploads
...
* Also fixed build for clang-cl with libc
2024-04-29 18:22:04 +03:00
psucien
35ffc7fc97
clang format fix
2024-04-28 01:34:14 +02:00
psucien
1be496875a
config: option to select gpu for vk device
2024-04-28 01:19:04 +02:00
psucien
b2584dc455
texture_cache: protection flags re-worked
...
* actually I gave up on clang fmt
2024-04-28 01:00:24 +02:00
psucien
2b33596ebc
clang format fix
2024-04-28 00:51:34 +02:00
psucien
9c4906f878
Merge branch 'main' of github.com:raphaelthegreat/shadps4 into raph-main
2024-04-28 00:29:15 +02:00
psucien
6fdc29ec5b
texture_cache: added memory protection for Windows
2024-04-28 00:21:04 +02:00
raphaelthegreat
dee8b77cb4
Address feedback
2024-04-28 01:09:03 +03:00
GPUCode
23b2eeba9b
video_core: Rewrite vulkan and videoout
2024-04-14 17:10:40 +03:00
GPUCode
7e5b7a7ffa
chore: Make shadps4 REUSE compliant
2024-02-23 23:33:43 +02:00
GPUCode
d9e30405ba
code: Add clang-format target and CI workflow ( #82 )
...
* code: Add clang format target, rules and CI workflow
* code: Run clang format on sources
2024-02-23 22:57:57 +02:00
GPUCode
7faf2d0ee8
common: Rework timekeeping with native RDTSC and port to linux
2024-02-23 11:30:06 +02:00