DanielSvoboda
d78f0a4a94
V_NOP | PfpSyncMe | S_CMPK_EQ_U32 ( #426 )
...
* V_NOP
V_NOP = Do nothing
* PfpSyncMe
PfpSyncMe ensures that all previous commands are completed before continuing.
'break' should be enough for now
* S_CMPK_EQ_U32
S_CMPK_EQ_U32
SCC = (D.u == SIMM16)
* S_CMPK_EQ_U32
* OperandField::Undefined:
* Update translate.cpp
remove OperandField::Undefined:
* Update image_view.cpp
[Render.Vulkan] <Error> image_view.cpp:ImageViewInfo:109: Storage image (num_comps = 4) requires swizzling [BGRA]
format 43 dst_sel 3886
* Update liverpool_to_vk.cpp
* S_CMPK_EQ_U32
* S_CMPK_EQ_U32
2024-08-25 22:07:46 +02:00
psucien
69b305bb40
GnmDriver: Clear context support ( #567 )
...
* gnmdriver: added support for gpu context reset
* shader_recompiler: minor validation fixes
* shader_recompiler: added `V_CMPX_GT_I32`
* shader_recompiler: fix for crash on inline sampler access
* compilation warnings and dead code elimination
* amdgpu: fix for registers addressing
* libraries: videoout: reduce logging pressure
* shader_recompiler: fix for devergence scope detection
2024-08-25 23:01:05 +03:00
TheTurtle
b52741b714
video_core: Bloodborne stabilization pt1 ( #543 )
...
* shader_recompiler: Writelane elimination pass + null image fix
* spirv: Implement image derivatives
* texture_cache: Reduce page bit size
* clang format
* slot_vector: Back to debug assert
* vk_graphics_pipeline: Handle null tsharp
* spirv: Revert some change
* vk_instance: Support primitive restart on list topology
* page_manager: Adjust windows exception handler
* clang format
* Remove subres tracking
* Will be done separately
2024-08-24 22:51:47 +03:00
Vladislav Mikhalin
3a46ff5a70
Misc fixes ( #517 )
...
* Misc fixes
* Removed the skip for draw calls without RTs
* Remove Srgb image stores to rework later
2024-08-21 23:54:23 +03:00
Vladislav Mikhalin
b4cee64615
Fix stencil buffer not being used ( #464 )
2024-08-18 20:37:29 +03:00
TheTurtle
3b1e3b0a72
control_flow_graph: Initial divergence handling ( #434 )
...
* control_flow_graph: Initial divergence handling
* cfg: Handle additional case
* spirv: Handle tgid enable bits
* clang format
* spirv: Use proper format
* translator: Add more instructions
2024-08-16 20:05:37 +03:00
Vinicius Rangel
248fcdbb35
gpu: check right register for primitive restart index ( #453 )
...
@red-prig suggestion
Not sure if it is possible to have trash in the register (maybe if primitive restart is toggled off), but just to make sure.
2024-08-16 19:49:15 +03:00
Vinicius Rangel
c69d6fd490
gpu: handle primitive restart index register ( #438 )
2024-08-15 15:43:27 +03:00
psucien
718200faad
video_core: CPU flip relay ( #415 )
...
* video_core: cpu flip is propagated via gpu thread now
* tentative fix for cpu flips racing
* libraries: videoout: better flip status handling
2024-08-14 11:36:11 +02:00
TheTurtle
705d1e29cf
video_core: Various fixes ( #423 )
...
* video_core: Various fixes
* clang format
2024-08-13 20:05:10 +03:00
psucien
7cf54bd7b1
fix for Linux compilation ( #416 )
2024-08-12 20:10:42 +02:00
psucien
29b76d8a2b
Build stabilization ( #413 )
...
* shader_recompiler: fix for float convert and debug asserts
* libraries: kernel: correct return code on invalid semaphore
* amdgpu: additional case for cb extents retrieval heuristic
* removed redundant check in assert
* amdgpu: fix for linear tiling mode detection fin color buffers
* texture_cache: fix for unexpected scheduler flushes by detiler
* renderer_vulkan: missing depth barrier
* texture_cache: missed slices in rt view; + detiler format
2024-08-12 17:23:01 +03:00
psucien
9b4d3b4db1
Video Core: debug tools ( #412 )
...
* video_core: better use of rdoc markers
* renderer_vulkan: added gpu assisted validation
* renderer_vulkan: make nv_checkpoints operational
* video_core: unified Vulkan objects names
2024-08-12 13:46:45 +02:00
psucien
7da029808f
Gnmdriver: More functions ( #410 )
...
* libraries: gnmdriver: added `sceGnmGetGpuCoreClockFrequency`
* libraries: gnmdriver: `sceGnmSetVgtControl` added
* amdgpu: gpuclock64 in write eop packet
2024-08-12 13:29:57 +02:00
TheTurtle
8809e1c226
video_core: Implement guest buffer manager ( #373 )
...
* video_core: Introduce buffer cache
* video_core: Use multi level page table for caches
* renderer_vulkan: Remove unused stream buffer
* fix build
* oops forgot optimize off
2024-08-08 15:02:10 +03:00
TheTurtle
e91da052c3
video_core: Minor fixes ( #366 )
...
* data_share: Fix DS instruction
* vk_graphics_pipeline: Fix unnecessary invalidate
* spirv: Remove subgroup id
* vector_alu: Simplify mbcnt pattern
* shader_recompiler: More instructions
* clang format
* kernel: Fix cond memory leak and reduce spam
* liverpool: Print error on exception
* build fix
2024-08-05 13:45:28 +03:00
DanielSvoboda
25b9abec77
SampleCountFlagBits::e16 - GetGpuClock64 ( #360 )
...
* SampleCountFlagBits::e16
* GpuClock64
* GpuClock64
* Update pm4_cmds.h
* Update pm4_cmds.h
2024-08-04 15:49:43 +02:00
TheTurtle
bfc845324c
shader_recompiler: Small instruction parsing refactor/bugfixes ( #340 )
...
* translator: Implemtn f32 to f16 convert
* shader_recompiler: Add bit instructions
* shader_recompiler: More data share instructions
* shader_recompiler: Remove exec contexts, fix S_MOV_B64
* shader_recompiler: Split instruction parsing into categories
* shader_recompiler: Better BFS search
* shader_recompiler: Constant propagation pass for cmp_class_f32
* shader_recompiler: Partial readfirstlane implementation
* shader_recompiler: Stub readlane/writelane only for non-compute
* hack: Fix swizzle on RDR
* Will properly fix this when merging this
* clang format
* address_space: Bump user area size to full
* shader_recompiler: V_INTERP_MOV_F32
* Should work the same as spirv will emit flat decoration on demand
* kernel: Add MAP_OP_MAP_FLEXIBLE
* image_view: Attempt to apply storage swizzle on format
* vk_scheduler: Barrier attachments on renderpass end
* clang format
* liverpool: cs state backup
* shader_recompiler: More instructions and formats
* vector_alu: Proper V_MBCNT_U32_B32
* shader_recompiler: Port some dark souls things
* file_system: Implement sceKernelRename
* more formats
* clang format
* resource_tracking_pass: Back to assert
* translate: Tracedata
* kernel: Remove tracy lock
* Solves random crashes in Dark Souls
* code: Review comments
2024-07-30 23:32:40 +02:00
psucien
8dbfac7b64
Surface management rework (2/3) ( #329 )
...
* texture_cache: interface refactoring
* a bit of fixes and improvements
* texture_cache: macro tile extents for bpp 128
* texture_cache: detiler: prefer host memory for large buffers upload
2024-07-28 17:20:42 +02:00
TheTurtle
5363a226e1
Move presentation to separate thread/improve sync ( #303 )
...
* video_out: Move presentation to separate thread
* liverpool: Better sync for CPU flips
* driver: Make flip blocking
* videoout: Proper flip rate and vblank management
* config: Add vblank divider option
* clang format
* videoout: added `sceVideoOutWaitVblank`
* clang format
* vk_scheduler: Silly merge conflict
* externals: Add renderdoc API
* clang format
* reuse
* rdoc: manual capture trigger
* clang fmt
---------
Co-authored-by: psucien <168137814+psucien@users.noreply.github.com>
2024-07-28 15:54:09 +02:00
squidbus
d42a32bbd8
Add initial macOS support.
2024-07-21 22:36:12 +03:00
psucien
2b31ab1e71
Surface management rework (1/3) ( #307 )
...
* amdgpu: proper CB and DB sizes calculation; minor refactoring
* texture_cache: separate file for image_info
* texture_cache: image guest address moved into image info
* texture_cache: surface size calculation
* shader_recompiler: fixed sin/cos
Thanks to red_pring and gandalfthewhite0173
* initial preparations for subresources upload
* review comments
2024-07-20 12:51:21 +03:00
Vladislav Mikhalin
f1d1af2dba
Implemented load_buffer_format_* conversions ( #295 )
...
* Implemented load_buffer_format_* conversions
* clang-format insists on ugly things
2024-07-16 15:03:07 +03:00
georgemoralis
6202c21106
Merge pull request #293 from shadps4-emu/misc-fixes3
...
Various linux fixes
2024-07-15 15:25:20 +03:00
georgemoralis
9a7a508b80
Merge pull request #287 from polybiusproxy/dev
...
gnmdriver: Implement shader functions
2024-07-15 07:47:33 +03:00
IndecisiveTurtle
d1e30e4807
liverpool: Num submits should be atomic
2024-07-15 01:28:36 +03:00
psucien
77d0535f9f
review comments applied
2024-07-14 23:25:41 +02:00
psucien
95f4bc836b
missing line fix
2024-07-14 17:11:54 +02:00
psucien
535a8f30e9
renderer: debug markers for ability to match cmdlists with rdoc captures
2024-07-14 11:37:52 +02:00
psucien
aecf84cb63
amdgpu: additional heuristic for CB extents detection
...
Found in CUSA00144
2024-07-14 10:59:22 +02:00
psucien
c068adda48
recompiler: proper VS inputs initialization
2024-07-13 01:00:24 +02:00
psucien
317838122d
renderer: added support for instance step rates
2024-07-06 18:03:43 +02:00
psucien
2da61fa0b3
gnmdriver, amdgpu: added gpu idle IRQ; submission lock logic improved
2024-07-06 18:03:34 +02:00
TheTurtle
60c63da3fd
shader_recompiler: Check usage before enabling capabilities ( #245 )
...
* vk_instance: Better feature check
* shader_recompiler: Make most features optional
* vk_instance: Bump extension vector size
* resource_tracking_pass: Perform BFS for sharp tracking
* The Witness triggered this
2024-07-06 02:42:16 +03:00
TheTurtle
d9873e30bc
shader_recompiler: Implement most integer image atomics, workgroup barriers and shared memory load/store ( #231 )
...
* shader_recompiler: Add LDEXP
* shader_recompiler: Add most image integer atomic ops
* shader_recompiler: Implement shared memory load/store
* shader_recompiler: More image atomics
* externals: Update sirit
* clang format
* cmake: Add missing files
* shader_recompiler: Fix some atomic bugs
* shader_recompiler: Vs outputs
* shader_recompiler: Shared mem has side-effects, fix format component order
* shader_recompiler: Inline constant buffer impl
* video_core: Fix regressions
* Work
* Fixup a few things
2024-07-05 00:15:44 +03:00
IndecisiveTurtle
0a900115e8
video_core: Fix some regressions
2024-07-01 18:26:22 +03:00
IndecisiveTurtle
028e28e231
shader_recompiler: Apply buffer swizzle on vertex attribs
2024-07-01 13:56:14 +03:00
IndecisiveTurtle
1fba40369d
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
69797f4d5d
video_core: Track renderpass scopes properly
2024-07-01 13:56:14 +03:00
psucien
5c4d807033
amdgpu: fix for wrong constant ram offset in WriteConstRam
decoding
2024-06-30 01:21:39 +03:00
psucien
33939eb470
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
0dfb003aca
libraries: gnmdriver: complete HW stat init functions
2024-06-27 13:36:55 +02:00
IndecisiveTurtle
40f16aadd4
liverpool: Fix assert for compute queues
2024-06-26 20:00:09 +03: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
fc1d1e6f73
shader_recompiler: Even more instructions
2024-06-22 18:09:04 +03:00
psucien
42af4aab41
video_core: shaders hash switched to one from binary header
2024-06-15 23:24:32 +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
ce62ae31e5
tracy: basic markup and project palette
2024-06-11 12:14:33 +02:00