Commit graph

1108 commits

Author SHA1 Message Date
Nekotekina
ea5e837bd6 fixed_typemap.hpp: return reference 2021-03-02 16:08:14 +03: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
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
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
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
b8311caa6b vk: Silence some compiler warnings 2021-02-14 20:42:34 +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
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
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
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
Eladash
d3bc96a201 Fix minor issue with usage of STL thread::hardware_concurrency() 2021-01-29 18:23:29 +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
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
kd-11
eb086b0e3f rsx: Add support shadow1D and shadowCube 2021-01-21 10:24:49 +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
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
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