Commit Graph

55 Commits

Author SHA1 Message Date
psucien f03262421e texture_cache: force storage usage bit to all images 2024-07-01 09:58:52 +02:00
psucien 14377b39b5 texture_cache: detiler: added missing micro8x2 2024-06-30 15:54:59 +02: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
psucien 8475a62a46 common: `Common` namespace for the slot vector container 2024-06-25 09:31:32 +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 73d60b7e8d linker: Set rela bits for all symbol types 2024-06-22 18:09:04 +03:00
IndecisiveTurtle 741427040f shader_recompiler: Even more instructions 2024-06-22 18:09:04 +03:00
IndecisiveTurtle 30199fe701 kernel: Add scePthreadExit 2024-06-22 18:09:04 +03:00
psucien ab4cc8b218 texture_cache: return back image view usage override 2024-06-16 22:30:18 +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 e6f773f950 videoout: register buffers in texture cache at VO creation time 2024-06-15 23:24:33 +02:00
psucien bdb235716a texture_cache: don't set color attachment usage flag for packed images 2024-06-15 23:24:33 +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
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
psucien 01f09cfa63 texture_cache: detiler: added support for block coded 64bit images 2024-06-09 18:18:49 +02:00
psucien fa73812f32 texture_cache: detiler: added support for block coded 128bit images 2024-06-09 12:54:19 +02:00
psucien 9230d04a0a common: slot_vector moved into common 2024-06-08 01:19:51 +02: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 e790ec775f texture_cache: detiler: more verbosity in print 2024-06-07 00:12:16 +02:00
psucien cfc297622f texture_cache: fix for forgotten cb tiling info update 2024-06-07 00:12:16 +02:00
psucien b17b4ab787 texture_cache: detiler: redundant flag removed 2024-06-07 00:12:15 +02:00
psucien cb07778008 renderer_vulkan: proper barriers 2024-06-06 23:40:31 +02:00
raphaelthegreat 5aa3a4d4a0 shader: Fix block processing order in dead code elimination pass 2024-06-06 02:46:36 +03: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 f9e5c70414 texture_cache: detiler image view moved into image class 2024-06-05 18:37:06 +02:00
psucien b59e525408 texture_cache: detiler: change staging to faster stream buffer 2024-06-05 18:16:31 +02:00
psucien 3a5ba82eae final touch 2024-06-05 16:34:17 +02:00
psucien 19994424c5 texture_cache: detiler: shader module release and debug name 2024-06-05 16:33:26 +02:00
psucien 440a60a43b texture_cache: detiler: m8x1 and m8x4 shaders 2024-06-05 16:14:22 +02:00
psucien 2c87171b95 texture_cache: a support for m8x1 and m8x4 layouts added to the detiler 2024-06-05 13:10:48 +02:00
psucien d491bbf366 amdgpu: tiling mode introduced 2024-06-04 12:40:08 +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
psucien 767e13cccb Linux build fix 2024-05-30 12:09:33 +02:00
raphaelthegreat 58de7ff55a video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
psucien 055dec1149 video_core: texture_cache: proper `UniqueImage` class movers 2024-05-29 17:17:24 +02:00
raphaelthegreat d59b102b6f video_core: Add image support 2024-05-27 18:25:45 +03:00
TheTurtle 3c90b8ac00
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
TheTurtle 8730968385
video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
psucien 85704e26a0 renderer_vulkan: state tracking for `Image` resources 2024-05-17 12:44:07 +02:00
psucien 8c4f72f404 review comments 2024-05-16 16:59:04 +03:00
georgemoralis c9b5b5e963 show title splash while the game is loading 2024-05-16 16:58:14 +03:00
TheTurtle 1b9bf924ca
core: Rewrite thread local storage implementation (#118) 2024-05-01 13:38:41 +03:00
TheTurtle b94efcba5a
video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +03:00
georgemoralis 0727775c88 give texture cache exception handler priority over tls exception handler 2024-04-29 19:26:35 +03:00