Commit Graph

9759 Commits

Author SHA1 Message Date
GPUCode
eb8b463ca8 Merge branch 'vulkan-2' of https://github.com/GPUCode/citra into vulkan-2 2023-03-11 20:46:54 +02:00
GPUCode
72c1785bf0 renderer_vulkan: Revert some recent present changes
* Fixes the deadlocking on mingw until I rewrite presentation again
2023-03-11 20:45:19 +02:00
GPUCode
a2aca3dde6 Merge branch 'master' into vulkan-2 2023-03-11 13:15:41 +02:00
DRayX
27be16ee31 Update AndroidManifest for Android TV (#6330) 2023-03-10 00:44:45 +01:00
Steveice10
c96f54f022 Implement app management support (suspend, resume, close, etc) (#6322) 2023-03-10 00:44:26 +01:00
Charles Lombardo
d2caf2d386 citra_android: Start material 3 migration (#6335) 2023-03-09 23:22:11 +01:00
Charles Lombardo
1cca713e3b citra_android: New settings fragment animations (#6332) 2023-03-09 21:54:32 +05:30
GPUCode
c5f2267306 renderer_vulkan: Emulate 3 component formats when unsupported
* Using uscaled formats isn't enough for all targets, the steam deck for example still crashes. The previous approach involved breaking the attribute to vec2 + vec1 and combining them. This commit implements something much simpler; the attribute is replaced with the 4 component version and the shader then zeros the w component. Since the fixed binding is at least 16bytes and exists at the end of the vertex data, we always have adequate space to alias so tihs shouldn't break.
2023-03-09 16:02:21 +02:00
Steveice10
976995ba08 cfg: Set system setup complete flag when formatting save. (#6331) 2023-03-09 00:05:00 +01:00
GPUCode
911fe5610c vk_renderpass_cache: Bring back flushes
* Idk why they were removed
2023-03-08 16:01:32 +02:00
GPUCode
b3e0078041 vk_resource_pool: Increase buffer descriptors 2023-03-08 15:20:10 +02:00
GPUCode
eeb1ff7965 rasterizer_cache: Avoid redundant texture copies when using texcubes 2023-03-08 10:11:47 +02:00
Tobias
07e02a1acf Port multiplayer related PRs from yuzu (yuzu-emu/yuzu#9661 and yuzu-emu/yuzu#9713) (#6319)
Co-authored-by: SoRadGaming <sohorhab.azizdel@outlook.com>
Co-authored-by: Luke Sawczak <luke@unfamiliarplace.com>
2023-03-08 00:51:46 +01:00
GPUCode
8721456944 renderer_vulkan: Use dynamic uniform buffers
* Reduce descriptor update overhead
2023-03-07 23:38:48 +02:00
GPUCode
a23fbae391 vk_resource_pool: Add back eSampledImage
* It's used by format reinterpreter
2023-03-06 22:28:31 +02:00
GPUCode
0a8f11ca63 renderer_vulkan: Small cleanups 2023-03-05 17:34:35 +02:00
GPUCode
8f194b5fff rasterizer_cache: Handle null surface id in GetTextureSurface
* Pokemon X tries to use a texture with zero width. The previous code handled this so will we
2023-03-05 16:36:19 +02:00
GPUCode
3b050668bb vk_texture_mailbox: Fix shutdown 2023-03-05 14:12:29 +02:00
GPUCode
d054eea0c4 rasterizer_cache: Handle null surface cubes properly 2023-03-05 14:05:22 +02:00
GPUCode
b9021ea469 renderer_vulkan: Address various sync issues
* Drop Common::SPSCQueue as it sometimes gives garbage frames.

* Reduce master semaphore timeout to allow the wait to recover in cases wher it gets stuck
2023-03-05 01:27:39 +02:00
GPUCode
223627c381 vk_scheduler: Prevent DispatchWork stalls
* Now that Finish no longer depends on the queue being empty of not we can move the chunk execution out of the work_mutex scope
2023-03-04 22:33:25 +02:00
GPUCode
ad4339464a renderer_vulkan: Submit present frames from the EmuThread
* This commit also reworks scheduler synchronization somewhat to be more reliable. Flush is given an atomic_bool is signal when the submit is done
2023-03-04 22:24:56 +02:00
GPUCode
32cb44d2b9 vk_descriptor_manager: Cache descriptor sets 2023-03-03 23:06:16 +02:00
GPUCode
39edca2cf7 vk_texture_runtime: Disable anisotropic filtering if unsupported 2023-03-03 22:47:27 +02:00
Steveice10
0a3acc25d2 ci: Bump macOS target to 11 (Big Sur) (#6325) 2023-03-03 22:47:27 +02:00
Steveice10
3f0bcf5913 Revert "ci: Disable uploading final macOS artifacts until ready to resume producing." 2023-03-03 22:47:27 +02:00
GPUCode
2384c8f811 vk_texture_runtime: Bring back FramebufferView
* Also move the usage hint flags to the allocation. If an allocation is used as framebuffer there's a high chance it will be used again as such. In addition is helps keeping pipeline barriers correct even when the surface is destoyed and recreated (happens often with framebuffers)
2023-03-03 16:28:01 +02:00
GPUCode
c26cb68a0c vk_renderpass_cache: Commonize setup between renderpass and dynamic rendering implementations
* Also fix small issue that caused broken rendering on the latter
2023-03-03 16:24:10 +02:00
Steveice10
455a0198d9 ci: Bump macOS target to 11 (Big Sur) (#6325) 2023-03-03 15:04:31 +02:00
GPUCode
c34bc45bf1 custom_tex_manager: Fix a race with async decoding 2023-03-02 16:20:32 +02:00
GPUCode
19617f32c8 custom_tex_manager: Multithread custom texture loading and decode
* Each texture has an atomic flag to signal to the backend when decoding is finished

* Don't store the file data as well to conserve RAM.
2023-03-02 16:20:32 +02:00
GPUCode
8396ce0b47 rasterizer_cache: Improve debugging
* Give surfaces an object label viewable in renderdoc with useful information

* Break up the Cache Mgmt microprofile scope and commonize it
2023-03-02 16:20:32 +02:00
GPUCode
07f85cf639 vk_shader_gen_spv: Emulate fog
* Fixes the intro of MM3D
2023-03-02 16:20:32 +02:00
GPUCode
dfd8ded206 vk_pipeline_cache: Improve async pipeline android fallback
* When VK_EXT_pipeline_creation_feedback is unavailable don't synchronously compile the pipeline, this is slow

* Compile the pipeline asynchrounsly instead and have the record thread wait for it. This way we can have multiple pipelines compiling at once
2023-03-02 16:20:32 +02:00
GPUCode
06caa535d6 rasterizer_cache: Remove usage of shared_ptr 2023-03-02 16:20:32 +02:00
GPUCode
42bed30b98 custom_tex_manager: Fix dumping issues
* Use the proper hash for dumping

* Add the mipmap as a postfix to help pack creators
2023-03-02 16:20:32 +02:00
GPUCode
74e75f1996 rasterizer_cache: More texture pack nonsense
* Some packs turn out have mipmaps but not the base level of a texture. Handle this to avoid black textures at a distance
2023-03-02 16:20:32 +02:00
GPUCode
f04a6a4d83 vk_rasterizer: Reduce stream buffer size
* 64MB is more than enough, any higher and it fills up the 256MB device local-host visible heap
2023-03-02 16:20:32 +02:00
GPUCode
33be1b744b rasterizer_cache: Limit mipmap skip to custom surfaces
* Fixes missing mipmaps when custom textures is enabled but the game does not have any pack

* Also fixes black textures in cases where a custom texture was not provided
2023-03-02 16:20:32 +02:00
GPUCode
2c9e0ec723 video_core: Add more ASTC formats 2023-03-02 16:20:32 +02:00
GPUCode
d1ac33b18b Revert "Revert "vk_scheduler: wait for command processing to complete""
* No longer needed after async present and causes sync issues during swapchain recreation

This reverts commit 0381081c5d.
2023-03-02 16:20:32 +02:00
GPUCode
c00bdc4214 gl_texture_runtime: Generate all mipmaps 2023-03-02 16:20:32 +02:00
GPUCode
74be64b60a vk_stream_buffer: Fix synchronization during buffer overflow
* Especially with custom textures the bufer would fill up but didn't wait any watchers on overflow overriding some textures
2023-03-02 16:20:32 +02:00
GPUCode
11ca327951 renderer_vulkan: Optimize stream buffer usage
* Use vma for allocating the memory. In addition place upload/download buffers on the cpu, they don't need to be device local
2023-03-02 16:20:32 +02:00
GPUCode
631da59392 renderer_vulkan: Allow vsync change during gameplay 2023-03-02 16:20:32 +02:00
GPUCode
e861c456c9 custom_tex: Fix hash read on windows 2023-03-02 16:20:31 +02:00
GPUCode
c3ab060576 externals: Trim down zlib-ng build 2023-03-02 16:20:31 +02:00
GPUCode
94ee7c68fc video_core: Clear runtime on rasterizer cache flush
* When changing res scale or custom textures a large number of textures will be replaced so better not keep the old ones
2023-03-02 16:20:31 +02:00
GPUCode
8e8097e7c0 renderer_vulkan: Use combined image samplers
* Less descriptors = good
2023-03-02 16:20:31 +02:00
GPUCode
52683adedd video_core: Rewrite custom textures 2023-03-02 16:20:31 +02:00