Commit Graph

9538 Commits

Author SHA1 Message Date
cce6a79a91 vk_shader_gen_spv: Fix OpCompositeConstruct bug
* Fixes graphics on the 2d_shapes homebrew and maybe other games
2023-01-02 15:40:00 +02:00
230a463a39 msvc ci: Setup Vulkan SDK for glslangValidator 2023-01-02 00:25:28 +02:00
83e734bd6a vk_shader_gen: new is a reserved keyword on Metal 2022-12-31 20:24:31 +02:00
72ee29669a renderer_vulkan: Add support for VK_KHR_image_format_list
* May help drivers when using mutable images
2022-12-31 18:20:08 +02:00
b1a02e1710 renderer_vulkan: Remove upload_cmdbuf
* No longer needed with the new stream buffer
2022-12-31 17:44:15 +02:00
2c34f41747 vk_rasterizer: Don't bind redundant bindings 2022-12-31 10:07:35 +02:00
60d59730a9 Revert "ci: Fix macOS upload script calling wrong macpack."
This reverts commit 3b9ed5234d.
2022-12-30 18:08:20 +02:00
850ec1f8b8 vk_common: Enable beta extensions
* Required to access the portability subset'
2022-12-30 16:22:53 +02:00
3da6c25fd8 renderer_vulkan: Fallback to software shaders on unsupported topology
* MoltenVK does not support triangle fans
2022-12-30 15:25:27 +02:00
0e987959a6 renderer_vulkan: Rewrite data streaming
* Most GPUs nowadays provide a device local/host visible memory heap which is useful for avoiding copies between staging and local memory and especially beneficial for mobile and APUs that are mostly the target of this backend.

* This commit ports the old yuzu stream buffer with some changes to suit our needs and gets rid of the buffer flush methods
2022-12-30 11:10:49 +02:00
410b8b8809 vk_texture_runtime: Tune barriers
* Using eAllCommandBit is really bad for Mali GPUs. Also most access flags were redundant mostly for edge cases.

* To address this track surface usage and decide the best barrier flags at runtime. This gives a significant performance boost to mobile GPUs
2022-12-29 21:56:57 +02:00
d3392ae0b1 renderer_vulkan: Properly format structs 2022-12-29 20:11:57 +02:00
98e0ecf6a7 renderer_vulkan: Add fallback path for VK_EXT_index_type_uint8
* Also remove some flush barriers
2022-12-29 19:07:09 +02:00
ad45b9880d android: Add vulkan support to frontend 2022-12-28 14:01:50 +02:00
0d1646e4df Revert "vk_scheduler: Enable usage of jthread on macos"
This reverts commit 09dcd48257.
2022-12-26 17:15:21 +02:00
96f0746ab9 HACK: Skip normquat lerp to drop geometry shader requirement 2022-12-26 15:50:11 +02:00
09dcd48257 vk_scheduler: Enable usage of jthread on macos
- Import the yuzu polyfill libraries
2022-12-26 11:17:23 +02:00
62fc1f835e ci: Provide glslang 2022-12-26 09:01:05 +02:00
3b351c33d1 android: Fix build 2022-12-26 08:53:30 +02:00
793485d201 renderer_vulkan: Revert some stream buffer changes
* The previous design was much less prone to errors so switch back to that. Also make 16 byte alignment standard
2022-12-25 23:48:11 +02:00
3ef5ab7323 video_core: Move pixel format functions to cpp file 2022-12-25 23:37:28 +02:00
618c80c803 vk_instance: Address small issues 2022-12-25 23:21:44 +02:00
f7cb308243 video_core/host_shaders: Add CMake integration for string shaders 2022-12-25 23:17:39 +02:00
b8583f9af3 renderer_vulkan: Port per-game to vulkan renderer 2022-12-25 23:06:30 +02:00
33bf2b7c2d renderer_vulkan: Forward validation errors to logfile 2022-12-25 22:31:27 +02:00
d48e6c04ce video_core: Move most pica register handling to RasterizerAccelerated 2022-12-25 22:31:27 +02:00
88f34a7d69 vk_shader_gen_spv: Implement proctex sampler
* Fixes MHS menu and probably other games
2022-12-25 22:31:27 +02:00
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