Commit graph

65 commits

Author SHA1 Message Date
IndecisiveTurtle
6774216038 shader_recompiler: Apply buffer swizzle on vertex attribs 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
b4d24d8737 renderer_vulkan: Prefer depth stencil read-only layout when possible
* Persona reads a depth attachment while it is being attached with writes disabled. Now this works without spamming vk validation errors
2024-07-01 13:56:14 +03:00
IndecisiveTurtle
22b930ba5e video_core: Track renderpass scopes properly 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
ad10020836 video_core: Fix a few problems 2024-07-01 13:56:14 +03:00
psucien
1f55eff9d8 libraries: gnmdriver: added initialization preamble to every first submit in a frame 2024-06-30 18:22:39 +02:00
psucien
9121ecf123 renderer_vulkan: more formats conversion 2024-06-30 01:21:39 +03:00
psucien
2cbbcbd371
Metadata support (#223)
* texture_cache: more image usage flags

* texture_cache: metadata registration

* renderer_vulkan: initial CMask support

* renderer_vulkan: skip redundant FCE and FMask decompression passes

* renderer_vulkan: redundant VO surface registration removed

* renderer_vulkan: initial HTile support

* renderer_vulkan: added support for MSAA attachments

* renderer_vulkan: skip unnecessary metadata updates
2024-06-29 16:49:59 +03:00
georgemoralis
0ada442cbc
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
georgemoralis
521ff4d14b clang format fixes 2024-06-26 20:32:08 +03:00
IndecisiveTurtle
4846704832 shader_recompiler: More instructions and fix for swords of ditto 2024-06-26 18:03:09 +03:00
Alexandre Bouvier
a2224a9b6b fix system include paths 2024-06-25 18:17:16 +02:00
psucien
cb6b21de1f
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
741427040f shader_recompiler: Even more instructions 2024-06-22 18:09:04 +03:00
psucien
6e7fd21338 renderer_vulkan: simplified sRGB hack 2024-06-16 22:29:23 +02:00
psucien
3f92a68129 renderer_vulkan: BC3 formats conversion 2024-06-16 22:29:04 +02:00
psucien
37ceea2314 renderer_vulkan: added log entry for CS compiling 2024-06-16 20:51:35 +02:00
psucien
b02ec385b2 video_out: proper sRGB output workflow 2024-06-15 23:24:34 +02:00
psucien
b2b45bf480 video_core: added support for alternate CB channels order 2024-06-15 23:24:33 +02:00
psucien
b9602afc82 renderer_vulkan: sRGB swapchain 2024-06-15 23:24:33 +02:00
psucien
e6f773f950 videoout: register buffers in texture cache at VO creation time 2024-06-15 23:24:33 +02:00
psucien
fd8ceacef7 video_core: shaders hash switched to one from binary header 2024-06-15 23:24:32 +02:00
psucien
37cbdad57b renderer_vulkan: static vector for vertex buffers ranges 2024-06-15 23:20:14 +02:00
psucien
be6f523b6e renderer_vulkan: fixed buffers alignments 2024-06-15 23:20:13 +02:00
TheTurtle
c5d1d579b1
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
psucien
64569ff737 tracy: guards for missing vk profiler context 2024-06-11 22:57:37 +02:00
psucien
d7565dec57 tracy: added Vulkan GPU profiling 2024-06-11 21:52:48 +02:00
psucien
04b1226e9c tracy: basic markup and project palette 2024-06-11 12:14:33 +02:00
psucien
c2dc7c3fd4 renderer_vulkan: another fix for vertex buffer offsets 2024-06-10 23:20:32 +02:00
TheTurtle
7b1a317b09
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
TheTurtle
998d046210
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
fe3b546d93 renderer_vulkan, config: option to toggle VK validation layer 2024-06-07 11:21:02 +02:00
psucien
dd5a25fda2 review iteration 2024-06-07 08:39:03 +02:00
psucien
cb07778008 renderer_vulkan: proper barriers 2024-06-06 23:40:31 +02:00
psucien
729d02d699 renderer_vulkan: proper min uniform alignment 2024-06-06 22:24:20 +02:00
psucien
6814d5f108 renderer_vulkan: fix for vertex buffer mapping offset 2024-06-06 21:41:59 +02:00
raphaelthegreat
ae7e6dafd5 shader_recompiler: Add more instructions and fix a few thinhs 2024-06-05 22:22:34 +03:00
TheTurtle
728249f58d
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
cd87005ded renderer_vulkan: unused extension removed 2024-06-04 12:43:23 +02:00
raphaelthegreat
02a50265f8 shader_recompiler: Better branch detection + more opcodes 2024-06-02 03:05:40 +03:00
psucien
f624f7749c
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
dd91456b48 video_core: Moar shader instruction 2024-05-30 18:17:54 +03:00
psucien
365df2a3ac video_core: renderer_vulkan: write mask fallback 2024-05-30 16:27:39 +02:00
psucien
8e6d492524 video_core: renderer_vulkan: added color mask support 2024-05-30 12:55:37 +02:00
psucien
9227a2b868 video_core: multiple color attachments support 2024-05-30 11:21:26 +02:00
psucien
d05cbd88bb video_core: renderer_vulkan: support for passes w\o a fs 2024-05-30 09:42:44 +02:00
raphaelthegreat
58de7ff55a video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
psucien
a67b8f7a0b video_core: renderer_vulkan: proper inclusion of maintenance4 2024-05-29 17:06:46 +02:00
raphaelthegreat
4d728e943d video_core: Address some feedback 2024-05-27 22:13:55 +03:00
raphaelthegreat
d59b102b6f video_core: Add image support 2024-05-27 18:25:45 +03:00
TheTurtle
8dfa5782b2
video_core: Add constant buffer support (#147) 2024-05-26 15:51:35 +03:00