Commit Graph

618 Commits

Author SHA1 Message Date
TheTurtle 8ce58389ad
kernel: Implement gettimeofday + other misc fixes (#187)
* kernel: Add gettimeofday

* kernel: Move sceKernelReleaseDirectMemory where it belongs

* savedata: Stub sceSaveDataDialogUpdateStatus to return finished

* memory: Add lock to VirtualQuery and remove debug print

* clang format

* fixed linux build?

* special case for sceKernelWrite (stdin,stdout,stderr)

* special case for case savedata mount

* reduced mutex spamming

* added missing default rwlock attributes init

* kernel: Add more sleep functions

* file_system: Add some functions

* memory: Missed adding some functions

* kernel: Moved some functions to time

* kernel: Fix build error

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-06-10 22:59:12 +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
georgemoralis 23f11a3fda
Merge pull request #182 from shadps4-emu/miscfixes
Miscfixes
2024-06-10 18:42:49 +03:00
georgemoralis e84d2cf9cf wrong spdx 2024-06-10 18:36:18 +03:00
georgemoralis beb631607a review fixes 2024-06-10 18:26:37 +03:00
georgemoralis 6f8d99fbf2 fixed posix_stat error return 2024-06-10 18:09:22 +03:00
georgemoralis 3318f12639 fixed possible nullptr crash on rwlock create 2024-06-10 18:01:50 +03:00
georgemoralis 0c1ede1060
Merge pull request #183 from shadps4-emu/bc_detiler
Micro detiler for 2D BC textures
2024-06-10 15:33:55 +03:00
georgemoralis 81a1cbf6b1 more clang fix 2024-06-10 15:24:34 +03:00
georgemoralis deda3026d8 clang fix 2024-06-10 15:21:50 +03:00
georgemoralis d89e4463e7 moved main code , to emulator,cpp , emulator.h class 2024-06-10 15:18:42 +03:00
georgemoralis dfc4f1c35b don't make fullscreen default 2024-06-10 14:04:59 +03:00
georgemoralis 13cd22aea6 depedencies updates and fixes 2024-06-10 14:04:32 +03:00
raphaelthegreat 1092b1bcff Fix linux build 2024-06-10 12:13:24 +03:00
raphaelthegreat fc887bf3f5 core: Rework memory manager 2024-06-10 02:13:44 +03:00
psucien 01f09cfa63 texture_cache: detiler: added support for block coded 64bit images 2024-06-09 18:18:49 +02:00
Xphalnos 623b1d6837
Synchronization between Qt build title and version.h (#178) 2024-06-09 18:45:25 +03:00
psucien fa73812f32 texture_cache: detiler: added support for block coded 128bit images 2024-06-09 12:54:19 +02:00
Xphalnos 1563dffd46
Added Fullscreen mode (#173)
* Added Fullscreen mode

* fix for config.toml

* fix for config.toml

* Apply review comment
2024-06-09 13:25:00 +03:00
georgemoralis 1a66fa098f
Merge pull request #174 from shadps4-emu/kernel_stuff
- sceKernelOpen: added rdwr and append modes
2024-06-09 08:26:03 +03:00
raziel1000 a790c30c28 added sceKernelSleep and small fix on usleep 2024-06-08 18:43:08 -06:00
georgemoralis ac192134e8
Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
psucien d902339867 gnmdriver: `sceGnmDrawInitDefaultHardwareState175` added 2024-06-08 23:42:09 +02:00
georgemoralis 908eaa102d clang format fix 2024-06-09 00:26:12 +03:00
georgemoralis 84dca0a5dd added sceKernelTriggerUserEvent,sceKernelDeleteUserEvent 2024-06-09 00:23:58 +03:00
georgemoralis 2e6c28c34c partial sceKernelFStat 2024-06-08 23:53:38 +03:00
georgemoralis 5be6777220 added sceKernelPread 2024-06-08 23:25:20 +03:00
georgemoralis a1efcd9832 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
raziel1000 d3adcf2e6c posix_pthread_mutex_trylock
posix_pthread_attr_setdetachstate
posix_pthread_attr_destroy
posix_pthread_create_name_np
posix_pthread_join
2024-06-08 11:13:02 -06:00
georgemoralis c16275fe16 posix_usleep,posix_pthread_equal 2024-06-08 20:01:28 +03:00
raphaelthegreat e9679f8309 address_space: Don't reserve space again 2024-06-08 19:10:32 +03:00
georgemoralis 05e4a4b4e1 hackish random/urandom support 2024-06-08 10:22:28 +03:00
georgemoralis 8115665a90 fixed sceKernelClose when decriptor is negative value 2024-06-08 09:56:57 +03:00
raziel1000 3b34aebe06 - sceKernelOpen: added rdwr and append modes
- saveDataMount: added mount mode 9, 28 and 34
- pthread: added a bunch of needed functions
- mem: added sceKernelMapNamedDirectMemory
2024-06-08 00:23:55 -06:00
psucien edaeee194d libs: gnmdriver: get tessellation ring factor address 2024-06-08 01:19:52 +02:00
psucien 9ca083ee06 libs: gnmdriver: map compute queue 2024-06-08 01:19:52 +02:00
psucien 9230d04a0a common: slot_vector moved into common 2024-06-08 01:19:51 +02:00
georgemoralis 5d24a961cb
RWLocks implementation (#171)
* added dummy rwlock

* implemented part of rwlock functions (WIP)

* implemented the most important functions for rwlocks
2024-06-07 21:30:26 +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 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
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 5aa3a4d4a0 shader: Fix block processing order in dead code elimination pass 2024-06-06 02:46:36 +03:00
raphaelthegreat 705d326a6d kernel: Fix stack corruption from OrbisTimesec 2024-06-05 22:27:28 +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 bee444b6da fix for re-use 2024-06-05 17:57:05 +02:00
psucien 3a5ba82eae final touch 2024-06-05 16:34:17 +02:00
psucien 0b63a76b51 amdgpu: render target size hint for old runtime 2024-06-05 16:34:04 +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 184b7b7fc2 video_core: added shader header files generator from Citra 2024-06-05 14:31:50 +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 cd87005ded renderer_vulkan: unused extension removed 2024-06-04 12:43:23 +02:00
psucien d491bbf366 amdgpu: tiling mode introduced 2024-06-04 12:40:08 +02:00
psucien d7d324ac76 amdgpu: surface bits per element LUT 2024-06-02 22:46:40 +02:00
psucien 23cc60bf06 video_core: amdgpu: simply crash if an exception occured in coro 2024-06-02 19:16:05 +02:00
psucien 863d80c16c fix for name of the first dumped cmdb 2024-06-02 18:59:41 +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
georgemoralis 323e66f765 added app_content module 2024-05-31 15:03:05 +03:00
georgemoralis 3320156a27 fixed a case in sceKernelCreateEventFlag (found in Super Meat boy) 2024-05-30 20:16:16 +03:00
georgemoralis 3d749bc904 added sceSaveDataMount needed for Cursed Castilla 2024-05-30 19:14:06 +03:00
georgemoralis 4749782a68 scePthreadCondTimedwait needed for Hyper Light Drifter 2024-05-30 19:14:06 +03:00
georgemoralis dc3ab91a76 fixed sonic mania savedata 2024-05-30 19:14:06 +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 767e13cccb Linux build fix 2024-05-30 12:09:33 +02:00
psucien 0212e68752 shader_recompiler: redundant IR opcode removed 2024-05-30 11:50:42 +02:00
psucien 9227a2b868 video_core: multiple color attachments support 2024-05-30 11:21:26 +02:00
psucien 3741f013a3 shader_recompiler: added `NOP` and `RSQ` instructions 2024-05-30 09:43:49 +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 7fc273c6bc clang fmt 2024-05-29 20:31:34 +02:00
psucien 055dec1149 video_core: texture_cache: proper `UniqueImage` class movers 2024-05-29 17:17:24 +02:00
psucien a67b8f7a0b video_core: renderer_vulkan: proper inclusion of maintenance4 2024-05-29 17:06:46 +02:00
psucien 5f37a6be83 video_core: amdgpu: fix for a deadlock in wait on idle 2024-05-29 16:03:37 +02:00
psucien db113bbc7b videoout, platform: fix for ooo irqs 2024-05-29 16:02:51 +02:00
psucien e5486cc57f video_core: amdgpu: proper destruction of processing thread 2024-05-29 16:02:51 +02:00
psucien fb237bddad libraries: libc: fix for `FSin` implementation 2024-05-29 16:02:49 +02:00
georgemoralis d30703b4eb improvements in definations 2024-05-28 18:24:42 +03:00
georgemoralis 4d5e9d1da4 set,poll event flag 2024-05-28 15:13:56 +03:00
georgemoralis 1dfa91b638 event flag implementation from previous pr 2024-05-28 14:29:53 +03: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
georgemoralis 729e166cd3
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 09c7379fe0 fix for leaks of coroutine handle 2024-05-27 13:48:35 +03:00
TheTurtle 8dfa5782b2
video_core: Add constant buffer support (#147) 2024-05-26 15:51:35 +03:00
psucien 2963790e0d video_core: initial support for CE and ASC queues 2024-05-26 12:39:30 +02: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
psucien 62fd72009b video_core: a fix for multi submits processing (temporary code) 2024-05-22 22:20:33 +02:00
psucien 66b695f5c7 platform: restored use of magic_enum 2024-05-22 20:20:13 +02:00