Nekotekina
bcbe324534
geometry.h: make conversion operators explicit
...
It requires static_cast<> to call them.
2020-02-11 13:21:45 +03:00
kd-11
efc8c3f4a9
vk: Fixup for VK_ERROR_SUBOPTIMAL_KHR
...
- break from a switch does not break out of the external scope!
2020-02-09 13:45:30 +03:00
kd-11
792c481f6d
rsx/overlays: Fix clipped rendering of UI elements
...
- Take viewport offset into account when applying window transforms.
This is necessary because gl_FragCoord is based on the framebuffer and not the viewport.
2020-02-09 12:55:56 +03:00
Eladash
b7043ce000
Make rsx::get_address report caller location
2020-02-08 22:18:56 +03:00
kd-11
d59c449ff6
vk: Remove an overzealous assert
2020-02-07 16:15:02 +03:00
kd-11
0bba04ef8d
vk: Fix a bug in RCB/RDB when MSAA is set to disabled.
...
- Initially MSAA option was hardcoded to be always enabled, this bug is a remnant of that time.
2020-02-06 17:54:05 +03:00
Nekotekina
c0f80cfe7a
Use attributes for LIKELY/UNLIKELY
...
Remove LIKELY/UNLIKELY macro.
2020-02-05 10:42:34 +03:00
Nekotekina
15391f45d0
Modernize RSX logging (rsx_log variable)
2020-02-01 11:52:22 +03:00
kd-11
698702cd4a
vk: Fix DMA data leak
...
- There still does not exist a ranged flush implementation which is required.
- TODO: Implement this properly
2020-01-26 13:58:48 +03:00
kd-11
1166ae19bb
vk: Use appropriate layouts depending on use case when creating new textures to avoid needless barriers
2020-01-26 13:58:48 +03:00
Maksim Derbasov
1abdee242a
small improvement ( #7288 )
...
* small improvement
* comments addressed
Co-authored-by: kd-11 <15904127+kd-11@users.noreply.github.com>
2020-01-22 12:28:48 +00:00
kd-11
22ca2827de
rsx: Improve window border detection and clearing
...
- Improves logic to detect if the frame requires letterboxing and
properly clears the background appropriately.
2020-01-18 19:52:52 +03:00
kd-11
5e0ca4c0c4
rsx: Fixup for missing visuals when framebuffer is larger than requested
...
display dimensions.
2020-01-18 19:52:52 +03:00
kd-11
48407752a6
formatting: Unify indentation type in the newly added files to tabs
2020-01-18 19:52:52 +03:00
kd-11
bad4d1ff05
rsx: Improve present image scanning
...
- Adds support for partial (letterboxed) source images by taking insets
into account.
- Bugfix for potential access violation when capturing screenshot on
vulkan
2020-01-18 19:52:52 +03:00
kd-11
7453e46a7c
rsx: Refactor out complex present code into separate files
...
- Also restructures present code to have image lookup in a separate
re-usable function.
2020-01-18 19:52:52 +03:00
kd-11
b36b9e4822
vk: Fixup for total number of combined samplers using the dynamic binding structure
2020-01-18 11:17:19 +03:00
kd-11
0a2b6a290d
vk: Fixup
...
- Scaling is not needed for a direct typeless transfer!
2020-01-17 14:31:14 +03:00
kd-11
9b34f00241
vk: Optimize image transfers
...
- Adds the same optimization/simplification steps to complex image
transfer routines. Whenever possible, multi-step transfers are collapsed
into a single operation.
2020-01-16 22:29:26 +03:00
kd-11
621fab2ad9
vk: Fix D32S8 interpolation by using integer interpolation instead of floating point
...
- Interpolating floats is not the same as interpolating their bits!
Use integer format to interpolate linearly for D32F formats instead of using R32F as intermediary
2020-01-16 11:12:08 +03:00
kd-11
086ecf4ba6
vk: Add some missing image memory barriers causing artifacting on AMD cards
...
- There needs to be a memory barrier after each step.
- TODO: Optimize scale_typeless_safe function
2020-01-16 11:12:08 +03:00
kd-11
74ad525566
vk: Fixup for cs_scatter job
...
- Access to the stencil output has to be atomic as each 'word' is shared among 4 adjacent texels
- TODO: Can be optimized using mirrored buffer views
2020-01-15 21:12:51 +03:00
kd-11
2984300385
vk: Fix invocation alignment to support non-power-of-2 alignment
2020-01-15 15:42:36 +03:00
kd-11
ac4cadf538
vk: Fix word index counting for shuffle tasks
2020-01-15 15:42:36 +03:00
kd-11
175f78f5b3
vk: Lower default compute heap size to 64M
...
- There is no need to guess and use a large memory footprint as the heap is
now dynamic.
2020-01-15 15:42:36 +03:00
kd-11
3d96fe79cc
vk: Implement dynamic sized compute heap
...
- Implements a dynamically sized compute heap to allow growing up the
size if it is too small.
2020-01-15 15:42:36 +03:00
kd-11
8bbda3dedb
vk: Restructure command queue flushing behavior to avoid deadlock
...
- Queueing commands on the offloader is a good idea but unfortunately
page faults can still happen causing a cyclic dependency and eventual
deadlock. Characterized by a vk::wait_for_event timed out error
accompanied by severe hitching.
- Drain the fault-able commands before pushing a submit operation to the
queue. If a fault is in progress, bypass the queue system and submit
raw. Technically this is incorrect but there isn't much that can be
done about it right now.
2020-01-14 14:32:40 +03:00
kd-11
db5d03c340
vk: Generate dynamic binding table based on the capability of the drivers
...
- This alleviates constraints imposed on shaders to allow running on some not-so-great platforms.
2020-01-09 15:38:23 +03:00
kd-11
ef3b0db7d8
vk: Workaround for NVIDIA occlusion query failure
...
- When using partial results on NVIDIA, a non-zero result is returned even when the draw is fully occluded.
This, I believe, violates spec which says the partial result shall be between 0 and the final result.
2020-01-08 19:02:45 +03:00
Megamouse
5e7d25ad35
overlays: refactor shader loading dialogs
2020-01-03 14:22:40 +01:00
Megamouse
c9aee27d48
VK: remove unused init function declaration
2020-01-03 14:22:40 +01:00
kd-11
d12762414a
vk: Change default vertex output value
...
- Prefer w!=0 to avoid a situation where xyz/w = nan. More of a
theoretical problem, but some calculations break down in such a
situation.
2020-01-03 10:35:53 +03: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
kd-11
c4e59b5115
vk: Clamp depth export in FS
...
- PS3 matches OGL behavior where writing to the depth export
register results in clamping.
2020-01-01 22:39:20 +03:00
kd-11
915cf0bae8
vk: Do not leak mapped memory
2019-12-31 13:56:14 +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
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