ddfae0025c
citra_qt: Add SPIR-V shader option
2022-11-07 22:33:53 +02:00
75b6c5b4c5
externals: Update sirit
2022-11-06 22:13:07 +02:00
32c6e76ab9
renderer_vulkan: Move fragment shader microprofile to a better place
2022-11-06 21:57:30 +02:00
479c7ed162
shader_cache: Fix type deduction
2022-11-06 21:41:57 +02:00
009dfa5265
cmake: Fork sirit
...
* Upstream is missing some required instructions
2022-11-06 21:30:57 +02:00
b225239e1f
renderer_vulkan: Begin new fragment shader SPIR-V emitter
2022-11-06 20:34:40 +02:00
f887621921
renderer_vulkan: Drop requirement for VK_EXT_depth_clip_control
2022-11-03 15:32:15 +02:00
407ae3972a
Revert "code: Use std::numbers::pi"
...
* Not available on Android
This reverts commit d6e545932a
.
2022-11-03 14:01:24 +02:00
0f0ca03551
Revert "CI: dont upload macos artifacts ( #6121 )"
...
This reverts commit 30831e6367
.
2022-11-03 07:12:54 +02:00
9ae84fb6e8
renderer_vulkan: Integrate MacOS wsi
2022-11-02 23:19:50 +02:00
215255d415
video_core: Fix build issues on macos
2022-11-02 23:10:31 +02:00
f5f88101e1
renderer_vulkan: Emulate 3-component vertex formats when unsupported
...
* This fixes the crashes on AMD
2022-11-02 21:46:58 +02:00
e511e51491
renderer_vulkan: Emulate logic op when unsupported
...
* Similar to GLES this is done to prepare for the android port
2022-11-01 14:24:45 +02:00
242047744e
gl_rasterizer: Cleanup and fix bugs
2022-10-31 21:58:14 +02:00
349ac6ac05
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-10-30 19:10:18 +02:00
16571a96a2
texture_downloader_es: Remove invalid operations
2022-10-30 18:51:27 +02:00
a0e9836386
gl_texture_runtime: Use OGLStreamBuffer for uploads/downloads
...
* Much better than the current implementation
2022-10-30 18:41:47 +02:00
fb10d05f97
vk_stream_buffer: Cleanup flush barrier
2022-10-30 09:34:08 +02:00
182bebf272
video_core: Reorder microprofile defines
2022-10-29 20:49:39 +03:00
7626804a90
citra_qt: Add shader cache options
2022-10-29 15:04:05 +03:00
20496e8ca4
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-10-29 15:03:55 +03:00
b4184a3c2b
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-10-29 15:02:13 +03:00
2251d96d4d
renderer_vulkan: Cleanup vertex array setup
...
* Also the function would commit more data then it requested leading to out of bound crashes
2022-10-29 15:02:12 +03:00
c028a8c7c5
renderer_vulkan: Remove AttribType
...
* Use VertexAttributeFormat to avoid unnecessary enum casts
2022-10-29 15:01:49 +03:00
359f97be22
video_core: Move HardwareVertex to RasterizerAccelerated
2022-10-29 15:01:49 +03:00
748f8a0658
video_core: Move api agnostic uniform updates to RasterizerAccelerated
2022-10-29 15:01:48 +03:00
a7611bb2d3
renderer_vulkan: Fix swapchain resizing
2022-10-29 15:01:13 +03:00
6f35a3bf37
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-10-29 14:59:21 +03:00
58573dd7b3
citra_qt: Refuse to enable debug option if the layers are not available
2022-10-29 14:59:21 +03:00
11728d6772
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-10-28 23:05:37 +03:00
a99be221b2
externals: Update vulkan-headers
2022-10-28 23:05:37 +03:00
f656610a41
common: Remove concepts usage
2022-10-28 23:05:37 +03:00
cfa1a7b91c
citra_qt: Include unordered_map to fix macOS compilation
2022-10-28 23:05:37 +03:00
52b1fc4889
renderer_vulkan: Fix shader hash type
2022-10-28 23:05:37 +03:00
01e2b6cdaa
code: Remove usages of std::ranges
...
* MacOS is still runining my C++ 20 fun
2022-10-28 23:05:37 +03:00
f75380fc93
renderer_vulkan: Prefer immediate over mailbox present mode
2022-10-28 23:05:37 +03:00
18af49a0ca
renderer_vulkan: Bump vertex buffer size
...
* So software shaders don't crash
2022-10-28 23:05:37 +03:00
c7e64f6c7b
renderer_vulkan: Add more microprofile targets
2022-10-28 23:05:37 +03:00
0a40a513a6
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-10-28 23:05:37 +03:00
a4dc6a55b7
renderer_vulkan: Fix allocation caching bug
2022-10-28 23:05:37 +03:00
7dce5be263
renderer_opengl: Port scaled upload/download code from vulkan
2022-10-28 23:05:37 +03:00
3f7d97da4c
renderer_vulkan: Include algorithm in vk_common
...
* Appears to be a bug in vulkan-hpp
2022-10-28 23:05:37 +03:00
a11b4dd051
renderer_vulkan: Use linear filtering when possible
...
* Fixes blocky artifacts in Samus Returns
2022-10-28 23:05:37 +03:00
c78847b2b6
renderer_vulkan: Abstract descriptor management
...
* The pipeline cache was starting to get cluttered
2022-10-28 23:05:37 +03:00
8faa7a6e02
renderer_vulkan: Bump descriptor set allocation limit
2022-10-28 23:05:37 +03:00
acf4b4e5fb
renderer_vulkan: Fix storage descriptor binding and respect color mask
...
* RGBA8 surfaces now expose an additional R32Uint view used for storage descriptors. The format is guaranteed by the spec to support atomic loads/stores. This requires the mutable flag which incurs a performance cost, but might be better than breaking the current renderpass each draw when rendering shadows, especially on mobile
* Color mask is also implemented which fixes Street Fighter and Monster Hunter Stories
2022-10-28 23:05:37 +03:00
3a0ca63d91
renderer_vulkan: Implement depth uploads with blit
2022-10-28 23:05:37 +03:00
1e96775203
renderer_vulkan: Use intermediate copy when framebuffer is used both as attachment and shader input
2022-10-28 23:05:37 +03:00
6d27e8be8d
renderer_vulkan: Respect disk shader option
2022-10-28 23:05:37 +03:00
c357a8b9b6
renderer_vulkan: Fix staging buffer size
2022-10-28 23:05:37 +03:00