Megamouse
5e7d25ad35
overlays: refactor shader loading dialogs
2020-01-03 14:22:40 +01:00
kd-11
7786681954
rsx: Improve MTRSX synchronization
...
- Properly synchronize DMA transfers when handling RSX pipeline
barriers. Texture read barrier is used to signify completion of DMA
routines and is often used to signal that Cell can overwrite vertex
data!
2020-01-03 10:35:53 +03:00
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
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
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
377e7d2a73
C-style cast cleanup VI
2019-12-04 17:56:22 +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
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
kd-11
3e0f9dff4d
vk: Improve zcull synchronization
...
- Use zcull sync hints more aggressively
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
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
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
479d92d075
vk: Fix uninitialized (and wrong) variable access
2019-10-28 15:20:45 +03:00
kd-11
b0708367c2
vk: Round lod bias to the nearest 0.5 to lower number of permutations when nearest mipmap sampling is used
...
- The lambda values will be rounded to the nearest integer anyway
2019-10-28 15:20:45 +03:00
kd-11
f7842b765f
rsx: Implement packed format renormalization
...
- Renormalizes arbitrary N-bit values as 8-bit normalized.
- NV hardware performs integer normalization at 8 bits if the size is less than 8.
- This can cause significant arithmetic drift because the error is multiplied by a huge number when sampling.
2019-10-22 13:44:49 +03:00
kd-11
299b98b30a
vk: Disable mipmap sampling if sampling mode is does not have a mipmap filtering mode.
...
- GL_LINEAR and GL_NEAREST always sample LOD0 so make vulkan behave the same way
2019-10-18 14:46:37 +03:00
kd-11
70642484cd
vk: Check for cyclic references if sampler is marked as do-not-cache.
...
- Usually an indication of surface/texture cache interaction.
2019-10-18 14:46:37 +03:00
kd-11
eee2237e19
rsx: Track uncached cache resources
...
- Uncacheable resources can be reused as soon as they're made visible to the draw call.
- Since they're likely to be reused every draw call until the shader changes, it is important to reuse as much as possible
2019-10-18 14:46:37 +03:00
kd-11
5af8a9fbbc
rsx: Fix decoding of some fixed point texture parameters
...
- Checked envydocs and found the correct format as fixed-point 4.8 with optional sign bit
2019-10-17 18:18:00 +03:00
kd-11
840b52fe80
rsx: Implement mipmap gathering from texture cache
2019-10-17 18:18:00 +03:00
kd-11
69c090b14a
vk: Check frame descriptors before rendering in case of a flip request between begin() and end()
...
- There is no reason to delay async flip requests since most of the work can be handled during rendering anyway
2019-09-29 11:39:22 +03:00
kd-11
2275259bf5
rsx: Properly scale overlay passes to match drawable area
2019-09-28 13:24:14 +03:00
kd-11
e0005ec347
rsx: Refactoring and improvement
...
- Separate displayed statistics from actual backend statistics.
Allows asynchronous flipping to work correctly as it just uses display stats.
The real stats are used by the frame scope marker to determine behavior like engaging the FIFO optimizer or skipping draw calls correctly.
2019-09-19 23:10:09 +03:00
kd-11
52e8747b83
rsx: Workaround for exit deadlock
...
- Avoids games locking up when the stop button is pressed
2019-09-12 23:32:21 +03:00
kd-11
858014b718
rsx: Experiments with nul sink
2019-09-12 23:32:21 +03:00
kd-11
f06559412e
vk: RDB fixup
2019-09-12 23:32:21 +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
756fdedbf6
vk: Warnings cleanup
2019-09-01 18:59:50 +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
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
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
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
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