Commit graph

2437 commits

Author SHA1 Message Date
kd-11
412c620b9d rsx: Allow sampling from shader_read resources for blit engine
- With harmonization between all texture types implemented, there is no difference between blit_engine_src and shader_read for supported formats
- Adds extra format filtering to ensure no conflicts when copying data
2019-09-10 16:54:02 +03:00
kd-11
75fcfac00e rsx: Modify find_cached_texture to respect gcm_format. Can pass 0 for "dont care" 2019-09-10 16:54:02 +03:00
kd-11
d1603fbb0b vk: Crop malformed image descriptors
- Some image descriptors (lle vdec?) are malformed with pitch being smaller than width
- Crop these for now pending hardware tests
2019-09-08 18:22:27 +03:00
kd-11
f53361b966 rsx: Fix fast texture copy when src_pitch != width * block_size
- Happens on mipmapped linear images
2019-09-08 18:22:27 +03:00
kd-11
0af9685381 rsx: Deprecate surface_transform::argb_to_bgra which is no longer required.
- vulkan now uses native swizzle mapping for both surface and texture
2019-09-08 13:56:41 +03:00
kd-11
312bf6840e vk: Fix surface_transform::argb_to_bgra transfers when no scaling is requested 2019-09-08 13:56:41 +03:00
kd-11
cbce309199 vk: Fix depth_stencil scaling 2019-09-08 13:56:41 +03:00
kd-11
48a5cd545f gl: Do not byteswap uint24_8 as it needs a custom 8_24 decoder 2019-09-08 13:56:41 +03:00
kd-11
440d58f2ff vk: Batch compute jobs when doing texture upload
- Reduces overall number of invocations
2019-09-07 16:23:20 +03:00
kd-11
6aa0b49dbc vk: Prefer using native alignment when uploading.
- Allows using fast copy paths and reduces memory and compute footprint
2019-09-07 16:23:20 +03:00
kd-11
a3a0cb8c17 rsx: Minor texture optimizations 2019-09-07 16:23:20 +03:00
kd-11
efa501dac6 rsx/vp: Set default inputs to (0, 0, 0, 1)
- From some hw tests, it seems this is the default.
2019-09-06 17:08:28 +03:00
kd-11
f8dbe281a5 glsl: Explicitly declare const inputs as such
- Avoids copying the values to temp variables before invoking function calls
- Generates shorter, cleaner AST and SPV bytecode
2019-09-06 17:08:28 +03:00
kd-11
14aa3b3360 vk: Remember to allocate enough vertex layout storage objects!
- vertex_layout_storage descriptors were added but the descriptor count was not updated
2019-09-05 19:43:39 +03:00
kd-11
360c0e9af6 vk: Restructure commandbuffer scoping to allow faults in vertex upload
- Defer renderpass open to allow recovery after fault in the middle of vertex upload
2019-09-05 19:43:39 +03:00
kd-11
9dc06cef7f rsx: Do not include ro data when attempting to do section merge
- Avoids crazy situations like trying to merge from a 3d or cubemap in memory
2019-09-02 16:49:04 +03:00
kd-11
e99e8460fe rsx/texture_cache_utils: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
27fabd7607 rsx/ring_buffer: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
33609717f8 rsx/cache: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
f8617500b5 rsx/methods: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
7f7b499303 rsx/util: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
0158a88c88 rsx/textures: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
401bd9112a rsx/prog: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
652f18ebaa rsx/buffers: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
6504daa713 overlays: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
94656ac1e3 rsx/vp: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
0ee9d7b46d rsx/fp: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
756fdedbf6 vk: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
a7b9ff33d8 gl: Warnings cleanup 2019-09-01 18:59:50 +03:00
kd-11
7f99de36c1 rsx: Fixup for surface_target_a flag being broken
- While the mask for surface_a is at index 0, the surface cache expects the order to be maintained correctly!
  Set the correct mask since surface store now checks each RTT individually
2019-08-30 21:46:19 +03:00
kd-11
61af2b7dfc vk: Workgroup tuning for different vendors 2019-08-30 21:46:19 +03:00
kd-11
99fb6d6a5d rsx: Allow GPU-accelerated stream manipulation when doing texture uploads 2019-08-30 21:46:19 +03:00
kd-11
e0a7912d7c rsx: Check for stencil writes when determining zeta_write flag 2019-08-30 21:45:41 +03:00
kd-11
04c808b8ab rsx: Fixup for MRT color write lookup and surface_target_a 2019-08-28 16:12:10 +03:00
kd-11
e55d216619 rsx: Workarounds for some buggy games
- Replace assert with log message until hardware testing confirms findings
2019-08-28 14:54:51 +03:00
kd-11
e334a43169 rsx: Fix surface cache hit tests
- Avoid silly broken tests due to queue_tag being called before pitch is initialized.
- Return actual memory range covered and exclude trailing padding.
- Coordinates in src are to be calculated with src_pitch, not required_pitch.
2019-08-28 14:54:51 +03:00
JohnHolmesII
cca6a19cdd Fix improper string concatenation in rsx_decode. 2019-08-28 01:26:14 +03:00
kd-11
2962e05f26 rsx: Implement per-RTT color masks
- Also refactors and simplifies some common code in surface store and rsx core
2019-08-27 21:59:02 +03:00
kd-11
27aeaf66bc gl: Restructure buffer objects to give more control over usage
- This allows creating buffers with no MAP bits set which should ensure they are created for VRAM usage only
- TODO: Implement compute kernels to avoid software fallback mode for pack/unpack operations
2019-08-27 21:59:02 +03:00
Nekotekina
dd79a5efb7 Remove fxm::make_always 2019-08-27 03:50:15 +03:00
Nekotekina
d2eba2387b Use g_fxo for display_manager 2019-08-27 03:50:15 +03:00
Nekotekina
928719b658 Use g_fxo for rsx::avconf 2019-08-27 03:50:15 +03:00
Nekotekina
38a06c4b14 Use g_fxo for SysRsxConfig
Rename to lv2_rsx_config
2019-08-27 03:50:15 +03:00
kd-11
3317e13b64 rsx: Hotfix for semaphore timeout bug
- Add pending flip requests as a reason to invoke the RSX local task handler and release the vblank semaphore
2019-08-26 22:33:29 +03:00
Megamouse
32b5b11a83 cellSaveData/overlays: prevent possible array out of bounds in list view 2019-08-26 21:09:20 +02:00
kd-11
eed32cf3a4 rsx: Decompiler fixups and improvements
- Fix 2D coordinate sampling of W coordinate.
  W is actually HPOS.w and not 1. Z is however always 0.
- Optimize register usage a bit
  Disassembling compiled SPV shows that global declaration results in less ops than using inout modifiers. Modifiers generate extra mov instructions.
2019-08-26 20:03:31 +03:00
kd-11
3e28e4b1e0 rsx/decompiler: Restructure program register behavior
- Fix reading of varying registers in FP
  Different registers have different behavior
- Always write to varying registers. If a register is not written to, it is initialized to (0, 0, 0, 1)
- Reimplements two-sided lighting correctly without hacks
- Also bumps shader cache version
2019-08-26 20:03:31 +03:00
kd-11
fe6ff8622a rsx: Decompiler fixups for conditional execution
- Cond actually obeys vector mask
2019-08-26 20:03:31 +03:00
kd-11
f9aea076ae rsx: Implement depth_buffer_float support.
- Since this is transparent to the application at all time, it only becomes a problem when doing memory transfer or DEPTH->RGBA conversion in shaders.
2019-08-26 20:03:31 +03:00
kd-11
9d981de96d rsx: Fix offloader deadlock
- Do not allow offloader to handle its own faults. Serialize them on RSX instead.
  This approach introduces a GPU race condition that should be avoided with improved synchronization.
- TODO: Use proper GPU-side synchronization to avoid this situation
2019-08-25 22:09:20 +03:00