Megamouse
c4b4ce46b8
cellSaveData: don't pause apps during dialogs
2019-12-29 14:22:58 +01:00
kd-11
24cb48971e
vk: Fix cb chunk synchronization deadlock
2019-12-29 13:49:46 +03:00
kd-11
e1b734fd12
rsx: Fix linux build
2019-12-29 13:49:46 +03:00
kd-11
ed2bdb8e0c
rsx: Zcull synchronization tuning
...
- Also fixes a bug where sync_hint would erroneously update the sync tag
even for old lookups (e.g conditional render using older query)
2019-12-29 13:49:46 +03:00
kd-11
fdb638436f
rsx: Add toggle for zcull sync behaviour - Adds a relaxed sync mode where ZCULL reports are lazily nudged into flushing and the main core does not actually wait for the event to finish before proceeding - Can drastically improve performance in cases where the game actually does not utilize the report data
2019-12-29 13:49:46 +03:00
kd-11
9f94a6dc11
vk: Refactoring and optimizations to query handling
...
- Caches query results when looking up report availability to avoid
entering driver code twice.
- Minor code restructuring
2019-12-29 13:49:46 +03:00
kd-11
55ad9244c0
vk: Switch occlusion pool to FIFO rather than LIFO to avoid hard stall
2019-12-29 13:49:46 +03:00
kd-11
cdd9c12132
vk: Emulate conditional rendering for AMD
2019-12-29 13:49:46 +03:00
kd-11
93895838c7
vk: Implement hw conditional rendering
2019-12-29 13:49:46 +03:00
kd-11
a51395370e
vk: Implement multithreaded command submission
...
- A few nagging issues remain, specifically that partial command stream
largely caused by poor synchronization structures for partial CS flush
and also the fact that occlusion map entries wait on a command buffer
and not an EID!
2019-12-29 13:49:46 +03:00
kd-11
5be7f08965
rsx: Restructure ZCULL report retirement
...
- Prefer lazy retire model. Sync commands are sent out and the reports will be
retired when they are available without forcing.
- To make this work with conditional rendering, hardware support is
required where the backend will automatically determine visibility by
itself during rendering.
2019-12-29 13:49:46 +03:00
kd-11
8dfea032f2
rsx: Remove deprecated do_method path that has been superceded by c++ inheritance for many years
2019-12-29 13:49:46 +03:00
Megamouse
ef6f565dbd
silence some annoying warnings
2019-12-28 15:40:57 +01:00
Emmanuel Gil Peyrot
9b77febd10
RSX: Remove two empty cpp files
2019-12-23 00:02:57 +03:00
Eladash
db4041e079
Implement rounded_div
...
Round-to-nearest integral based division, optimized for unsigned integral.
Used in sceNpTrophyGetGameProgress.
Do not allow signed values for aligned_div(), align().
2019-12-20 14:47:04 +03:00
Emmanuel Gil Peyrot
e30173a835
rsx: Make X11 optional on Linux
...
This makes it possible to build rpcs3 on a pure Wayland system, without
the Xlib installed.
2019-12-20 10:48:03 +00:00
Nekotekina
321f7e7197
Fix missing-braces warnings
2019-12-13 03:21:43 +03:00
kd-11
73236efe58
vk: Remove some outdated code ( #7060 )
2019-12-12 16:29:55 +03:00
Nekotekina
835892aa51
C-style cast cleanup VII
2019-12-05 02:10:15 +03:00
Nekotekina
377e7d2a73
C-style cast cleanup VI
2019-12-04 17:56:22 +03:00
scribam
2eaaf5b132
vk: Add sampleRateShading to the list of device enabled features
2019-12-04 12:59:38 +03:00
Nekotekina
5b9df53c13
C-style cast cleanup (partial)
...
Replace C-style casts with C++ casts.
2019-11-29 00:35:23 +03:00
kd-11
fd751e3e7b
rsx: Improve blit format mismatch detection
2019-11-19 13:18:15 +03:00
kd-11
4a0e1c79ed
rsx: Improve format validation for blit engine
...
- Check all possible cases where format mismatch is possible.
- Warn if a slow path is going to be taken. Should help with future
optimizations.
2019-11-18 13:17:00 +03:00
kd-11
c415578e79
vk: Clamp buffer row length to never be less than declared width
...
- Fixes some games with broken textures
2019-11-18 13:17:00 +03:00
Anuskuss
7e31c30133
Intel iGPU needs workaround on Windows
2019-11-15 12:08:16 +03:00
kd-11
8234bdb8f0
vk: Check for heap change events after a grow to avoid spec violations
...
- Avoid referencing the old buffer in stale views. Status can be set
globally if requested during heap creation.
2019-11-10 17:53:12 +03:00
kd-11
5968427a2f
vk: Initialize queries before use
...
- The spec does not guarantee that queries are initialized. In fact, it
now says all queries must be reset before they are used for the first
time.
2019-11-10 17:53:12 +03:00
kd-11
8ea9bc9874
vk: Reduce memory allocation sizes of default heaps
...
- The heaps will grow as desired, no need to overallocate to cater to
the most resource-hungry games
2019-11-10 17:53:12 +03:00
kd-11
0a32d478df
vk: Enable auto-growing of the data heaps for the performance case
2019-11-10 17:53:12 +03:00
kd-11
357e0d2097
vk: Implement explicit runtime flags to manage events like heap sync
2019-11-10 17:53:12 +03:00
kd-11
f359342721
rsx: Implement mutable ring buffers with grow support
2019-11-10 17:53:12 +03:00
Emmanuel Gil Peyrot
f76720ceb0
Remove extraneous ::narrow<int>() calls
...
GSL’s gsl::span didn’t use the correct type for its index_type, which is
why they were needed.
2019-11-09 19:30:06 +01:00
Emmanuel Gil Peyrot
ef368c5171
rsx: Replace gsl::byte with C++17’s std::byte
2019-11-09 19:30:05 +01:00
kd-11
508ffcb775
vk: Compute kernel fixups
...
- Adhere to workgroup count limits as exposed by the GPU vendor.
They already execute properly even when going beyond the limits but this removes validation noise.
- Fix invocation counts for deswizzle kernel. The count was incorrect if blocksize was not 4, causing a bunch of useless work to be done.
2019-11-05 22:07:22 +03:00
kd-11
99d71fdc2a
vk: Implement layer batching for the GPU swizzle decoder
...
- Handles all LODs per layer meaning cubemaps are now fully handled in 6 passes instead of 6 * (log2(width)) passes.
- Handles all LODs of a 3D texture in one pass as well.
- The improvements do warrant dropping down the number of allowed compute invocations a bit
2019-11-05 22:07:22 +03:00
kd-11
7a0b94f343
vk: Minor compute optimizations
...
- Remove use of uniform buffers for compute static data. Use push
constants instead.
- Minor touchups to the deswizzle code to avoid redundant data copies.
2019-11-05 22:07:22 +03:00
kd-11
1266b63135
vk: Enable gpu deswizzling
2019-11-05 22:07:22 +03:00
kd-11
9cd3530c98
rsx: Set up framework for hw deswizzle
2019-11-05 22:07:22 +03:00
kd-11
3e0f9dff4d
vk: Improve zcull synchronization
...
- Use zcull sync hints more aggressively
2019-11-04 18:48:41 +03:00
kd-11
fe3c290d03
vk: Reimplement occlusion result reading
...
- Implement partial result reads
2019-11-04 18:48:41 +03:00
kd-11
51e0eaaddc
rsx: Implement backend notification for upcoming zcull reads
2019-11-04 18:48:41 +03:00
kd-11
6b3af09fa5
vk: Improved crash message for missing MSAA features
2019-11-04 16:56:34 +03:00
kd-11
bbed791ee0
vk: Add explicit support for identity image views
...
- Allows bypassing all remap shenanigans to make some operations that
rely on the raw image to work correctly.
2019-11-01 19:35:46 +03:00
kd-11
63bbf11a76
vk: Add video out calibration pass
...
- Adds gamma correction and RGB range filters to output to match PS3
2019-10-31 14:43:24 +03:00
kd-11
78aefe5b5e
rsx/overlays: Add support for other primitive types other than triangle_strips
2019-10-31 14:43:24 +03:00
kd-11
35794dc3f2
vk: Add checks for alphaToOne support
...
- This feature is very rarely used, as alphaToCoverage is commonly used as a replacement for blending, not in addition to it.
2019-10-30 01:06:28 +03:00
kd-11
eda09489b2
vk: Optionally ignore depth bounds testing on hardware that does not
...
support it.
2019-10-29 20:03:54 +03:00
kd-11
7a5c20ef85
vk: Minor spec touchups
...
- Simplify active instance management. While multicontext support will
be required in future, this is better done with multiple logical devices
rather than multiple instances.
- Destroy the WSI surface on exit
- Enable depthBoundsTest explicitly. TODO: Properly check for supported
features.
2019-10-29 20:03:54 +03:00
kd-11
aa3eeaa417
rsx: Separate subresource_layout:dim_in_block and
...
subresource_layout::dim_in_texel
- These two are not always linked when working with compressed textures.
The actual texels extend past the actual size of the image if the size
is not aligned. e.g if height is 1, the real height is 4, but its not
possible to determine this from the aligned size. It could be 1, 2, 3 or
4 for example.
- Fixes image out-of-bounds writes when uploading from CPU
2019-10-29 20:03:54 +03:00