Commit graph

743 commits

Author SHA1 Message Date
RipleyTom
87bf0386c4 Screenshot function 2019-08-14 19:24:42 +02:00
kd-11
f0bd0b5a7c rsx: Conditional render sync optimization
- ZCULL queue was updated to one-per-cb but the conditional render sync hint was not updated.
- Do not unconditionally flush the queue unless the upcoming ref is contained in the active CB.
- This avoids spamming queue flush, which frees up resources and improves performance
2019-07-30 21:13:42 +03:00
Malcolm Jestadt
d689a6e47b vk: Don't warn RADV users on LLVM 8.0.1
- The 'back screen' issue on RADV was resolved with LLVM 8.0.1
2019-07-30 19:56:05 +03:00
kd-11
9a7c2784f0 rsx: Do not clip scissor to viewport when doing buffer clear 2019-07-20 16:39:32 +03:00
kd-11
e2574ff100 rsx: Support CSAA transparency without multiple rasterization samples enabled 2019-07-19 15:49:08 +03:00
kd-11
b5a2f0df68 rsx: Implement separate viewport raster clipping
- Merge viewport raster window and scissor into one clipping region
- Viewport raster clip is different from viewport geometry clipping in
hardware as the latter is configurable separately
2019-07-19 14:21:19 +03:00
scribam
a268415121 vk: Use macros from Vulkan SDK 2019-07-17 17:56:29 +03:00
kd-11
ea2f4d57fa rsx: Fixups 2019-07-17 13:29:42 +03:00
kd-11
998717659f rsx: Fix reference leak when cloning surfaces 2019-07-17 13:29:42 +03:00
kd-11
009e01a347 rsx: Set up for multi-section inheritance 2019-07-17 13:29:42 +03:00
Malcolm Jestadt
94af3b3f03 vk: Fix Linux Vega float16_t workaround
- It was disabling float16_t for non Vega cards
2019-07-12 12:25:46 +03:00
kd-11
2898309f68 vk: Silence some debug prints
- This message confuses some users
2019-07-11 13:22:13 +03:00
kd-11
2548057ea0 vk: Improve AMD driver support
- Workaround broken fp16 in AMDVLK/RADV
- Do not disable primitive restart as the issue seems to have been fixed
2019-07-09 16:27:59 +03:00
kd-11
9ca6546dec vk: When reusing resources, make sure to reinitialize the component layout 2019-07-09 16:27:59 +03:00
kd-11
0cc672dcb3 vk: "Improve" initialization hack
- Change default alpha to 1 from 0
- TODO: Implement memory tagging for synchronizing this
2019-07-09 16:27:59 +03:00
kd-11
c47f4fd59e vk: Fix frame skipping 2019-07-09 16:27:59 +03:00
kd-11
ad10eb391e vk: Reuse discarded memory whenever possible instead of recreating new
objects
- Memory allocations are surprisingly expensive when spammed
2019-07-03 15:52:16 +03:00
kd-11
71e809a78b rsx: Implement dma abort in case of a reset after misprediction 2019-07-03 15:52:16 +03:00
kd-11
0f11939faf vk: Refactor gc 2019-07-03 15:52:16 +03:00
kd-11
ae93b417ec vk: Handle emergency commandbuffer close with dangling queries
- TODO: Refactoring
2019-07-03 15:52:16 +03:00
kd-11
d69e8288ad vk: Restructure commandbuffer submission into tagged event IDs
- Tagged eventIDs can be used to safely delete resources that are no
longer used
- TODO: Expand gc to collect images as well
- TODO: Fix the texture cache to avoid over-allocating image resources
2019-07-03 15:52:16 +03:00
kd-11
ce04a797c3 vk: Fix event signal race when speculation fails to avoid a cache miss
- TODO: Proper GC for stale events
2019-07-03 15:52:16 +03:00
msuih
690cdff0d3 Minor fixes
- Fix a typo in OpenAL
- Fix typo in cellHttp.h
- Unused variables in catch
- Use 64-bit shifts
- Use use_count with shared pointers, unique is depracated and getting removed
- Explicitly cast boolean to int
- Signed/unsigned issues with loop variables
- Fix missing return statement (the code path is unreachable, but compiler wants a return)
- */ ouside of comment
- Fix duplicate layout name
2019-07-01 04:33:23 +03:00
Eladash
43f919c04b Fixup after #6143 (#6146)
vm::spu max address was overflowing resulting in issues, so cast to u64 where needed. Fixes #6145.
    Use vm::get_addr instead of manually substructing vm::base(0) from pointer in texture cache code.
    Prefer std::atomic_thread_fence over _mm_?fence(), adjust usage to be more correct.
    Used sequantially consistent ordering in semaphore_release for TSX path as well.
    Improved memory ordering for sys_rsx_context_iounmap/map.
    Fixed sync bugs in HLE gcm because of not using atomic instructions.
    Use release memory barrier in lwsync for PPU LLVM, according to this xbox360 programming guide lwsync is a hw release memory barrier.
    Also use release barrier where lwsync was originally used in liblv2 sys_lwmutex and cellSync.
    Use acquire barrier for isync instruction, see https://devblogs.microsoft.com/oldnewthing/20180814-00/?p=99485
2019-06-29 18:48:42 +03:00
JohnHolmesII
232a35b6fc Various small warning fixes
-Indentation warnings
-prevent shift overflow
-This was declared extern in all contexts. Remove this for initialization
-Fix main return types. OH CANADA!
-Silence extraneos 'unused expression' warning
-Force use return value (warning)
-Remove tautological compare copy-pasta (char always < 256)
2019-06-28 01:45:29 +03:00
JohnHolmesII
948c1df969 Remove unecessary vulkan loader check var, per kd 2019-06-28 01:45:29 +03:00
JohnHolmesII
a124ec4a26 Remove braces around shader source strings (warnings) 2019-06-28 01:45:29 +03:00
JohnHolmesII
23094b48bb Fix warnings related to -Wswitch
Add default cases.
Move default breaks to newline
Add proper handling in some instances.
Add missing enums to switches
2019-06-28 01:40:52 +03:00
kd-11
9ce7b8a401 vk: Add LLVM8 warning for RADV drivers 2019-06-25 20:50:54 +03:00
kd-11
009c55fcba vk: Fix broken layout stream on first draw call 2019-06-25 20:50:54 +03:00
kd-11
8249d51aa8 vk: Optimize occlusion pool management
- Do not consume a slot every draw call, instead batch as many draws as possible
- Since renderpasses are dispatched per-draw-clause, keeping occlusion queries outside the renderpasses works fine
- If renderpasses are reorganized, occlusion tasks will have to be reorganized again
2019-06-25 20:50:54 +03:00
kd-11
d26b25816d rsx: Improve profiling setup
- Avoid spamming QPC when not needed
- Free performance when debug overlay is not enabled
2019-06-25 20:50:54 +03:00
kd-11
6a32f716db rsx: Reimplement vertex layout streaming
- Remove string comparisons from the hot-path!
- Use attribute streaming and push constants to avoid forcing a descriptor block copy every other draw call/pass.
  While this isn't so bad on nvidia cards, it makes AMD cards a slideshow.
2019-06-25 20:50:54 +03:00
kd-11
59ee74a275 rsx: Disable vertex cache if multithreaded memory access is enabled
- When multithreaded RSX is enabled, the vertex cache just lowers performance
- The small cost of upload is paid by the asynchronous thread, allowing RSX to work optimally
2019-06-25 20:50:54 +03:00
kd-11
0fa3bcc336 rsx: Asynchronous data transfer 2019-06-25 20:50:54 +03:00
kd-11
b645ebdb04 vk: Refactor device management and improve driver detection 2019-06-25 20:50:54 +03:00
kd-11
25bba9bf56 vk: API update
- use KHRONOS_validation instead of LUNARG_standard_validation which is deprecated
2019-06-25 20:50:54 +03:00
kd-11
f113cfe5c0 vk: Avoid some useless memory barriers
- Do format conversions only when necessary
2019-06-25 20:50:54 +03:00
kd-11
6be7c58fa4 glsl: Refactoring, cleanup and optimizations
- Avoid generating unused code
- Reduce GPR usage in emitted code
2019-06-25 20:50:54 +03:00
Lassi Hämäläinen
c963c51a60 Remove unnecessary header includes
- Manually removed lot of unneeded #includes to clean code and reduce
  compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
scribam
185fd3d257 rsx: Minor cleanup after #6055 2019-06-17 00:31:38 +03:00
kd-11
e515d9b83a vk: Fixup for missing resource reference
- Missing ref increment when using framebuffer could lead to use-after-free.
  How master was not crashing is surprising
2019-06-14 16:19:52 +03:00
kd-11
c90186cf35 vk: Do not use pixel_center_origin as its use is explicitly restricted by spec 2019-06-14 16:19:52 +03:00
kd-11
98156d2a2c vk: Avoid submitting wrong sample count in overlay passes 2019-06-14 16:19:52 +03:00
kd-11
4104d7a6a1 vk: Simplify WCB heuristics and fix out-of-bounds access 2019-06-14 16:19:52 +03:00
kd-11
296e0105c4 vk: Fix WCB for antialiased memory 2019-06-14 16:19:52 +03:00
kd-11
9d0f5aedf3 vk: Add some missing barriers 2019-06-14 16:19:52 +03:00
kd-11
e4671c29a6 rsx: Fix typo
- Arguments to the transform function are xxyy not xyxy
2019-06-14 16:19:52 +03:00
kd-11
8a1cf2c913 rsx: Attempt to reduce stencil load overhead for nvidia cards 2019-06-14 16:19:52 +03:00
kd-11
ca82dd7200 vk: Improve overlay passes for resolve/unreolve
- Refactor overlays and resolve passes to support use of push constants instead of relying buffer map/unmap
- Add support for nvidia resolve (NV is the only vendor not supporting shader_stencil_export)
2019-06-14 16:19:52 +03:00