c8e9b465e2
renderer_vulkan: Proper telemetry reporting
2022-12-25 22:31:27 +02:00
278198f5f5
vk_shader_gen_spv: Implement shadow plane sampling
2022-12-25 22:31:27 +02:00
58718e6bd6
renderer_vulkan: Fix LMDM crashes
...
* Cache vertex format lookups to avoid crashing the driver when the game does too many lookups
* Increase watcher count. For some reason the game uses way too many watchers
* Fix other misc SPIRV bugs and don't crash when shadow is requested
2022-12-25 22:31:27 +02:00
a814b21693
vk_shader_gen_spv: Implement alpha testing
...
* Should fix all current graphical bugs
2022-12-25 22:31:27 +02:00
5478a4d634
vk_instance: Make DynamicLoader static
...
* That way we don't construct/destroy it all the time
2022-12-25 22:31:27 +02:00
8f87586495
citra_qt: Add SPIR-V shader option
2022-12-25 22:31:27 +02:00
7e3a0f524c
externals: Update sirit
2022-12-25 22:29:05 +02:00
922019cc22
renderer_vulkan: Move fragment shader microprofile to a better place
2022-12-25 22:29:05 +02:00
41e9cdb645
shader_cache: Fix type deduction
2022-12-25 22:29:05 +02:00
e90add52d2
cmake: Fork sirit
...
* Upstream is missing some required instructions
2022-12-25 22:29:04 +02:00
3c6ca2cc82
renderer_vulkan: Begin new fragment shader SPIR-V emitter
2022-12-25 22:29:04 +02:00
d1039d9a81
code: Address build issues
2022-12-25 22:29:04 +02:00
8b8cee1a5a
vk_instance: Remove depth clip control feature
...
* To not crash drivers that don't support it since we don't require it anymore
2022-12-25 22:28:49 +02:00
5dc92cd72b
ci: Bundle MoltenVK with macOS builds.
2022-12-25 22:28:49 +02:00
d1503605a7
vulkan: Fix supported extension check
2022-12-25 22:28:49 +02:00
6426f7a319
vulkan: Use required portability instance extension on macOS.
2022-12-25 22:28:49 +02:00
3b9ed5234d
ci: Fix macOS upload script calling wrong macpack.
2022-12-25 22:28:49 +02:00
763127605e
qt: Extract CAMetalLayer from NSView to pass to MoltenVK.
2022-12-25 22:28:49 +02:00
b86b19d366
renderer_vulkan: Drop requirement for VK_EXT_depth_clip_control
2022-12-25 22:28:49 +02:00
3dd74c69c5
Revert "CI: dont upload macos artifacts ( #6121 )"
...
This reverts commit 30831e6367
.
2022-12-25 22:28:49 +02:00
01af8e3f2c
renderer_vulkan: Integrate MacOS wsi
2022-12-25 22:28:49 +02:00
474cccda33
video_core: Fix build issues on macos
2022-12-25 22:28:49 +02:00
6057b18172
renderer_vulkan: Emulate 3-component vertex formats when unsupported
...
* This fixes the crashes on AMD
2022-12-25 22:28:48 +02:00
6a4ff8fa24
renderer_vulkan: Emulate logic op when unsupported
...
* Similar to GLES this is done to prepare for the android port
2022-12-25 22:28:48 +02:00
3c79360fd3
gl_rasterizer: Cleanup and fix bugs
2022-12-25 22:28:48 +02:00
939aafed40
vk_texture_runtime: Implement RGBA4 converter
...
* Fixes graphics in NES Remix. Need to also do a reinterpreter some time, but this will suffice for now
2022-12-25 22:28:48 +02:00
23417787f8
texture_downloader_es: Remove invalid operations
2022-12-25 22:28:48 +02:00
8946c1a7de
gl_texture_runtime: Use OGLStreamBuffer for uploads/downloads
...
* Much better than the current implementation
2022-12-25 22:28:48 +02:00
5fe910b18f
vk_stream_buffer: Cleanup flush barrier
2022-12-25 22:28:48 +02:00
3944cbdc19
video_core: Reorder microprofile defines
2022-12-25 22:28:48 +02:00
8ac3dd1840
renderer_vulkan: Rewrite stream buffer, again...
...
* The previous implemention was fine, but it wasted space. Buckets now are just ticks attached to a particular buffer region, which means we can flush/map arbitrary regions
* A bug in the texture runtime is also fixed which commited to the same buffer twice
2022-12-25 22:28:15 +02:00
ff34287e4b
renderer_vulkan: Pack PicaFSConfig
...
* Using bitfields the struct size was reduced from 420 to 190 bytes. which should speed up hashing and copying to the worker thread
2022-12-25 22:28:15 +02:00
81f2a0eaa1
renderer_vulkan: Cleanup vertex array setup
...
* Also the function would commit more data then it requested leading to out of bound crashes
2022-12-25 22:28:15 +02:00
f11715a4f4
renderer_vulkan: Remove AttribType
...
* Use VertexAttributeFormat to avoid unnecessary enum casts
2022-12-25 22:28:15 +02:00
89c51371f7
video_core: Move HardwareVertex to RasterizerAccelerated
2022-12-25 22:28:15 +02:00
8076d893db
video_core: Move api agnostic uniform updates to RasterizerAccelerated
2022-12-25 22:28:15 +02:00
72f8d520c9
renderer_vulkan: Fix swapchain resizing
2022-12-25 22:28:15 +02:00
f9274f8b9a
renderer_vulkan: Add single-thread record ability to the scheduler
...
* Async is pretty nice but games that do a lot of flushes might have worse performance due to thread synchronization overhead
* I haven't noticed any cases of this yet but it doesn't hurt making this a UI option
2022-12-25 22:28:15 +02:00
3c09c03180
citra_qt: Refuse to enable debug option if the layers are not available
2022-12-25 22:24:28 +02:00
52251e3908
renderer_vulkan: Scheduler and presentation rewrite
...
* This commit ports yuzu's async scheduler replacing our older and crummier version
Commands are recorded by the scheduler and processed by a separate worker thread.
* Queue submission is also moved to the worker thread which should alliviate slowdowns related to vkQueueSubmit stalls
* Fragment shader compilation and queue submission are also moved to that thread to reduce stutters
2022-12-25 22:23:46 +02:00
921444c2c9
externals: Update vulkan-headers
2022-12-25 22:23:46 +02:00
89d234f642
common: Remove concepts usage
2022-12-25 22:23:46 +02:00
13771b805b
renderer_vulkan: Fix shader hash type
2022-12-25 22:23:46 +02:00
2a71059490
code: Remove usages of std::ranges
...
* MacOS is still runining my C++ 20 fun
2022-12-25 22:23:46 +02:00
053221f155
renderer_vulkan: Prefer immediate over mailbox present mode
2022-12-25 22:23:46 +02:00
4868c361e7
renderer_vulkan: Bump vertex buffer size
...
* So software shaders don't crash
2022-12-25 22:23:46 +02:00
0c30dbf33e
renderer_vulkan: Add more microprofile targets
2022-12-25 22:23:46 +02:00
53370e81e2
renderer_vulkan: Improve StreamBuffer API and use it in TextureRuntime
...
* Also use separate upload and download buffers optimized for write and readback respectively. This gives a huge 20+ FPS boost in most games which were bottlenecked by slow reads
2022-12-25 22:23:46 +02:00
b3fb260c84
renderer_vulkan: Fix allocation caching bug
2022-12-25 22:23:46 +02:00
599ca7caf7
renderer_opengl: Port scaled upload/download code from vulkan
2022-12-25 22:23:46 +02:00