Nekotekina
0c9c481cee
Use requires syntax in more places
...
Change style in some places.
2021-04-19 16:51:40 +03:00
Nekotekina
7dae376646
Implement fill_array() utility
2021-04-19 12:33:32 +03:00
David Carlier
7618e7f3fb
FreeBSD/clang update proposal.
...
silence few build warnings, VKDMA: disable Intel chipset for host buffer as it requires root privilege.
2021-04-18 19:56:21 +03:00
Eladash
67e2e154fa
Replace simple_type with std::common_type
2021-04-17 10:27:55 +03:00
Megamouse
7bc673002f
overlays: fix dirty state of message dialog
2021-04-16 23:18:13 +02:00
polar
24983ea329
removed whitespace
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-04-15 11:37:35 +02:00
p01arst0rm
6cab5b5591
removed extra perentheses pair
2021-04-15 11:37:35 +02:00
p01arst0rm
c9d2aed286
small collection of fixes
2021-04-15 11:05:15 +03:00
Megamouse
20c69a0e3e
overlays: make auto-repeat buttons configurable
...
and properly reset the auto-repeat timer whenever a new button was pressed
2021-04-13 20:57:05 +02:00
Megamouse
bdc5ed094b
overlays: implement OSK password mode
2021-04-13 20:57:05 +02:00
Megamouse
088d22675b
overlays: fix osk placeholder
2021-04-13 20:57:05 +02:00
Megamouse
fc9b3c13e6
misc: fix old some style casts and redundancies
2021-04-13 20:57:05 +02:00
kd-11
14a64e2529
rsx: Handle rare rounding issue where position.w is very close to zero
2021-04-13 21:26:23 +03:00
Megamouse
f5415fb4ac
overlays: dynamically change dialog background
2021-04-13 19:13:56 +02:00
kd-11
8d1fc18941
vk: Fix mip level packed pitch calculation
2021-04-13 00:14:16 +03:00
kd-11
06dc99ab85
rsx: Fix decompression of RB_RG textures.
...
- Removes several subtle hacks that hid the real issue.
A compressed texture has more than one texel per 'block'.
2021-04-11 21:36:36 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Megamouse
bf1756448e
overlays: fix taskbar progress reset
2021-04-04 13:38:10 +03:00
Nekotekina
963d150e93
Fix some -Weffc++ warnings (part 2)
2021-04-03 21:54:15 +03:00
Megamouse
b7eefeac8b
hotfix: skip progr dialogs if msg dialogs are open
2021-04-03 20:37:40 +02:00
Nekotekina
2212a131ef
Fix some -Weffc++ warnings (part 1)
2021-03-31 11:27:09 +03:00
Nekotekina
deacf05769
Enable -Wdeprecated-copy
...
Some classes violated the Rule of 3(5) in their special operator definitions.
2021-03-31 11:27:09 +03:00
Megamouse
870224cde0
Emu/overlay: ingame native overlay PPU compilation
2021-03-31 09:38:30 +02:00
Eladash
1e71deb0db
rsx: Compile shaders when CELL is not running
2021-03-30 11:13:47 +03:00
xddxd
9d895e6b15
Scheduler overhaul
2021-03-26 00:29:44 +03:00
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Megamouse
43ac33c2b4
cellSaveDataEnableOverlay
2021-03-18 11:11:34 +03:00
Megamouse
1e09be19f5
Qt: Fix PaintedPixmap crash if icon is null
2021-03-14 19:56:11 +01:00
Megamouse
1a5a0f5eca
overlays: Fix aspect ratio of custom bakground images
2021-03-14 16:46:16 +01:00
Nekotekina
c22e1e71f0
Continue fixing strict aliasing warnings
2021-03-13 18:02:37 +03:00
kd-11
a5f0faefc3
vk: Check for uninitialized target before going into any scaling op
2021-03-12 02:27:05 +03:00
kd-11
608f8de347
vk: Solve GPU hang/reset due to waiting on events that are never signaled
...
- TODO: Some refactoring may be required to pair the primary and secondary CB and avoid such blunders
2021-03-12 02:27:05 +03:00
kd-11
3e8a00d264
Basic fixups
2021-03-12 02:27:05 +03:00
kd-11
7d5a72c9e0
vk: Add options to system configuration
2021-03-12 02:27:05 +03:00
kd-11
48d0f80a86
vk: Add an alternate async queue scheduler
...
- This version violates spec but does not rely on CPU threads to keep the GPU from hanging. It's ironically much safer to use.
2021-03-12 02:27:05 +03:00
kd-11
bd6c187fcd
vk: Tune event polling for higher throughput
2021-03-12 02:27:05 +03:00
kd-11
585837a3f0
vk: Support new fxo usage pattern
2021-03-12 02:27:05 +03:00
kd-11
b4e821c28d
vk: Flip on async texture uploads
2021-03-12 02:27:05 +03:00
kd-11
589ac1c5d4
vk: Optimization - avoid touching the mutex at all if possible even when there is no contention
2021-03-12 02:27:05 +03:00
kd-11
c9e8b87c60
vk: Properly clean up async scheduler
2021-03-12 02:27:05 +03:00
kd-11
41f5158247
vk: Sync main pipe with async jobs if any
2021-03-12 02:27:05 +03:00
kd-11
d2993474fb
vk: Lazy-initialize image resource on first use when owned by a separate queue
2021-03-12 02:27:05 +03:00
kd-11
77e312fb99
vk: Add the async task scheduler
2021-03-12 02:27:05 +03:00
Megamouse
40f3adc45f
Overlays: Implement individual pulse
2021-03-11 20:48:12 +01:00
arabek
bdefeaf6f9
Use maybe_unused macro for chip var
...
Var chip is only used in the WIN32 ifdef block - use maybe_unused to silence the compiler warning about unused variable.
2021-03-11 14:33:04 +03:00
Nekotekina
4adf412049
Fix std::bit_cast misuse
2021-03-10 16:11:30 +03:00
Nekotekina
03332c340d
Implement utils::bless (pointer cast)
...
Tries to workaround strict aliasing troubles.
Don't confuse with std::bless which works differently.
2021-03-10 16:02:00 +03:00
Megamouse
cbd895a29c
Move code to cpp ( #9938 )
...
* GL: move GLOverlays code to cpp
* GL: move GLCompute code to cpp
* VK: move VKOverlays code to cpp
* VK: move VKCompute code to cpp
2021-03-10 00:58:08 +01:00
Nekotekina
9cbe77904d
Revert changes in BufferUtils.cpp
...
Should fix #9933
2021-03-09 19:19:24 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
53af2dbb3f
Add/fix warning -Wignored-qualifiers (GCC/clang)
...
Fix simple_array::const_iterator as a part of it.
2021-03-09 03:09:50 +03:00
xddxd
6d91a9fe6f
Possible workaround for mobile Kepler chips
2021-03-08 15:46:03 +03:00
Megamouse
a3a4c0a906
overlays: don't count initial garbage values.
...
This might also shave off some microseconds.
2021-03-07 00:52:11 +01:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
kd-11
1becd2f788
vk: Remove redundant double barrier
...
- Luckily it was not too harmful in single queue submissions
2021-03-03 13:17:04 +03:00
Megamouse
fa852c7dbe
perf overlay: add missing graph vertex
...
And fix potential division by 0
2021-03-03 00:33:46 +01:00
Megamouse
73ca2119ed
perf overlay: add datapoint settings to GUI
2021-03-03 00:33:46 +01:00
Megamouse
86dbb859b7
perf overlay: add datapoint count config settings
2021-03-03 00:33:46 +01:00
Megamouse
e1e370999e
perf overlays: fix dynamic font resize of graphs
2021-03-03 00:33:46 +01:00
Megamouse
038c708a0a
perf overlays: add detail level none (hides FPS)
2021-03-03 00:33:46 +01:00
Nekotekina
ea5e837bd6
fixed_typemap.hpp: return reference
2021-03-02 16:08:14 +03:00
Nekotekina
bbf52f3cea
named_thread: fix bugs in std::forward usage
...
Fix few misused threads and other bugs.
2021-03-02 16:08:14 +03:00
Nekotekina
d788b12a8e
fixed_typemap.hpp: reduce indirection
...
Backported some changes from auto_typemap.hpp
Implemented methods init(), reset(), clear()
Disabled recreation support.
2021-03-02 16:08:14 +03:00
Megamouse
0b5c6350ae
cellScreenshot: fix overlay scaling ( #9867 )
...
* cellScreenshot: fix overlay scaling
2021-02-28 23:00:49 +00:00
kd-11
4bef176e9b
vk: Fix inadvertent self-assign
2021-02-28 18:00:20 +03:00
kd-11
d2de8a87bf
vk: Explicit initialization of command pool queue family
2021-02-26 15:08:14 +03:00
kd-11
12cad7c393
vk: Add per-queue-family scratch resources and double buffer them
2021-02-26 15:08:14 +03:00
kd-11
be1238cc95
vk: Add support for queue family migration and refactor some texture upload code
2021-02-26 15:08:14 +03:00
Megamouse
6db25aa7fa
overlays: Fix cpu usage in low detail mode
2021-02-25 13:08:27 +03:00
kd-11
0e7e5b59ae
vk: Handle old GPUs without proper async queues
2021-02-23 23:22:41 +03:00
kd-11
d459da1378
Formatting fixes only
...
- Mostly remove camelcase usage in old code.
- Properly annotate vulkan API imports with _vk prefix to make it clear they are not regular variables.
2021-02-23 23:22:41 +03:00
Nekotekina
3063369322
vk::render_device::create: try to remove failing assertion
2021-02-23 19:46:37 +03:00
Nekotekina
cd01a1eb09
Move CPUStats.h -> util/cpu_stats.cpp
2021-02-23 18:24:50 +03:00
Megamouse
a771f168eb
overlays: fix perf overlay switching detail levels
...
The body was lagging behind the text. This was fixed by calling an updated version of init() on settings change.
This introduced spikes in the frametime graph, so the data had to become members and m_force_update was adjusted to not interfere with data aquisition.
2021-02-23 13:27:54 +03:00
Megamouse
79b5b79de1
overlays: fix initial size of perf_overlay body
...
You could see that it was not properly adjusted in the first frame in high detail mode.
2021-02-23 13:27:54 +03:00
Megamouse
7cc8380330
overlays: fix perf_metrics_overlay division by 0
2021-02-23 13:27:54 +03:00
Megamouse
e91df31f8c
overlays: Fix perf_metrics_overlay visibility
...
Also change auto type to compiled_resource in order to silence a warning about accidental copy by value
2021-02-23 13:27:54 +03:00
Megamouse
663b2c9c5e
overlays: Fix frametime graph spikes
...
The frametime_timer was restarted at the end of the update method, instead of immediately after reading its value.
This means that the frametime was lower than expected when an expensive task was executed in-between.
2021-02-23 13:27:54 +03:00
Eladash
447d2b6f93
Atomic RSX capture writes
2021-02-23 11:29:23 +03:00
kd-11
cb7cf40b5e
vk: Move queue family management from swapchain to logical device
2021-02-23 00:04:53 +03:00
kd-11
3632412c48
vk/dma: Simplify map_dma interface
2021-02-23 00:04:53 +03:00
kd-11
b7c2bfbcde
vk: Fix cyclic read-write in dma_block::load/flush
...
Some DMA block entries are stubs whose parents are DMA_block_EXT
entries.
Performing load() in this case becomes a memcpy(address,
same_address_again, length) which wastes performance and introduces
bugs.
2021-02-22 01:13:31 +03:00
Eladash
eb0d006168
Fix most of "[x] thread is too sleepy" at Emu.Stop() ( #9813 )
...
* Fixes some thread sleep/wait calls
2021-02-21 16:43:02 +03:00
Eladash
20eb4352fb
debugger: Fix single stepping ( #9793 )
2021-02-19 14:53:09 +03:00
Nekotekina
c8fefc4434
Fix -Wpessimizing-move (Clang)
2021-02-18 14:38:56 +03:00
Nekotekina
2c18d67769
Fix -Wsometimed-uninitialized (Clang)
2021-02-18 14:15:52 +03:00
Nekotekina
038148bf06
Fix almost all GCC warnings
2021-02-17 22:59:04 +03:00
Nekotekina
1446254a03
Add error on missing 'override'
...
For consistency.
2021-02-15 20:21:30 +03:00
Nekotekina
3bcd76bd4e
Fix regression (incorrectly removed specialization)
...
Changed CRLF->LF in VKPipelineCompiler.h
2021-02-15 17:05:51 +03:00
Nekotekina
0bcece4585
Make -Woverloaded-virtual an error
...
Had to devirtualize some functions.
2021-02-15 15:50:05 +03:00
Nekotekina
8e6e57de86
Enable -Wunused-function warning
2021-02-15 14:39:53 +03:00
kd-11
9f97bab717
vk: Fixup and refactor for exclusive fullscreen stuff
2021-02-15 10:27:36 +03:00
13xforever
76518d4c59
add a hidden option to prevent switching to exclusive full screen mode
...
this is helpful for people streaming RPCS3, or to prevent disabling HDR mode in Windows
2021-02-14 22:01:33 +03:00
kd-11
eba7d3b172
rsx: Add duplicate section detection when there are too many sections in the surface cache
...
- Check for useless sections.
Helps in games that create a bunch of sections randomly for one-time use
2021-02-14 20:42:34 +03:00
kd-11
b8311caa6b
vk: Silence some compiler warnings
2021-02-14 20:42:34 +03:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Alex Saveau
48296c2ba6
Fixup for multi-thread shader compilation (loading stage) ( #9762 )
...
* Multi-thread shader compilation
This offers a huge improvement in startup performance. With around 13,000 shaders we go from ~1:30 to under 10 seconds. It looks like this was the original intention of the author given the outer scope recompile variable.
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2021-02-12 14:39:35 +03:00
Ani
b858fceb4f
vk: Support incomplete lavapipe
...
Disable features still unimplemented by lavapipe when using it:
- samplerAnisotropy
- shaderStorageBufferArrayDynamicIndexing
- wideLines
as of mesa 21.1.0-dev (aea36ee05e9, 2020-02-10)
2021-02-11 14:49:37 +03:00
kd-11
195fb1cf66
rsx: Improve texture cache invalidate
...
- Bunch of improvements
- Properly signal renderer to rebind textures!
- TODO: Range checks, should be pretty easy
2021-02-10 11:37:14 +03:00
kd-11
52acc23ecf
rsx: Fix protection bug
2021-02-10 11:37:14 +03:00
kd-11
0a34fc4bcd
vk: Offload garbage collection to offloader thread
2021-02-10 11:37:14 +03:00
kd-11
bec91aab7b
rsx: Relax inheritance checks a bit
...
- It is not a fatal error for a texture to be defined where a framebuffer once existed.
2021-02-10 11:37:14 +03:00
kd-11
6f4dbf4fcd
vk/vma: Always use aligned requests
...
- Performance optimization when combined with vma optimizations added by me
2021-02-10 11:37:14 +03:00
kd-11
bf66c36ba4
rsx/texture_cache: Add support for reusing dirty images if possible
...
- Avoids a silly situation where a texture is discarded and an identical copy created immediately afterward.
Unfortunately allocating memory blocks is really slow so avoid it as much as possible.
2021-02-10 11:37:14 +03:00
kd-11
0c10f47e85
rsx: Lower cache block length to 256 pages
...
- Drastically lowers time wasted iterating blocks when many small objects
are present
2021-02-10 11:37:14 +03:00
kd-11
1bad9a939f
rsx: Refactor texture cache utils
...
- Also lays groundwork for optional hashed sections
2021-02-10 11:37:14 +03:00
kd-11
2d62f9c4c5
vk: Improve spec compliance ( #9748 )
...
- Always comply when running under strict mode
- Only allow hacky transport for known-to-work GPUs
2021-02-08 22:11:01 +00:00
kd-11
ddac4686a7
rsx: Clear vertex output register if nothing is written to it
...
- On NVIDIA GPUs, gl_Position is not initialized. Always clear to 0 to avoid on-screen crap
2021-02-05 22:22:07 +03:00
Eladash
2005c89baa
memory viewer: Implement RSX mode
...
* Set the ground for RSX modes of register editor and insttruction editor, do not use shared ptrs directly.
* Make register editor and instruction editor modeless to allow to copypaste values from thread context etc in the background.
2021-02-02 01:05:36 +03:00
Megamouse
9feb92df1b
More informative Error message on Vulkan driver crash
...
The message might not be the only reason, but at least it might help someone like me, who had no idea what he was looking at.
2021-01-31 15:51:21 +01:00
Megamouse
be26810cd7
RSX: Implement set_value for progress dialogs
2021-01-31 15:02:26 +01:00
Megamouse
df79b6c238
RSX: update shader loading dialog at 60 fps
...
Looks much smoother
2021-01-31 15:02:26 +01:00
Eladash
d3bc96a201
Fix minor issue with usage of STL thread::hardware_concurrency()
2021-01-29 18:23:29 +03:00
Eladash
70346028c5
Fix GCM HLE
...
Oops.
2021-01-29 10:31:15 +03:00
Eladash
0652870204
New RSX Debugger
2021-01-28 17:40:26 +03:00
Nekotekina
67dd6754a6
Seal cereal includes in util/cereal.cpp
2021-01-28 10:48:53 +03:00
Nekotekina
ee288340b0
Implement thread_ctrl::scoped_priority
...
RAII priority control (+1, or -1)
2021-01-25 21:49:16 +03:00
kd-11
22584fb2d1
vk/dma: Disable pasthrough DMA for NVIDIA+windows
...
- The driver seems to cache page mapping as long as allocation has not been removed
- This is undesirable as we cannot stop the emulator to remove stale allocations every time a page is unmapped
2021-01-24 14:24:55 +03:00
kd-11
90ac9165e2
vk/dma: Unmap pages from GPU when they are unmapped in Cell
2021-01-24 14:24:55 +03:00
kd-11
bcb69a54b2
gl: Avoid type shenanigans used to fake byteswap for select formats
...
- Just use the reversed type instead.
The new uploader backend combines swizzle+swap so there is no need for tricks anymore
2021-01-24 14:24:55 +03:00
kd-11
f93cb262ba
vk/dma: Fix multiple logical bugs
...
- Fix range chaining.
- Add validation checks that no overlaps exist.
2021-01-24 14:24:55 +03:00
kd-11
67949bb5b7
vk/dma: Allow interoperability between pass-through and write-back DMA caching types
2021-01-24 14:24:55 +03:00
kd-11
e56da4eb46
vk: Workaround for amdgpu kernel driver
2021-01-24 14:24:55 +03:00
kd-11
f7fdfe52bc
vk: Fix custom event signals
2021-01-24 14:24:55 +03:00
kd-11
7de0ff337b
vk: Polishing and cleanup
...
Some spec violations fixes
Make the option dynamic
2021-01-24 14:24:55 +03:00
kd-11
e1c0a917fa
vk/dma: Modify default page size to 64k
2021-01-24 14:24:55 +03:00
kd-11
58d367d704
vk: Add host-imported DMA buffers
2021-01-24 14:24:55 +03:00
kd-11
a1ab6c28c1
vk/rsx: Fix some more bugs
2021-01-24 14:24:55 +03:00
kd-11
59e46f09b7
vk/dma: Disable memory inheritance
...
- It is not possible to emulate passthrough memory cleanly, and we don't need to
A stupid race condition appears when trying to synchronize DMA blocks with memory inheritance.
Since the usage pattern is to acquire a range and then load or write+flush, this new data is going to be..
overwritten by the commandbuffer execution sequence later. Acquiring a scratch buffer to hold CPU content during the transition is not worth the effort..
as the data will be destroyed anyway during the transfer process immediately afterwards.
Fixes data corruption when moving data around using the emulated DMA passthrough
2021-01-24 14:24:55 +03:00
kd-11
7766076042
rsx/vk: DMA stuff
2021-01-24 14:24:55 +03:00
Eladash
b96864c7e6
rsx: Improve gs frame exit workaround
...
Move to close(), hide before potential hanging at Emu.Stop()
2021-01-23 12:45:53 +03:00
Eladash
79513f06a4
rsx/gui: Delay game window pop-up until first frame
2021-01-23 12:45:53 +03:00
kd-11
eb086b0e3f
rsx: Add support shadow1D and shadowCube
2021-01-21 10:24:49 +03:00
kd-11
b6b9085773
rsx: Use unsigned variables to avoid sign problems when calculating stipple bits
2021-01-21 10:24:49 +03:00
Nekotekina
241989c5fa
Fix new warnings
...
Added CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0+ enums.
Added CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_NOTIFY0+ enums.
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-20 12:27:37 +03:00
Eladash
dbecf0fa50
Introducing RSX debugger entry (main debugger)
2021-01-19 22:55:12 +03:00
Nekotekina
8a2a76da1e
texture_cache: fix some warnings in AUDIT
2021-01-18 13:49:59 +03:00
Nekotekina
0af452720e
RSX: Fix possible bug in memory streaming utils
2021-01-12 15:06:31 +03:00
Nekotekina
db8e6fe7a7
Enable -Wunused-variable
2021-01-12 14:34:14 +03:00
Nekotekina
631d7d0ce7
Enable -Wunknown-pragmas
2021-01-12 13:01:17 +03:00
Megamouse
52deff06ba
Random stuff ( #9589 )
...
* minor coding style adjustment
* Qt: simplify osk dialog buttons
* replace std::find_if with convenience functions
* RSX: use sv in swizzle comparison
idk, I'll remove this if it was intentional.
* overlays/osk: rename enter to return
This one confused me and make me look for a bug that caused the "enter" key to be disabled, while it was actually the return key (obviously xD).
2021-01-12 12:59:50 +03:00
Megamouse
838cbe1840
tiny include fix
2021-01-11 13:04:46 +03:00
Eladash
07c925223b
rsx: Fix index array offset bits
2021-01-10 18:40:02 +03:00
kd-11
c2cbc62be6
vk: Refactor some uber-headers
...
- VKHelpers was the rug everything was swept under for a long time.
This commit essentially deprecates its usage across most of the backend.
2021-01-10 12:04:31 +03:00
Nekotekina
9d74d42f2a
Fix compilation for gcc-11
...
In response to #9557
2021-01-09 14:38:01 +03:00
Nekotekina
9ba8f4795c
Remove redundant #pragma once
2021-01-06 23:33:37 +03:00
Megamouse
11db3151ae
VK refactoring Part 2 ( #9542 )
2021-01-05 10:49:03 +03:00
matoro
187216096d
Build: Add include for building on certain configs
2021-01-04 10:04:51 +03:00
kd-11
3f9b699eef
rsx: Fix ambiguous call to min(float16_t, float)
2021-01-04 02:28:24 +03:00
Eladash
0e278d2299
rsx: Make FP shader cache load lock-free
2021-01-03 01:47:07 +03:00
Eladash
21d725daa5
rsx: Fix shader cache of 2 or less pipelines
2021-01-03 01:47:07 +03:00
Eladash
247e90b3d0
rsx: Shaders cache loading and saving bugfixes
...
* Fixed crash whenever files are missing from the cache.
* Fixed crash whenever files are empty.
* Fixed crash whenever file creation/overwrite of cache files failed. (handled by fs::write_file)
* Fixed crash whenever there are any subdirectories inside the pipelines cache directories.
* Overwrite invalid shader cache files if encountered such.
* Optimizations have been added.
2021-01-03 01:47:07 +03:00
Megamouse
7262f3d0b7
VK: make static chip_family_tables const
2020-12-31 22:57:17 +03:00
Megamouse
6f80fd0063
VK: move static chip_family_tables to cpp
2020-12-31 22:57:17 +03:00
Megamouse
7a51b7a019
VK: move helpers to vkutils
2020-12-31 22:57:17 +03:00
Megamouse
d9eb31000d
VK: refactoring part 1
2020-12-31 22:57:17 +03:00
Eladash
7fc26b1fab
rsx: Implement Texture LOD Bias addend setting
2020-12-30 15:37:21 +03:00
Eladash
c0e121abef
rsx: Fix RSXTexture.h spacing
2020-12-30 15:37:21 +03:00
Eladash
7db13fdeff
rsx: Move Anisotropic Filter Override to RSX state
2020-12-30 15:37:21 +03:00
kd-11
18c120ab9f
rsx: Revert an accidental deletion
2020-12-28 21:49:11 +03:00
kd-11
f87dd91b52
rsx: Allow attempted fetch of non-existent surface
2020-12-28 21:49:11 +03:00
Eladash
66581d115b
vm: Fix access violations on super memory, support super memory in vm::get_addr
2020-12-26 17:56:49 +03:00
kd-11
a96b4412d3
rsx: Do not rely on program env state, instead, always use program ucode analysis results when doing codegen
...
- Some things can be present in program env but not ucode state
e.g A texture can be active and bound in a redirected manner but not actually be used in ucode
In such a case, only the ucode analysis or decompilation can decide whether to inject decoding routines
2020-12-25 02:39:08 +03:00
kd-11
bee76fc8d1
rsx: Refactor shader codegen and fix shadow sampling on depth-float
2020-12-25 02:39:08 +03:00
kd-11
d9cb1a6319
vk: Fix more spec violations
2020-12-25 02:39:08 +03:00
Nekotekina
a8e0d261b7
types.hpp: more cleanup
...
Also fix compilation.
2020-12-22 19:08:09 +03:00
Nekotekina
b7bf316c1a
Don't randomly include "stdafx.h"
...
It's file for precompiled headers.
Include what is used, don't rely on transitive includes.
2020-12-22 14:32:30 +03:00
Nekotekina
41ee792f95
MSVC: remove MemLeak build support
...
There are better memleak detection tools.
1) Requires to guard placement new and external libs
2) Doesn't work thoroughly
2020-12-22 14:32:30 +03:00
Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
kd-11
e449111c33
vk: Fixup for renderpass issues
2020-12-19 12:58:44 +03:00
Megamouse
066e53da55
minor cleanup
2020-12-19 08:33:53 +01:00
Nekotekina
eec11bfba9
Move align helpers to util/asm.hpp
...
Also add some files:
GLTextureCache.cpp
VKTextureCache.cpp
2020-12-18 18:07:42 +03:00
Nekotekina
db9b7db531
Cleanup and move sysinfo.h -> util/sysinfo.hpp
2020-12-18 12:55:54 +03:00
Nekotekina
05099e2ae1
Replace uint64_t with u64
2020-12-18 12:23:53 +03:00
Nekotekina
77352a2a86
Replace uint32_t with u32
2020-12-18 12:23:53 +03:00
Nekotekina
ae633292c0
Replace int32_t with s32
2020-12-18 12:23:53 +03:00
Nekotekina
d6042cf891
Replace uint16_t with u16
2020-12-18 12:23:53 +03:00
Nekotekina
534c63bf57
Replace uint8_t with u8
2020-12-18 12:23:53 +03:00
Nekotekina
fb29933d3d
Add usz alias for std::size_t
2020-12-18 12:23:53 +03:00
Nekotekina
4cfa9b11f3
Move busy_wait() to asm.hpp
2020-12-18 12:23:53 +03:00
kd-11
fb47d1f788
vk: Register ampere GPU PCI IDs
2020-12-17 19:56:48 +03:00
kd-11
235db57f0e
rsx: Do not reset vertex program texture mask when updating ucode analysis
...
- Fixes incorrect texture type detection in some games after program env/ucode separation
2020-12-17 09:36:20 +03:00
kd-11
cfbde005fb
vk: Force ampere GPUs to use the slower but spec-compliant depth-color resize route
...
- TODO: More investigation and optimizations
2020-12-17 09:36:20 +03:00
kd-11
0a865bd9dc
vk: Workaround for validation layers bug
2020-12-17 09:36:20 +03:00
Megamouse
0bfec59af8
Fix stop during shader compilation
2020-12-16 11:01:51 +03:00
kd-11
035a76f26d
Fix build
2020-12-16 10:10:06 +03:00
kd-11
42f4e831a2
vk: Clean up some leftovers from shader decompiler rewrites
2020-12-16 10:10:06 +03:00
kd-11
d3686dbb75
rsx: Add some texture upload statistics to the texture cache
2020-12-16 10:10:06 +03:00
kd-11
fb1c790350
rsx: Make debug overlay dynamic
2020-12-16 10:10:06 +03:00
kd-11
0ef5743261
rsx: Fix sampler descriptor updates for framebuffer resources
...
- Each desc manages its own lifetime now instead of relying on global timestamp check
- Fixes situation where same object remains active without update for long
2020-12-16 10:10:06 +03:00
Nekotekina
e321765c54
Split BEType.h to util/v128.hpp and util/to_endian.hpp
2020-12-13 16:34:45 +03:00
kd-11
f83c2f0b6b
rsx: Restructure and simplify some header include chains
2020-12-13 15:38:35 +03:00
kd-11
d775c8dc73
rsx: Move shader analysis+prefetch to the end of the draw call
2020-12-13 15:38:35 +03:00
Nekotekina
a6a5292cd7
Use uptr (std::uintptr_t alias)
2020-12-12 16:29:55 +03:00
Nekotekina
b59f142d4e
Move types.h to util/types.hpp
2020-12-12 15:12:01 +03:00
Nekotekina
666a18f5e5
Remove ceil2/floor2 from types.h
2020-12-12 15:12:01 +03:00
Nekotekina
b09b7c1184
Remove any_pod<> from types.h
...
Add simplified any32 to GCM.h
Add simplified cmd64 to PPUThread.h
2020-12-12 13:12:39 +03:00
Nekotekina
6e05dcadb6
Reduce std::numeric_limits dependency
...
Please, stop pretending...
You need these templates for generic code.
In other words, in another templates.
Stop increasing compilation time for no reason.
2020-12-12 12:35:18 +03:00
Nekotekina
bc7acf9f7a
RSX: remove overly long integer sequence (opcode_list)
...
Convert to constexpr array and move to gcm_printing.cpp
2020-12-12 11:38:35 +03:00
Nekotekina
7a015b6fc0
VKMemAlloc.cpp: use shared_mutex in vk_mem_alloc.h
...
Because it allows to use custom implementation.
Also fix compilation.
2020-12-11 19:05:11 +03:00
Nekotekina
aa3aef4beb
std::chrono cleanup: always use steady_clock
2020-12-11 19:01:56 +03:00
Nekotekina
72284b4530
Use atomic_t<> in VKMemAlloc
2020-12-10 18:58:11 +03:00
Nekotekina
b382d3b3e9
Remove ASSUME macro
...
It's dangerous and sometimes bluntly misused feature.
Its optimization potential is near-zero.
2020-12-10 14:08:02 +03:00
Nekotekina
36c8654fb8
Remove HERE macro
...
Some cleanup.
Add location to some functions.
2020-12-10 12:30:22 +03:00
kd-11
d25c401aec
vk: Validate image creation inputs
...
- Should avoid things like res scaling breaking when very large scaling is in use
2020-12-09 21:30:08 +03:00
kd-11
aac874a842
vk: Add even more D32_SFLOAT missing locations
2020-12-09 21:30:08 +03:00
Nekotekina
5d934c8759
Improve narrow() and size32() with src_loc detection
2020-12-09 16:26:20 +03:00
Nekotekina
e055d16b2c
Replace verify() with ensure() with auto src location.
...
Expression ensure(x) returns x.
Using comma operator removed.
2020-12-09 15:43:38 +03:00
kd-11
f8d2830ac7
vk: Properly register D32_SFLOAT as a depth-stencil format ( #9396 )
2020-12-09 02:06:27 +00:00
Eladash
2602be426f
Allow emulation to work without firmware ( #9367 )
...
* Allow emulation to work without firmware
* Fix HLE prx path detection.
* Fix manual list loading bugs.
* Fix HLE gcm
* GUI: Fix fonts search
* GUI: Hardcode sprx list
Do not depend on /dev_flash/sys/external/ contents.
2020-12-07 20:10:34 +03:00
Nekotekina
24e4e329ed
atomic.hpp: add atomic_t<bool> specialization
...
May be required in future, plus adds/hides some methods.
2020-12-07 17:13:12 +03:00
Nekotekina
eb66302907
atomic.hpp: replace std::atomic with atomic_t
...
Dual dependency is nothing good.
2020-12-07 17:13:12 +03:00
Nekotekina
b16cc618b5
atomic.hpp: add some features and optimizations
...
Add atomic_t<>::observe() (relaxed load)
Add atomic_fence_XXX() (barrier functions)
Get rid of MFENCE instruction, replace with no-op LOCK OR on stack.
Remove <atomic> dependence from stdafx.h and relevant headers.
2020-12-07 17:13:12 +03:00
kd-11
3a0b3a85a5
rsx: Separate program environment state from program ucode state
...
- Allows for conservative texture uploads
- Allows to update a program object without running full ucode analysis for no reason
2020-12-07 00:45:27 +03:00
RipleyTom
af8c661a64
Remove BOM markers
2020-12-06 15:30:12 +03:00
kd-11
2aa5c437e8
rsx: Fix upscaled image reconstruction
...
- Base the upscaling on the real source and not the "attr" parameter.
- In case of reconstruction, the source is much larger than the subslice in "attr"
2020-11-30 01:20:17 +03:00
kd-11
67f48ce21c
rsx: Fix uncaught depth-func changes
...
- Depth func of always or never usually disqualifies depth testing.
Invalidate contested surfaces when depth func is changed.
2020-11-30 00:46:36 +03:00
kd-11
845a7d9968
Fix RSX replay thread lifecycle
2020-11-29 22:39:52 +03:00
kd-11
8228a4adcd
gl: Disable depth test before rendering text to the backbuffer which does have a Z buffer
2020-11-24 11:10:43 +03:00
kd-11
f1c65dcefc
vk: Improve support for RDNA
...
- Add support for RDNA2
- Add RDNA MSAA workaround
2020-11-23 19:20:00 +03:00
kd-11
cab4c78b7b
rsx: Some shader compiler threads tuning
...
- Allow more threads for wide CPUs
- Simplify 'auto' selection a bit
2020-11-21 20:43:15 +03:00
kd-11
7553429130
gl: Thread shader source compilation dispatch
...
- glCompileShader is in itself much slower than anticipated
2020-11-21 20:43:15 +03:00
kd-11
3ddfa288cf
rsx: Use multithreaded shader compiler backend
2020-11-21 20:43:15 +03:00
Nekotekina
71f1021648
Fix thread pool entry point and get_cycles()
...
Fix possible race between thread handle availability.
Don't treat zero thread as invalid one.
Now entry point is full is assembly.
Attempt to fix #9282
Also fix some TLS.
2020-11-21 17:18:42 +03:00
kd-11
0e7a705254
rsx: Resolution scaling overhaul
...
- Enforce square pixels instead of per-axis scaling
2020-11-18 09:29:34 +03:00
Eladash
fefab50e06
Fix vm::range_lock, imporve vm::check_addr
2020-11-11 10:30:09 +03:00
Nekotekina
21ec32b465
vm: implement g_shmem for range locks
...
Renamed from g_shareable. Contains pointers instead of bits.
Used in range locks to prevent any "collision" between memory.
2020-11-08 16:43:15 +03:00
Nekotekina
1c99a2e7fb
vm: add map_self() method to utils::shm
...
Add complementary unmap_self() method.
Move VirtualMemory to util/vm.hpp
Minor associated include cleanup.
Move asm.h to util/asm.hpp
2020-11-08 16:43:15 +03:00
Megamouse
a3eb5c2d63
More Header cleanup
2020-11-06 22:14:05 +01:00
Nekotekina
ba5ed5f380
Fix vm::lock_range wrong check
...
Minor header refactoring.
2020-11-04 14:59:26 +03:00
Megamouse
027eba2b59
Add Quadro to fast version of VK get_driver_vendor
2020-11-04 12:13:56 +01:00
Megamouse
91b8e7504e
Set some things to log level always
2020-11-04 12:13:56 +01:00
Megamouse
36149fd986
overlays: kinda fix performance graph margins ( #9181 )
2020-10-31 16:32:31 +00:00
Megamouse
2cee26c3e7
Cleanup some includes
2020-10-31 11:53:46 +01:00
Megamouse
4984e87776
implement interception for cellKb and cellMouse
...
this needs to be tested
2020-10-31 02:11:27 +03:00
Eladash
b5014d56ab
rsx: Fix transform contants load
2020-10-31 02:08:03 +03:00
Nekotekina
13c564f2af
sys_memory: add cpu_flag::wait
2020-10-30 18:09:30 +03:00
Nekotekina
95aeebe4b5
sys_rsx: add cpu_flag::wait
2020-10-30 18:00:25 +03:00
Nekotekina
605d57c541
sys_event: cleanup (replace vm::temporary_unlock)
...
Also made minor changes in sys_rsx.cpp.
Removed unused exception std headers.
2020-10-30 17:49:07 +03:00
Nekotekina
f972fa26a4
Derive RSX Replay thread from cpu_thread
...
Its id is set to 0, so fix some id_type() usages.
2020-10-30 17:36:11 +03:00
Nekotekina
13de773486
Remove some vm::reservation_lock instances
2020-10-27 17:56:19 +03:00
kd-11
b32eecb5a7
rsx: Driver compatibility improvements ( #9131 )
...
* rsx: Refactor vertex clip emit to avoid using f64 unnecessarily
- Fixes driver crash on intel
* vk: Add NVIDIA driver version check
- Warn if user has outdated drivers with known problems
2020-10-27 13:22:15 +03:00
kd-11
18ca3ed449
rsx: Block-level reservation access
2020-10-25 20:21:04 +03:00
Nekotekina
306593a0c5
Revert "atomic.cpp: fixup for WaitOnAddress path"
...
This reverts commit 3b8bce1bed .
2020-10-21 09:54:22 +03:00
Nekotekina
3b8bce1bed
atomic.cpp: fixup for WaitOnAddress path
...
Also fix wait quantum.
2020-10-21 08:18:27 +03:00
kd-11
a90801e2aa
vk: Add VK_FORMAT_D32_SFLOAT to format conversion table
...
- This format is required to emulate RSX_FORMAT_CLASS_D16_FLOAT
2020-10-18 19:30:40 +03:00
Nekotekina
492ed27495
RSX: fix rsx::nv406e::semaphore_release partially
...
Properly release reservation (non-TSX path).
At least update and notify reservation (TSX).
2020-10-15 20:58:59 +03:00
Nekotekina
dcff8c2637
Fix remaining vm::reservation_lock usages (for now)
...
Optimization can be restored later.
2020-10-13 12:04:59 +03:00
Nekotekina
346a1d4433
vm: rewrite reservation bits
...
Implement classic unique/shared locking concept.
Implement vm::reservation_light_op.
2020-10-10 13:58:48 +03:00
kd-11
bca3a3f4ed
vk: Open CB before doing frame cleanup so that callbacks work ( #9041 )
2020-10-10 10:02:55 +01:00
kd-11
d5f7e7b179
vk: Reimplement GPU query management
2020-10-06 12:02:53 +03:00
Eladash
f4ca6f02a1
PPU: Implement support for 128-byte reservations coherency
2020-09-28 22:34:42 +03:00
kd-11
04ff7913b4
rsx/codegen: Workaround for borked hardware
...
- Bitwise or does not evaluate correctly for some hardware.
Substitute with subtraction instead.
2020-09-28 22:18:36 +03:00
kd-11
9baef8c705
rsx: Emit simpler fragment program code
...
- Optimize clamp16
- Use bfe instead of shift-and
2020-09-27 18:56:04 +03:00
kd-11
a14a358b73
rsx: Optimize vertex decoder to generate simpler code
...
- Significantly improves compilation speed by simplifying most of the code and doing something similar to LICM.
* Actual decoding is now vectorized and performed in one step rather than in a loop.
* Switches inside loops are removed and replaced with simple comparison. Generates much nicer (and smaller) GCN bytecode.
2020-09-27 18:56:04 +03:00
kd-11
259844f4f3
vk: Disable spirv optimizer
...
- I've not found it to be very useful and it just breaks good code right now.
TODO: Re-enable when things improve.
2020-09-27 18:56:04 +03:00
kd-11
9ea478008c
vk: Properly initialize float64 support for SPIRV
2020-09-24 01:30:21 +03:00
Morgan Creekmore
4fe2951509
Fixed formatting
2020-09-23 20:27:30 +03:00
Morgan Creekmore
ff8a94714f
Add additional NV4097 methods to gcm_printing
2020-09-23 20:27:30 +03:00
Morgan Creekmore
b45d6fee2d
Fix methods_name indentation
2020-09-23 20:27:30 +03:00
Morgan Creekmore
f44e696edf
Added missing NV methods for gcm_printing
2020-09-23 20:27:30 +03:00
kd-11
a50ea09053
rsx: Properly pass format_class information during RTV/DSV resource barrier
...
- Also takes the opportunity to remove repeating code in a minor refactor.
2020-09-22 12:19:54 +03:00
kd-11
d012abd924
vk: Improve image transfer and scaling
...
- Handle typeless src and dst with aliased typeless format
- Optimize typeless transfers by only dealing with affected texels.
* Eliminates redundant dst->typeless transfer of full image (very expensive)
* Eliminates full src->typeless transfer of full image and replaces with only affected region
* Requires significantly smaller output buffers, saving on VRAM cost
2020-09-22 12:19:54 +03:00
kd-11
7ed82c0791
rsx: Always force typeless copy if memory is crossing aspect boundary
2020-09-22 12:19:54 +03:00
kd-11
9db97278f3
rsx: Lower error message to warning
...
- Mismatched texture handling is a TODO that will be handled with texturing rewrites
2020-09-19 01:55:59 +03:00
kd-11
d3898fda57
rsx: Release misconfigured texture memory before attempting reupload
2020-09-19 01:55:59 +03:00
kd-11
7900780cea
vk: Fix nul section crash due to unexpected format (B8)
2020-09-16 20:14:44 +03:00
kd-11
92d65ff3c2
rsx: Add support for mixed data types when sampling shadow coordinates
2020-09-15 17:37:52 +03:00
Megamouse
a2da187615
HLE: localize most - if not all - exposed strings
2020-09-14 18:24:18 +02:00
Megamouse
d0ffbbfc4d
Qt/overlays: use Argument list for translatable strings
...
This is somewhat crippled for now. It only takes a single argument in the callback
2020-09-14 18:24:18 +02:00
Megamouse
460a933267
Qt/overlays: Localize most rsx overlays
2020-09-14 18:24:18 +02:00
kd-11
da6760ed98
vk: Simplify shadow comparison operations for non-integer formats
...
- Just use hardware PCF, it makes everyone's life easier.
2020-09-09 22:11:12 +03:00
kd-11
6380e67af9
rsx: Fix depth clipping
...
- Fix special case where n=f making (f-n) = 0
- Dynamically update depth range by setting dirty bits
- Fix depth bounds when n=f and bounds test is disabled
2020-09-08 15:33:08 +03:00
kd-11
dc465df3bc
rsx: Enable support for extended range in depth buffer
...
- Software clipping emulation is used here as OpenGL does not have explicit clip control.
- Hardware clip control for vulkan to be enabled after this.
2020-09-08 15:33:08 +03:00
kd-11
2e88924cb9
rsx/gl: Refactoring and cleanup
...
- Fix incorrect memory requirement calculation for D32FS8X24_PACK64 data type on GL
- Removes a lot of spaghetti code in GL backend from years of accumulation
- Retires several now-useless methods from RSX util toolbox
2020-09-08 13:53:06 +03:00
kd-11
6d2cb94e3e
gl/vk: Support swizzled data for RCB/RDB
2020-09-07 22:31:57 +03:00
kd-11
85e5b077f7
gl: Overhaul upload and download routines for textures to go through shared image_to_buffer and buffer_to_image routines.
...
- This automatically adds support for depth float textures as well
2020-09-07 18:25:54 +03:00
kd-11
85dd1b4ea9
vk: Fix fconvert job issues
...
- Fix compilation bug caused by typo
- Invert to/from for consistent declarations
- Fix dst_swap when From == 2
2020-09-07 18:25:54 +03:00
kd-11
220e86bbd1
gl: Accelerate D24X8_UINT operations
...
- Adds compute decoding for D24X8_UINT on both download and upload routines
- Adds support for D24X8_UINT operations for typeless copy
2020-09-07 18:25:54 +03:00
Bevan Weiss
baf96b3eb6
RSX: Update manual string creation -> std::string()
...
Replace manual string creation with call to std::string() constructor passing in char*
This appears to drastically reduce the cache impact here
2020-09-05 10:38:32 +03:00
kd-11
3c43d8fe05
rsx: Fix execution barrier insertion
...
- In case of element re-arrangement, the barrier should obey the current insertion pointer
2020-09-04 09:34:13 +03:00
Eladash
73d23eb6e6
SPU: Implement Accurate DMA ( #8822 )
2020-09-02 23:58:29 +02:00
kd-11
a917f55ef8
vk/sdk: Sync with vulkan SDK v148 ( #8814 )
...
- Sync with vulkan SDK 148
- glslang library was split into several smaller libraries
- HLSL is no longer needed
2020-09-01 00:57:38 +03:00
kd-11
af9e217fa4
vk: Improve D16F handling
...
- Adds upload and download routines. Mostly untested, which is why the error message exists
2020-08-30 09:26:37 +03:00
kd-11
e9cdb248a0
glsl: Properly implement shadow filtering when running emulated shadow compare
...
- Previous code was completely borked
2020-08-29 02:03:09 +01:00
kd-11
e8274d5a59
vk: Fix depth format mismatch detection in copy_image
2020-08-29 02:03:09 +01:00
kd-11
d000d648b0
vk: Fix some minor spec violation
...
- Stencil clear pass does not consume an image, do not bind one.
- Add push_barrier to allow push-pop semantics for texture barrier insert.
2020-08-27 12:52:28 +03:00
kd-11
d257ba5156
vk: Add some more diagnostic messages for unoptimized image transfer setups
2020-08-27 12:52:28 +03:00
kd-11
9828d6146b
rsx: Fix format matching when aggregating textures
...
- When copying depth-depth, prefer own format over depth int format
2020-08-27 12:52:28 +03:00
kd-11
9e4bec8cec
vk: Fix some missing render target declarations
2020-08-27 12:52:28 +03:00
kd-11
65ead08880
rsx: Refactor and improve image memory manipulation routines
2020-08-27 12:52:28 +03:00
kd-11
f6c6c04648
vk: Implement transport for D24S8_FLOAT data
2020-08-27 12:52:28 +03:00
kd-11
794378d5e9
rsx: Do not create depth textures as blit engine targets.
2020-08-27 12:52:28 +03:00
kd-11
a5ac5a9861
rsx: Separate uint depth formats from float depth formats
2020-08-27 12:52:28 +03:00
kd-11
faaf28b41d
rsx: Basic support for creating depth float formats
2020-08-27 12:52:28 +03:00
Eladash
853e2b90a3
rsx: Minor rsx::ceil_log2 bugfix
2020-08-15 20:39:21 +03:00
kd-11
fd2607ad52
rsx: Fix XBGR vs XRGB screenshots
2020-08-12 20:19:19 +03:00
kd-11
7e1b24224d
rsx: Support XBGR flip image load from Cell memory
2020-08-12 20:19:19 +03:00
kd-11
56c63170b9
vk: Warn if GPU does not support RGBA8 natively
2020-08-12 20:19:19 +03:00
kd-11
b41349546c
rsx: Proper support for typeless transform of ABGR framebuffers using the RGBA8 format
2020-08-12 20:19:19 +03:00
kd-11
6850533b50
rsx: Unify composite texture creation and management
...
- Some texture accesses require image compositing steps to assemble the requested image from existing subresources.
Handle all the common routines in a unified manner to avoid having one broken path (e.g mipmap gather not supporting bitcast operations)
2020-08-10 13:31:22 +03:00
kd-11
22f5e7a9be
vk: Generate valid image+image_view combinations for placeholder texture descriptors
2020-08-06 20:34:49 +03:00
kd-11
7109fe9889
rsx: Improve swizzled layout detection
...
- Reset swizzle flag to false automatically on section reset.
- Detect render target payload and extract swizzle information from it.
2020-08-05 23:23:38 +03:00
kd-11
bd21930d1a
rsx: Decode swizzled GPU data on CPU readback
...
- Currently this conversion is being done on the CPU to reuse as much code as possible.
The expectation is that this almost never happens, so there is not point in increasing maintenance burden by adding compute paths
2020-08-02 16:14:11 +03:00
kd-11
4df933275b
rsx: Propagate raster type of fbo sourced data throughout the pipeline.
...
- Tracks which kind of raster was done (Z-ordered vs linear) throughout the application.
- This allows to identify if data is in the expected format or not.
2020-08-02 16:14:11 +03:00
Megamouse
f073ff8fe8
overlays: fix minor warning
2020-07-29 13:18:33 +02:00
Bevan Weiss
7898ae6fe6
VK_REMAP enum is signed.. but later case comparison is unsigned
...
another clang directed fix up... might be involved with swizzle..
2020-07-26 15:27:51 +03:00
Ani
74c8a44d84
rsx: Fix cache skipping shaders on load+compile ( #8633 )
...
When on single worker mode (OpenGL or an hypothetical scenario of a
single core PC with Vulkan), load and compile would skip 10% of the
shaders on queue each stage.
Co-authored-by: kd-11 <karokidii@gmail.com>
2020-07-26 08:47:50 +01:00
kd-11
be4b71b805
vk: Fixup for PR #8590
...
- This change was lost during rebase
2020-07-25 14:48:11 +03:00
kd-11
b0c7ca6d1f
vk: Improve video memory manager to attempt recovery in out of memory situations
2020-07-25 14:48:11 +03:00
kd-11
4d8de282f9
vk: Improve typeless texture succession
...
- Ensure incoming texture is large enough that the original one fits inside it to avoid back-and-forth succession.
- Make use of the resource manager to remove the obsolete textures to avoid holding on to the them which "leaks" VRAM.
The memory isn't leaking, it's just wasting space in temporary pool until renderer is closed.
2020-07-25 14:48:11 +03:00
Megamouse
de80a4b6c7
overlays: try to fix unexpected font crop
2020-07-25 10:21:52 +03:00
Eladash
268bcd1c7b
rsx: Fix false desync events
2020-07-16 19:26:10 +02:00
kd-11
42a9ac9e6c
rsx: Brute-force removal of superseded surfaces
2020-07-16 19:11:26 +03:00
kd-11
182b20c33d
rsx: Fix draw count append when draw ranges are out of order
...
- It is common for draw counts to truncate at 256 even when it makes no sense to do so.
- e.g 256 is not a multiple of 3 so triangles will glitch out
2020-07-14 16:04:44 +03:00
kd-11
ab3d36f0f3
rsx: Fix depth bounds test
...
- Allow depth bounds test to access the Z buffer even when depth test is disabled.
2020-07-10 15:59:15 +03:00
kd-11
632af8d723
rsx: Support partial texture descriptors
...
- It is safe to declare w > pitch and it works as long as sampling inside the legal 2D area is obeyed.
2020-07-10 15:26:07 +03:00
kd-11
987ede2e6c
vk: Inject memory barrier upon conclusion of a framebuffer feedback loop
...
- Do not write to the texture until previous draw call is completed using it.
- This is usually not much of a problem until blending operations come into play.
2020-07-08 19:23:29 +03:00
kd-11
05dc6ad610
gl: Silence warnings
2020-07-05 16:58:44 +03:00
kd-11
3fe8499956
rsx: Improve ZCULL queued requests finalization
...
- Unifies the code
- Allows conditionals to be evaluated with a forwarder present
2020-07-05 16:58:44 +03:00
kd-11
acf51f0ead
rsx: Fix transfer descriptors for partially overlapping slices in head
...
- Height must be corrected to skip the piece that exists before the current slice
2020-07-03 14:29:54 +03:00
kd-11
c9c0d7361d
rsx: Implement fast ZCULL barrier when query object is already known
2020-07-02 20:11:57 +03:00
kd-11
d7ffc8b4ac
rsx: Fix leaking ZCULL queries after a barrier
...
- Multiple queries can be queued up, process them all before completing the barrier
2020-07-02 20:11:57 +03:00
Bird Egop
eea12bad07
Implement Caret upwards and downwards move in overlay_edit_text ( #8342 )
...
* Implement caret upwards and downwards move in overlay_edit_text
* Optimize caret up and down movement
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-07-02 09:06:37 +02:00
kd-11
bd14429f20
vk: Disable primitive restart for old GCN cards
...
- Also adds more Navi 14 chips to detection table
2020-06-30 15:00:07 +03:00
kd-11
5e29bdbe22
vk: Add more GPUs to nvidia chip table
...
- Registers more TU116 and TU117 variants
- Registers GA100
2020-06-28 22:54:58 +03:00
kd-11
b437794e92
vk: Improve nvidia speedhack for non-turing cards
...
- Inverts the chip family check to skip any unidentified GPUs altogether
2020-06-28 22:54:58 +03:00
kd-11
5ea6535fd5
rsx: Force flushing of NaN/INF to zero
...
- This option was always enabled for NVIDIA cards, but it seems some games would benefit from the option on other GPUs as well.
- TODO: Hwtest to verify correct behavior and plan how to safely implement in hw
2020-06-26 09:24:15 +03:00
kd-11
628cb1c779
rsx: Validate blend factors according to hardware testing
2020-06-23 12:15:02 +03:00
kd-11
a14e0a0104
rsx: Validate stencil op to match realhw behavior
2020-06-23 12:15:02 +03:00
kd-11
f3637cdfdb
rsx: Fix surface options hint mechanism
...
- Silly typo
2020-06-23 12:15:02 +03:00
kd-11
c6a9a5d5d7
rsx/fixup: Fix color clear logic
...
- Enable fast clears on ABGR formats in vulkan
- Fix disabling color clears for unsupported formats in GL
2020-06-23 12:15:02 +03:00
kd-11
7f917c8ba5
rsx: Fix ABGR decoding for colormask and clear color
...
- The bytes in these values are based on the format according to hw tests
- G8B8 is unaffected as the first two bytes are already G8B8 for A8R8G8B8 standard layout (BGRA)
- A8B8G8R8 and its derivatives have words 0 and 2 exchanged.
2020-06-22 20:12:41 +03:00
kd-11
e992cbe01b
rsx: Support DRGB8 sampling of render targets
2020-06-22 20:12:41 +03:00
kd-11
2086e7f2e8
rsx: Account for subpixel precision when converting DST coordinates to
...
SRC coordinates
- When extracting a 1x1 texture from another texture of a different
format, width conversion can result in a dimension of 0 if the
extracted texel is not a full texel in SRC
2020-06-17 22:18:47 +03:00
kd-11
c764925b4d
rsx: Properly handle conversion of G8B8 and related formats
...
- These formats are 16-bit packed, not separate 8-bit channels. Conversion requires byteswap for them.
2020-06-16 22:36:38 +03:00
kd-11
83d818d96f
rsx: Improve mipmap gathering
...
- Account for source offsets when grabbing subregions
- Scale input accordingly when sourcing from fbo in all paths
2020-06-16 19:12:03 +03:00
sampletext32
0ad4e91001
Avoid string reallocation in swizzle CgBinaryProgram
2020-06-15 22:26:49 +03:00
kd-11
8d8fb4a2e4
rsx: Remove ARGB->D24S8 conversion shader which has been deprecated for years since compute capabilities were added to the emulator
2020-06-15 14:18:12 +03:00
kd-11
2e737ad483
rsx: Fix surface option invalidation
...
- Depth buffers can be in special "read" state when writes are disabled. Account for this.
2020-06-14 23:30:03 +03:00
Eladash
e2248332ae
rsx: Make "Disable ZCull Occlusion" setting dynamic
2020-06-14 18:45:46 +01:00
kd-11
3663a8ab4d
rsx: Improve surface options invalidation
2020-06-14 20:13:12 +03:00
Eladash
bd6fdf3f2d
rsx: Optimize rsx::rsx_iomap_table construction
2020-06-12 22:40:58 +03:00
kd-11
e1183f6919
gl: Fix depth buffer byteswap hint
...
- uint24_8 is not actually swapped, it is decoded in a special way
2020-06-12 20:49:47 +03:00
kd-11
f4ec28d932
rsx: Merge instruction expand flag with the other sign expand flags
...
- Avoids double expansion when both the exp_tex flag is set AND the texture also is sampled as signed
- Should fix missing eyeballs in Mass Effect 1 with the previous sign expansion fix
2020-06-12 20:19:20 +03:00
kd-11
ce587f43a0
rsx: Implement signed normalized texture formats
...
- Already partially supported via EXP option in the shader opcode, but format decoding was disabled.
- Noticed in some UE3 games which use _SNORM variants on PC but _UNORM on rpcs3
2020-06-12 20:19:20 +03:00
kd-11
ebbf329b6a
gl: Improve async compiler synchronization with initialization
...
- On multithreaded mesa, the program initialization routine was not
being flushed correctly. Set up synchronization fence after initialization
is complete.
2020-06-07 12:54:34 +03:00
kd-11
87cc937d4e
rsx/fp: Separate SRC precision modifiers
...
- SRC0, SRC1 and SRC2 have different bits for precision modifiers all stored inside SRC1
- This explains the strange observed behavior of the MAD instruction which has 3 inputs
2020-06-07 12:07:27 +03:00
kd-11
d47d597b34
vk: Make the depth-convert pass multisample aware
2020-06-05 17:19:24 +03:00
kd-11
69c2150fbd
vk: Fix query reset when renderpass is active
...
- Performs delayed query reset on-demand
2020-06-05 17:19:24 +03:00
kd-11
650152e05f
rsx: Fix fragment state updates
...
- Fix copypasta for POLYGON_STIPPLE_PATTERN vs SET_POLYGON_STIPPLE method binding
- Use proper enums for ROP_control bits to avoid confusion
2020-06-03 22:05:33 +03:00
kd-11
73fe9b51de
rsx/fp: Ignore self-referencing register writes.
...
- Sometimes, usually with shaders that do pack/unpack operations, there is a write-to-self operation.
For example r0.xy = r0.xy
Obviously no new data was introduced into "r0" by this, so we should not mark the register as having new data.
- TODO: Investigate on realhw if self-reference is needed to "cast" the overlapping half registers to their full register counterparts.
2020-06-03 09:45:02 +03:00
kd-11
26b2e4253d
rsx: Properly account for memory sizes of reused surfaces
2020-06-02 21:37:57 +03:00
kd-11
b353bf6c56
rsx: Improve surface cache resource management
...
- Do not allocate too many objects. This is a problem in games using dynamic memory allocators that can make it rare for a surface to fall on the same address twice, keeping zombie RTVs and DSVs alive much longer than needed.
- Current limit used is 256M of virtual VRAM which is impossible on retail PS3
2020-06-01 22:24:27 +03:00
kd-11
c9a978a03e
Typo fix
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2020-05-30 14:47:10 +03:00
kd-11
59d44cd1cc
gl: Fix shader logging
2020-05-30 14:47:10 +03:00
kd-11
542a6aed51
rsx: Add stippled rendering support to interpreters
2020-05-30 14:47:10 +03:00
kd-11
1677618c75
rsx: Implement stippled rendering
2020-05-30 14:47:10 +03:00
Eladash
3d20ce70f5
rsx: Fix possible case NULL zcull_ctrl in on_exit()
2020-05-28 11:56:02 +02:00
xddxd
f56b362769
rsx: Copypasta fix ( #8289 )
2020-05-25 20:07:11 +01:00
kd-11
224a0e4b1a
rsx: Fix data format remapping
...
- Includes missing 0xEE and 0x44 variants of the 2-component data format remapper
2020-05-24 13:51:19 +03:00
kd-11
bd41a108d8
nv3089: Account for subpixel addressing
...
- Those strange offsets noted in some games seem to match to subpixel addressing.
For example, when scaling down by a factor of 4, a pixel offset of 2 will end up inside pixel 0 of the output
2020-05-24 11:31:37 +03:00
kd-11
7080305d82
vk: Implement masked stencil buffer clears
...
- Partial stencil buffer clears were not implemented. This is for example where a game can choose to clear only some bits from the stencil buffer.
- Vulkan does not support masked stencil clears natively, it has to be implemented as a graphics operation.
- Also refactors vulkan overlay passes to use global resource system instead of forcing the render backend to own all of them and manage lifetimes.
2020-05-21 19:27:23 +03:00
Nekotekina
72fedccaba
rsx_utils.h: fix signed/unsigned comparison
2020-05-18 00:51:57 +03:00
Ani
581176fb1a
gl: Restrict insert_vertex_input_fetch workaround to Intel proprietary
...
It works fine on Mesa iris
Fixes detection of Mesa as recent Mesa does not have "x.org" on vendor string, allowing vendor_MESA to become true instead of vendor_INTEL on Mesa Intel
2020-05-17 17:49:14 +03:00
Eladash
377e2ce3e8
rsx: Write 4-byte long data to all semaphores ( #8246 )
...
* rsx: Write 4-byte long data to all semaphores
2020-05-17 17:48:35 +03:00
kd-11
37df3c6f96
rsx/fp: Fix precision clamping on MAD instruction
2020-05-17 09:11:26 +03:00
AniLeo
a8bca8b2ed
gl: Only log shaders if g_cfg.video.log_programs is enabled
2020-05-16 16:16:17 +01:00
AniLeo
b0d3c4d75e
gl: Refactor shader type usage
...
Use Common/GLSLTypes.h program_domain instead of duplicated own internal
type
2020-05-16 16:16:17 +01:00
AniLeo
3db2f23e02
gl: Refactor shader compilation
2020-05-16 16:16:17 +01:00
Ani
661636efef
gl: Check for EXT_depth_bounds_test
...
Avoid glEnable/glDisable GL_DEPTH_BOUNDS_TEST_EXT flood that returns
GL_INVALID_ENUM if the feature isn't supported
2020-05-16 14:50:05 +01:00
AniLeo
99f5145aab
glsl: Avoid implicit int->uint conversions
...
Silences debug output regarding implicit int -> uint conversions
2020-05-16 11:45:59 +01:00
Eladash
8a0425570c
rsx: Fix data written to RSX semaphores and the initial data of them ( #8235 )
2020-05-16 09:55:56 +01:00
AniLeo
eecb22e749
gl: Remove older debug code
...
KHR_DEBUG path makes this obsolete, usage of this older path has been
removed a long time ago
2020-05-16 08:29:00 +01:00
AniLeo
3ad12cf5f8
gl: Avoid issuing glDelete calls with m_id == GL_NONE
...
Applies GL_NONE macro usage where it makes sense
2020-05-16 08:29:00 +01:00
AniLeo
308cdfac35
gl: Rewrite Debug Output
...
Remove Windows restriction, enable Debug Output for every supported OS
Filter our severity by Khronos severity
Handle and log source and type enums
2020-05-16 08:29:00 +01:00
Nekotekina
7824419bbf
Remove std::rotr usage for now
...
It seems to be missing on some std implementations.
2020-05-14 21:42:44 +03:00
Mrlinkwii
c22d778143
Spelling fix in texture_cache.h ( #8219 )
...
heurestic_end -> heuristic_end
2020-05-14 21:42:21 +03:00
kd-11
310f367fb1
rsx: Improve blit engine memory validation ( #8215 )
...
- In blit engine logic there is a tendancy to over-allocate so as to avoid having to sticth together textures later
- Sometimes this can lead to out of bounds access and crash applications, so memory must be validated
2020-05-14 12:57:58 +01:00
kd-11
cc723ed45c
vk: Properly fix dynamic state descriptors
2020-05-13 22:20:43 +03:00
kd-11
ed82288c1b
rsx/fp: Support more types of texture access
...
- Allows more instructions to correctly decode depth textures
2020-05-13 22:20:43 +03:00
kd-11
118bfbbe98
rsx: Rewrite data texture remap expansion
...
- 16-bit channel formats have special 0x4|0xE encoding for only 2 channels, not 4
- float textures do not take any remapping and crash if you try it.
Depth float textures work fine though.
2020-05-13 14:33:22 +03:00
JohnHolmesII
69ea573b0d
vk: Remove more deprecated VK_DYNAMIC_STATE_RANGE_SIZE usage ( #8206 )
2020-05-13 02:52:01 +01:00
kd-11
dd9397473a
vk: Remove deprecated enum VK_DYNAMIC_STATE_RANGE_SIZE ( #8202 )
2020-05-12 22:36:55 +01:00
kd-11
b6e8560532
rsx/fp: Fix PK2/UP2 instruction
...
- These variants take unsigned scalar inputs, not signed.
- Fixes ARGB8->X16Y16 in SR: Gat out of Hell
2020-05-11 09:37:00 +01:00
kd-11
79e2a87bc5
rsx: Fix NOP shader passing
...
- NOP shaders are used to stub rendering when a pass is supposed to be disabled
2020-05-10 21:54:34 +03:00
kd-11
14969cd8d0
rsx: Disable SCA writes to output register if vec result flag is set.
...
- Noticed when debugging X-men origins: wolverine which has a bogus SCA op whilst writing vector to output
- It makes no sense for both SCA and VEC to both write to the same register in the same instruction as memory ordering becomes an issue
2020-05-08 14:35:07 +03:00
kd-11
79c54aeba9
rsx: Move analyser dump to its own config option
2020-05-08 14:35:07 +03:00
kd-11
a1b6415c5a
rsx: Fix alpha ref
...
- The alpha ref register is compared directly to the ROP output register in realhw
- alpha ref content must match bit-width of ROP register, which means fp16 values are possible
2020-05-08 00:02:47 +03:00
kd-11
a3f25bc7c7
rsx/interpreter: Fix DIVSQ instruction
2020-05-05 13:18:03 +03:00
kd-11
a0f63a31e3
vk: Enable optimization passes for generated SPIRV
2020-05-05 13:18:03 +03:00
kd-11
4f7c020e63
glsl: Improve VGPR usage
...
- VGPR usage lowered from 159 -> 127 for texturing. Occupancy doubled from 1 to 2
- Eliminate most temporary registers
2020-05-05 13:18:03 +03:00
Nekotekina
cda8b3a59e
RSX: fix new warnings
2020-05-01 22:00:57 +03:00
Megamouse
8f0af6a6fe
rsx/interpreter: merge shader settings
...
- merge disable_asynchronous_shader_compiler and interpreter_mode
- removes disable_asynchronous_shader_compiler setting
- Adds the resulting settings as radio buttons to the gui tab
2020-04-30 15:02:59 +03:00
kd-11
2281c4f662
Fix build
2020-04-30 15:02:59 +03:00
kd-11
2ed50ba263
rsx/interpreter: Improve instruction accuracy
...
- Fix DIV instruction
- Add EXP_TEX modifier
- Implement WPOS register read
- Swap 3D and Cubemap enums to match RSX ids
- Adds two extra instruction classes: flow control and packing control
- Implement remaining FP instructions with exception of the rare projected texture lookups
- Fix typo causing output color index > 0 to not work
- Fix KIL instruction
- Implement conditional vertex program writes
2020-04-30 15:02:59 +03:00
kd-11
fc5b4026e1
vk: Implement optimized pipeline cache
2020-04-30 15:02:59 +03:00
kd-11
bc5c4c9205
rsx/gl: Implement variable path interpreter for optimal performance
2020-04-30 15:02:59 +03:00
kd-11
930bc9179d
rsx/interpreter: Improve instructions support
...
- Must statically write the gl_ClipDistance registers else you get uninitialized trash.
This problem is more readily apparent on NVIDIA technology but even AMD is not completely immune.
2020-04-30 15:02:59 +03:00
kd-11
b4bf48c33b
vk: Integrate shader interpreter
2020-04-30 15:02:59 +03:00
kd-11
0072df7f20
rsx/gl: Add basic interpreter support to OGL
...
- Adds basic interpreter functionality.
- Flow control and other instructions not yet implemented.
2020-04-30 15:02:59 +03:00
Eladash
833ace1190
rsx: Fix zcull time to not time travel to the future
2020-04-28 21:07:15 +03:00
Megamouse
18219afbf7
Qt: move rsx capture to Utilities menu
2020-04-22 21:43:03 +02:00
Eladash
b94e4247cc
rsx: More strict zcull stats enabling
2020-04-21 16:18:32 +01:00
rexys
8f3b04cbd6
rsx: Fix is_fifo_idle with hle gcm
2020-04-16 12:59:19 +03:00
Megamouse
cf229a8e9f
some more dynamic settings
2020-04-15 18:25:25 +02:00
scribam
2e397e38a4
Typos
2020-04-14 17:06:58 +03:00
scribam
f37adc4188
Add fallthrough attribute
2020-04-14 17:06:58 +03:00
Nekotekina
4d8bfe328b
Replace rotate utils with std::rotl
...
More include cleanup.
2020-04-14 16:05:58 +03:00
Nekotekina
032e7c0491
Replace utils::cntlz{32,64} with std::countl_zero
2020-04-14 16:05:58 +03:00
Nekotekina
d0c199d455
Replace utils::cnttz{32,64} with std::countr_{zero,one}
...
Make #include <bit> mandatory.
2020-04-14 16:05:58 +03:00
Eladash
cb14805d78
rsx fp/vp analyzers: Fix strict type aliasing and improve codegen
2020-04-12 16:48:43 +03:00
Eladash
e407018bb5
rsx: Write ref+get atomically
...
May contribute to better FIFO synchronization in some cases.
2020-04-11 21:21:15 +03:00
Eladash
ff74c241c7
rsx: Fix get_optimal_blit_target_properties for local memory
2020-04-11 21:21:15 +03:00
Eladash
504ba8d824
rsx: Fix grammer issue (binded -> bound)
2020-04-11 21:21:15 +03:00
Eladash
8228fa1ece
sys_rsx: Warn if RSX is not idle during crucial points
2020-04-11 21:21:15 +03:00
Eladash
36fd1d0f0d
rsx: Optimize transform constants load methods ( #7992 )
2020-04-09 15:53:43 +03:00
Eladash
f7536bbce0
sys_rsx: Fix gcm events spam
...
In realhw the events are only sent if they are masked in driver_info->handlers as well.
2020-04-07 20:43:28 +03:00
Eladash
3f48450408
sys_rsx: Minor atomicity fixes
2020-04-07 20:43:28 +03:00
Megamouse
078c31c1da
Qt: fix lupdate warnings (used for translation)
2020-04-06 20:59:58 +02:00
Megamouse
b1fdbc7fcc
Move some format functions
2020-04-06 20:59:58 +02:00
Eladash
e7d5d17fd8
rsx: Adjust FIFO recovery to be a bit more merciful
2020-04-05 17:40:23 +03:00
kd-11
0b6e2b26fa
rsx: Fix DST instruction
...
- It's the old-school distance vector, not the more modern distance() function
- There is seemingly no glsl function that maps to it directly.
2020-04-05 16:35:20 +03:00
kd-11
b301fecfd8
gl: Fix async shader compiler
...
- Removes glFinish hack.
- Adds proper server-side synchronization.
- Adds primary context detection to allow worker threads to be identified.
2020-04-05 16:35:20 +03:00
Eladash
72d1efa383
rsx: Batch transform contants load methods
2020-04-05 15:21:56 +03:00
Eladash
72c0aed4c1
rsx: Reset vertex program/constants at each boot
2020-04-02 20:42:12 +03:00
Eladash
c2c5005278
rsx: Fix and improve fp program data invalidation
2020-04-02 20:42:12 +03:00
Eladash
2ed370093e
rsx: Get rid of invalid_command_interrupt_raised
2020-04-02 20:42:12 +03:00
Eladash
d97e9f7b4a
rsx: Batch vertex program load methods
2020-04-02 20:42:12 +03:00
kd-11
69d90f6fec
vk: Remove NVIDIA workaround for broken partial occlusion queries
...
- This bug has been fixed in the latest drivers.
2020-03-31 20:53:12 +03:00
kd-11
8c847d3a4b
vk: Remove RADV workaround regarding renderpass barriers
...
- The situation was clarified in the official vulkan spec to allow this
behavior.
Barriers are now only inserted by the driver when layout
transitions are requested.
2020-03-31 20:53:12 +03:00
kd-11
b327e329d6
vk: Avoid query log spam if no program is loaded
2020-03-31 20:53:12 +03:00
Eladash
4215499b7f
rsx: Fix typo in NV4097_SET_TRANSFORM_PROGRAM range
2020-03-28 11:07:34 +03:00
unknown
049825812e
RSX: Restrict analyser loop error
2020-03-28 09:42:13 +03:00
xddxd
d96dabcd60
rsx: Rename current_instrution to current_instruction ( #7883 )
2020-03-28 02:46:48 +00:00
Eladash
9d971e3b07
rsx: More strict infinite desync detection
...
6 desyncs per second for 1.5 seconds is pretty bad already.
2020-03-26 17:52:45 +03:00
Eladash
38c8dd98b4
rsx: Implement basic infinite FIFO desync detection
2020-03-26 15:22:45 +03:00
Eladash
158e34faca
rsx: Reset all method registers at rsx_state::init()
2020-03-25 17:51:59 +03:00
Eladash
768b4f8c65
rsx: Improve NV308A_COLOR
...
* Fix NV308A_COLOR methods range.
* Batch NV308A_COLOR methods execution together.
* Fix termination of bind_range<> in rsx methods binding.
2020-03-25 17:51:59 +03:00
Megamouse
fd3522436a
overlays/osk: add more panels
2020-03-25 03:54:49 +01:00
Eladash
08e66ab14c
Minor warning fixes
2020-03-23 21:37:37 +03:00
kd-11
4965bf7d7a
gl/vk: Refactor draw call handling and stub shader interpreter
...
- Refactors backend draw call management to make it easier to extend
functionality.
- Stubs shader interpreter functionality.
2020-03-23 14:47:28 +03:00
Eladash
cccc32fa9d
sys_lwmutex/lwcond: track lwcond waiters ( #7826 )
...
In lwmutex destroy syscall, wait for pending waiters.
2020-03-23 10:30:17 +03:00
kd-11
12044bd8b0
rsx: Properly calculate vertex range when divisor is active
...
- The upper bound is to be rounded up, not down.
2020-03-22 10:57:47 +03:00
Eladash
9acf8e283d
Fix OSK thread exit condition
2020-03-21 12:37:29 +03:00
Nekotekina
c577bd2111
Implement thread_state::errored
...
State after calling thread emergency_exit() function.
Also default-construct thread result in this case.
2020-03-20 21:31:27 +03:00
Megamouse
fd8cda0f2b
overlays/osk: fix selection after changing panels
...
We now try to keep the current x and y selected after panel changes.
Also change some copy to ref
2020-03-19 21:10:08 +01:00
Megamouse
c63f77e3b0
overlays/osk: fix full width characters
2020-03-19 21:10:08 +01:00
Megamouse
a1f70bf96e
overlays/osk: do not change the preview text on empty input
...
This prevents that the placeholder disappears
2020-03-19 21:10:08 +01:00
Megamouse
f1127f1894
overlays: implement osk panels
2020-03-19 21:10:08 +01:00
kd-11
d25ba03e82
vk: Lazy evaluate renderpass scope
...
- Spamming the driver with renderpass open/close cycles is bad for performance.
2020-03-15 18:39:40 +03:00
kd-11
7025985c0d
rsx: Improve section scanning when updating surface cache resources in blit engine.
2020-03-15 16:51:23 +03:00
kd-11
a756c0679e
rsx: Implement cross-aspect slice gathering
...
- Fixes a data leak that can happen when a surface is rejected due to aspect mismatch.
- Mismatch can lead to rejection due to area covered excluding the RTT and inevitable upload a texture from CPU at the same location.
- Overlapping fbo/shader_read resources are not allowed.
2020-03-15 16:51:23 +03:00
Eladash
377e06a4a2
rsx: Fix unknown Blend equation
2020-03-15 09:53:15 +03:00
kd-11
2ae83782e1
vk: Fix potential MTRSX deadlock in case of a race condition
2020-03-13 22:06:04 +03:00
Eladash
f3877d11e8
rsx: Fix initial boolean state of m_textures_dirty and m_vertex_textures_dirty
2020-03-12 21:36:43 +01:00
Eladash
c04abac630
rsx capture: Fix exceptions handler, fix tiny race condition on capture new capture
2020-03-12 21:36:43 +01:00
kd-11
7e9dbeff7b
vk: Fix MTRSX deadlock ( #7766 )
2020-03-12 22:29:58 +03:00
Nekotekina
04dedb17eb
Disable exception handling.
...
Use -fno-exceptions in cmake.
On MSVC, enable _HAS_EXCEPTION=0.
Cleanup throw/catch from the source.
Create yaml.cpp enclave because it needs exception to work.
Disable thread_local optimizations in logs.cpp (TODO).
Implement cpu_counter for cpu_threads (moved globals).
2020-03-12 16:03:08 +03:00
kd-11
47bbfdd2aa
vk: Change texture cache memory management for disposed textures
...
- Use global resource manager instead of using the 2-frame hold behavior.
- Fixes high VRAM usage in some games
2020-03-11 16:29:34 +03:00
kd-11
7989de9d16
vk: Properly release dma resources.
2020-03-10 22:02:02 +03:00
Megamouse
3ea94c286b
input/overlays: fix premature pad interception removal
...
shader compilation and trophy notifications shouldn't cancel the pad interception during proper dialogs
2020-03-10 19:04:32 +01:00
kd-11
12b73c8bdc
rsx: Fix copypasta
2020-03-09 17:20:24 +03:00
Eladash
636ed4a48b
HLE cellGcmSys: Avoid calling sys_rsx syscalls in rsx code
2020-03-09 16:07:14 +03:00
kd-11
2985a39d2e
rsx: Rewrite async decompiler
2020-03-09 14:59:25 +03:00
Nekotekina
9dca2887d8
Fixup for Emu.Pause()
...
Remove some reduntant calls.
Don't pause on unknown sys_fs_fcntl operation.
2020-03-08 22:03:16 +03:00
kd-11
8214425a3c
rsx: Fix framebuffer native layout for X32_FLOAT
...
- It was not matching the order laid out for normal textures uploaded from CPU.
2020-03-08 11:43:49 +03:00
kd-11
84a542fbce
rsx: Blit engine improvements
...
- Detect writes to the display output memory and handle it specially.
It already defines a known 2D region.
- Try and detect situations where raw transfers would be of benefit.
2020-03-08 10:30:13 +03:00
Eladash
892f74d762
rsx: Improve frame-limiter ( #7723 )
...
* rsx: Improve frame-limiter accuracy
* lv2: Improve lv2_obj::wait_timeout response time for aborting threads
* rsx: Make stretch to display area setting dynamic
* rsx: Redefine 'auto' frame limiter to obey vblank rate
* rsx: Make frame limiter setting dynamic
* rsx: Make frame-limiter compatible with dynamic changes
2020-03-08 01:11:35 +03:00
kd-11
149d550f7e
gl: Restore commented out line
...
- Byte order step was disabled for debugging and not restored
2020-03-07 17:23:25 +03:00
kd-11
70f2577b9e
vk/gl: Use best-fit semantics when scanning texture cache for flippable images
...
- Allows sourcing flip data from the blit engine resources which avoids expensive flush and re-upload
2020-03-07 16:58:35 +03:00
kd-11
93295f7f50
vk: Fix image properties for flip temporary images to be samplable.
...
- In case of gamma correction or other effects, they may require shader access.
- BGRA8_UNORM is usually safe to use directly without staging memory.
2020-03-07 16:58:35 +03:00
kd-11
1725f7a34b
rsx: Add anaglyph 3D filter
2020-03-07 16:58:35 +03:00
kd-11
6e3406b3f5
video: Allow selection of 3D stereo resolutions
2020-03-07 16:58:35 +03:00
Nekotekina
e4a81b1d13
Move Log.h to util/logs.hpp
2020-03-07 12:29:23 +03:00
Nekotekina
7a8772dafa
Replace std::string::npos with umax
2020-03-05 14:05:23 +03:00
Nekotekina Aux1
250736ece5
Fix warnings in emucore
2020-03-04 21:23:34 +03:00
Nekotekina Aux1
f2f3321952
Fix warnings in VKGSRender
2020-03-04 21:23:34 +03:00
Nekotekina Aux1
c3f3451269
Fix warnings in GLGSRender
2020-03-04 21:23:34 +03:00
kd-11
54775d91dc
rsx/blit-engine: Account for a rare corner case
...
- It is possible to have a RTV<->DSV transfer with compatible-sized formats.
Mark the depth size as typeless in such a situation to avoid crossing the aspect barrier with the API.
2020-03-04 21:21:59 +03:00
kd-11
7fe9802f87
vk: Properly use declared pitch when loading simple images
2020-03-01 00:16:52 +03:00
kd-11
14aebeac58
video-out: Allow applications to successfully change display resolution
...
- Avoids a situation where a game configures output correctly but gets back bogus information later when querying.
- Should fix games being broken at some resolutions but not others.
2020-03-01 00:16:52 +03:00
kd-11
76bbbe27f1
vk: Fix dma resource leak
...
- Fix broken check; a relic of the past where flush method would reset the fence
2020-03-01 00:16:02 +03:00
kd-11
9af52d12a8
vk: Improve events
...
- Make events properly managed objects.
- Add a workaround for AMD's broken event status query
2020-03-01 00:16:02 +03:00
kd-11
5eb314fbbb
vk: Add execution barriers.
...
- Useful for debugging
2020-03-01 00:16:02 +03:00
Nekotekina
8e5a03f171
Use named_thread_group in rsx_cache.h
2020-02-29 16:55:25 +03:00
kd-11
eb140c52a4
rsx: Reset ZCULL statistics at the end of a frame
...
- Workaround for games that leak zpass/zstats.
The information is useless anyway without a clear op so it should be fine.
2020-02-29 14:23:52 +03:00
kd-11
198c84cabf
rsx: Fix zcull clear command; do not clear ZPASS when ZSTATS is cleared.
2020-02-29 14:23:52 +03:00
Eladash
8762f2a588
Use more starts_with
2020-02-29 13:06:14 +03:00
kd-11
08f3460365
vk: Fixup for RCB/RDB in special cases
...
- Images must be in TRANSFER_DST_OPTIMAL or GENERAL layouts to call the image upload routines.
2020-02-29 12:13:11 +03:00
kd-11
cb047fcc75
rsx: Disable zstat checks to avoid unnecessary stream splitting ( #7624 )
2020-02-28 20:27:31 +03:00
Nekotekina
ac2581659a
RSXOffload: fix dma_manager::sync() freeze on exit
...
Its logic was completely broken.
2020-02-28 19:55:43 +03:00
Nekotekina
f335d034fc
Fix RSX Offloader thread exit (MTRSX fix)
...
Hangs on exit if MTRSX is enabled.
2020-02-28 19:43:42 +03:00
Nekotekina
ecd68dfc70
overlays: add "thread bits" to wait on and avoid lockup
...
Add TLS variable to store its own bit.
2020-02-27 19:14:08 +03:00
Megamouse
ee46ad1ca9
move overlays code to headers
2020-02-26 23:43:18 +01:00
gamerforEA
93552a5958
Apply some Clang-Tidy fixes
2020-02-27 00:38:55 +03:00
gamerforEA
c0fbf3091e
Remove unnamed namespaces from headers
2020-02-27 00:38:55 +03:00
gamerforEA
49294a3dd2
Add missing include guards
2020-02-27 00:38:55 +03:00
Nekotekina
5094ab8283
Fix RSX Offloader thread name
2020-02-26 21:57:01 +03:00
Nekotekina
b35a5982e8
Fix one bug with MsgDialog thread (freeze on exit)
...
Forgot to check thread state
2020-02-26 21:23:30 +03:00