Commit graph

5879 commits

Author SHA1 Message Date
Fernando S
118d5fa3b0
Merge pull request #7670 from ameerj/vsync-block
gpu: Add shut down method to synchronize threads before destruction
2022-01-04 14:16:24 +01:00
bunnei
c68a0d17fc
Merge pull request #7251 from FernandoS27/shader-dump
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-03 17:56:30 -08:00
ameerj
c17938f96b gpu: Add shut down method to synchronize threads before destruction 2022-01-03 20:47:26 -05:00
Fernando Sahmkow
f58ee3f15f ShaderDecompiler: Add a debug option to dump the game's shaders. 2022-01-04 02:39:00 +01:00
ameerj
7652543231 Revert "Merge pull request #7668 from ameerj/fence-stop-token"
This reverts commit e773354477, reversing
changes made to abbbdc2bc0.
2022-01-03 20:28:54 -05:00
ameerj
d866916f42 gpu: Use std::stop_token in WaitFence for VSync thread
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
2022-01-03 12:31:33 -05:00
Fernando S
3fa9702952
Merge pull request #7624 from ameerj/intel-msaa-scale
vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers
2022-01-03 00:40:14 +01:00
Fernando S
ae7da0b12d
Merge pull request #7629 from ameerj/nv-driver-fixes
shaders: Add fixes for NVIDIA drivers 495+
2022-01-03 00:39:59 +01:00
ameerj
951c61aeaa texture_cache/util: Fix s32 overflow when resolving overlaps 2021-12-31 20:03:22 -05:00
ameerj
285b6dbc39 video_core/memory_manager: Fixes for sparse memory management 2021-12-31 17:04:02 -05:00
ameerj
2428214c4b video_core/memory_manager: Deduplicate Read/WriteBlock 2021-12-31 02:08:22 -05:00
ameerj
8c907c620d glsl: Add boolean reference workaround 2021-12-29 19:03:50 -05:00
ameerj
b84d429c2e glsl_context_get_set: Add alternative cbuf type for broken drivers
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
2021-12-29 19:03:50 -05:00
Feng Chen
e18bf4b062 Remove invalid header include 2021-12-28 18:51:11 +08:00
bunnei
f67605e6aa
Merge pull request #7622 from ameerj/vk-rescale-invalid-ptr
vk_texture_cache: Fix invalidated pointer access
2021-12-28 00:46:37 -08:00
ameerj
f9e0681d59 vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers
Fixes a crash when scaling MSAA textures in titles such as Sonic Colors Ultimate.
2021-12-23 22:35:19 -05:00
ameerj
cbc0f0a66e blit_image: Remove unused function 2021-12-23 21:06:32 -05:00
ameerj
481b210c0d vk_texture_cache: Fix invalidated pointer access
The vulkan ImageView held a reference to its source image for rescale status checking. This pointer is sometimes invalidated when the texture cache slot_images container is resized.
To avoid an invalid pointer dereference, the ImageView now holds a reference to the container itself.
2021-12-23 20:55:48 -05:00
Fernando S
648c7b4ed6
Merge pull request #7375 from vonchenplus/convert_legacy
Convert all legacy attributes to generic attributes
2021-12-22 17:36:05 +01:00
bunnei
36df305b13
Merge pull request #7599 from FernandoS27/primrestart-vulkan
Vulkan: Fix Primitive Restart and implement Logical Operations
2021-12-22 00:19:23 -08:00
Jan Beich
e57b13ad94 video_core/codecs: re-enable VAAPI/VDPAU on BSDs after 72aa418b0b 2021-12-18 20:57:30 +00:00
bunnei
2030522d86
Merge pull request #7587 from liushuyu/fix-linux-decoding
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
2021-12-18 02:33:07 -08:00
vonchenplus
4908a07c20 Address format clang 2021-12-18 14:27:07 +08:00
Fernando Sahmkow
6c00151d17 Vulkan: Fix the checks for primitive restart extension. 2021-12-18 07:17:08 +01:00
Fernando S
04b4f3b051
Merge pull request #7399 from ameerj/art-refactor
video_core: Refactoring post A.R.T. merge
2021-12-18 07:09:58 +01:00
Feng Chen
e49184e606
Merge branch 'yuzu-emu:master' into convert_legacy 2021-12-18 13:57:14 +08:00
Fernando Sahmkow
14d2c77f91 Vulkan: implement Logical Operations. 2021-12-18 06:52:28 +01:00
Fernando Sahmkow
6430fc29a9 Vulkan: Implement VK_EXT_primitive_topology_list_restart 2021-12-18 05:47:48 +01:00
bunnei
7cf74abbf5
Merge pull request #7551 from vonchenplus/fix_blit_image_view_mismatching
Fix blit image/view not compatible
2021-12-15 21:39:53 -08:00
liushuyu
3f765ea9a4 video_core/codecs: (re-spin) refactor ffmpeg searching and handling 2021-12-15 20:57:01 -07:00
bunnei
2f32133ad5
Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake" 2021-12-15 00:02:53 -08:00
bunnei
156215d1fa
Merge pull request #7565 from liushuyu/fix-linux-decoding
video_core/codecs: refactor ffmpeg searching and handling in cmake
2021-12-14 22:27:13 -08:00
liushuyu
dd72e4dce4
CI: fix CI on Linux 2021-12-13 22:31:19 -07:00
liushuyu
a2d73eaa10 video_core/codecs: skip decoders that use hw frames ...
... this would resolve some edge-cases where multiple devices are
present and ffmpeg is unable to auto-supply the hw surfaces
2021-12-13 22:29:19 -07:00
Morph
14110230c7 maxwell_to_vk: Add ASTC_2D_5X4_UNORM 2021-12-10 22:44:24 -05:00
Feng Chen
1598426493 Fix blit image/view not compatible 2021-12-10 12:41:09 +08:00
Morph
ae4869650a maxwell_to_vk: Add ASTC_2D_8X5_UNORM
- Used by Lego City Undercover
2021-12-09 13:53:53 -05:00
Morph
429320aee8
Merge pull request #7495 from FernandoS27/text-blit-fix-again
Texture Cache: Fix mismatching image/views on blits
2021-12-09 05:26:21 -05:00
Morph
47a724780f renderer_vulkan: Add R16G16_UINT
- Used by Immortals Fenyx Rising
2021-12-08 10:55:11 -05:00
bunnei
815189eaf3
Merge pull request #7488 from vonchenplus/support_multiple_videos_playing
Support multiple videos playing
2021-12-07 18:38:14 -08:00
ameerj
228a381aed vk_texture_cache: Add ABGR src format check for D24S8 conversions 2021-12-05 15:54:58 -05:00
ameerj
c22c4f5d59 renderer_opengl: Minor refactoring of filter selection 2021-12-05 15:42:45 -05:00
ameerj
218d790bd6 texture_cache: Fix image convert dimensions assertion 2021-12-05 15:42:45 -05:00
ameerj
b8f3e5157b blit_image: Refactor upscale factors usage
The image view itself can be queried to see if it is being rescaled or not, removing the need to pass the upscale/down shift factors from the texture cache.
2021-12-05 15:42:44 -05:00
ameerj
35d94dcb2b vk_texture_cache: Add a function to ImageView to check if src image is rescaled 2021-12-05 15:39:00 -05:00
ameerj
4a13f9eecd blit_image: Refactor ConvertPipeline functions 2021-12-05 15:39:00 -05:00
ameerj
ad99bbf5fe blit_image: Refactor ConvertPipelineEx functions
reduces much of the duplication between the color/depth variants
2021-12-05 15:38:59 -05:00
ameerj
b387a26f30 vk_blit_screen: Minor refactor of filter pipeline selection 2021-12-05 15:35:35 -05:00
ameerj
75c4aec8ab Revert "Merge pull request #7395 from Morph1984/resolve-comments"
This reverts commit d20f91da11, reversing
changes made to 5082712b4e.
2021-12-05 15:35:35 -05:00
Feng Chen
5462485cc3 Address feedback 2021-12-05 00:06:14 +08:00
Fernando Sahmkow
a5c212516c Texture Cache: Fix crashes on NVIDIA. 2021-12-04 11:26:58 +01:00
bunnei
e482dd82b9
Merge pull request #7467 from liushuyu/fix-linux-decoding
video_core/codecs: more robust ffmpeg hwdecoder selection logic
2021-12-03 17:11:12 -08:00
liushuyu
e7f10de11a
video_core/cmake: link against libva explicitly ...
... to fix build on Flatpak (and self-builds)
2021-12-02 22:35:30 -07:00
liushuyu
a578df4c6b
video_core/codecs: more fixes for VAAPI detection ...
* skip impersonated VAAPI implementaions ("imposter detection")
* place VAAPI priority below CUDA/NVDEC/CUVID
2021-12-02 21:31:51 -07:00
liushuyu
20a46790d7 video_core/codec: address comments 2021-12-02 21:01:34 -07:00
liushuyu
cd27f211c8 video_core/codecs: more robust ffmpeg hwdecoder selection logic 2021-12-02 21:01:34 -07:00
Morph
762b8ad448 general: Replace high_resolution_clock with steady_clock
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
2021-12-02 14:20:43 -05:00
Feng Chen
2c47f8aa18 Support multiple videos playing 2021-12-02 12:48:42 +08:00
Feng Chen
524a9baa7e Add missing pixel format mapping 2021-11-29 12:39:37 +08:00
Fernando S
3031223153
Merge pull request #7396 from FernandoS27/blit-this-mf
TextureCache: Eliminate format deduction as full depth conversion has been supported.
2021-11-28 12:16:31 +01:00
Fernando Sahmkow
5a3463bc2b Texture Cache: Secure insertions against deletions. 2021-11-28 10:53:27 +01:00
Fernando Sahmkow
ecefc932e6 Texture Cache: Redesigning the blitting system (again). 2021-11-27 11:22:16 +01:00
Fernando Sahmkow
1624f307d0 Texture Cache: Further fix regressions. 2021-11-26 17:03:48 +01:00
liushuyu
60928cf8cd
video_core/codec: address comments 2021-11-24 18:06:38 -07:00
liushuyu
72aa418b0b
video_core/codecs: fix multiple decoding issues on Linux ...
* when someone installed Intel video drivers on an AMD system, the
  decoder will select the Intel VA-API decoding driver and yuzu will
  crash due to incorrect driver selection; the fix will check if the
  currently about-to-use driver is loaded in the kernel
* when using NVIDIA driver on Linux with a ffmpeg that does not have
  CUDA capability enabled, the decoder will crash; the fix simply
  making the decoder prefers the VDPAU driver over CUDA on Linux
2021-11-24 17:23:57 -07:00
Fernando Sahmkow
08674aee87 Texture Cache: Fix issue with blitting 3D textures. 2021-11-22 06:07:21 +01:00
Fernando Sahmkow
1e474fb9d1 Texture Cache: Correct conversion shaders. 2021-11-22 00:21:42 +01:00
Fernando Sahmkow
0902119302 Texture Cache: Always copy on NVIDIA. 2021-11-22 00:06:56 +01:00
Fernando Sahmkow
8532849439 TextureCache: Simplify blitting of D24S8 formats and fix bugs. 2021-11-22 00:00:01 +01:00
Fernando Sahmkow
d7f4434bd5 VulkanTexturECache: Use reinterpret on D32_S8 formats. 2021-11-21 21:09:49 +01:00
Fernando Sahmkow
b96caf200d HostShaders: Fix D24S8 convertion shaders. 2021-11-21 21:04:04 +01:00
bunnei
d20f91da11
Merge pull request #7395 from Morph1984/resolve-comments
general: Resolve comments in PR #7368
2021-11-21 02:42:24 -08:00
bunnei
5082712b4e
Merge pull request #7389 from ameerj/screenshot-1x
Fix screenshot dimensions when at 1x scale
2021-11-21 02:31:32 -08:00
Fernando Sahmkow
779f4ac72d TextureCache: Eliminate format deduction as full depth conversion has been supported. 2021-11-21 05:37:01 +01:00
Morph
a41c6dafea vk_texture_cache: Mark VkBufferUsageFlags as static constexpr 2021-11-20 21:49:37 -05:00
Morph
095bc88428 vk_blit_image: Consolidate CreatePipelineTargetEx functions 2021-11-20 21:18:37 -05:00
bunnei
ea6fa044f3
Merge pull request #7368 from FernandoS27/vulkan-conv
Fix ART Blit detection regression and add D24S8 <-> RGBA8 conv to Vulkan
2021-11-20 16:51:13 -08:00
ameerj
fe1f06c856 Fix screenshot dimensions when at 1x scale
This was regressed by ART.
Prior to ART, the screenshots were saved at the title's framebuffer resolution. A misunderstanding of the existing logic led to screenshot dimensions becoming dependent on the host render window size.

This changes the behavior to match how it was prior to ART at 1x, with screenshots now always being the title's framebuffer dimensions scaled by the resolution scaling factor.
2021-11-20 17:50:24 -05:00
Fernando Sahmkow
da2fe81905 TextureCache: Refactor and fix linux compiling. 2021-11-20 14:46:19 +01:00
Fernando Sahmkow
4ca6e9a9e2 TextureCache: Assure full conversions on depth/stencil write shaders. 2021-11-20 06:17:01 +01:00
Fernando Sahmkow
0857f82913 TextureCache: Implement buffer copies on Vulkan. 2021-11-20 06:15:29 +01:00
bunnei
c3e1ffc44b
Merge pull request #7294 from vonchenplus/fix_image_update_error_when_width_too_small
Fix image update/download error when width too small
2021-11-19 15:56:27 -08:00
Fernando Sahmkow
e02cff2f69 TextureCache: Add R16G16 to D24S8 converter. 2021-11-20 00:02:12 +01:00
Fernando Sahmkow
1d5e6a51d7 TextureCache: Add B10G11R11 to D24S8 converter. 2021-11-19 23:22:44 +01:00
Fernando Sahmkow
6f896d1fae TextureCache: Further fixes on resolve algorithm. 2021-11-19 23:02:04 +01:00
Feng Chen
4dd85f86a8 Implement convert legacy to generic 2021-11-19 22:53:58 +08:00
bunnei
c45af76ea0
Merge pull request #7357 from Morph1984/s8_uint
video_core: Implement S8_UINT format
2021-11-19 01:16:49 -08:00
Fernando Sahmkow
b805c7bf05 TextureCache: Implement additional D24S8 convertions. 2021-11-19 06:27:44 +01:00
Fernando Sahmkow
0ff228405f TextureCache: force same image format when resolving an image. 2021-11-19 05:46:57 +01:00
Fernando Sahmkow
b130f648d7 TextureCache: Fix regression caused by ART and improve blit detection algorithm to be smarter. 2021-11-19 03:17:54 +01:00
Fernando Sahmkow
2ec7fcecb7 Vulkan: implement D24S8 <-> RGBA8 convertions. 2021-11-19 03:17:02 +01:00
Morph
dc61b7045b renderer_vulkan: Implement S8_UINT stencil format
It should be noted that on Windows, only nvidia gpus support this format natively as of this commit.
2021-11-18 00:05:51 -05:00
ameerj
f7e155d8b9 gl_texture_cache: Round format conversion PBO to next power of 2 2021-11-17 23:49:44 -05:00
Morph
6dd6dc046c renderer_opengl: Implement S8_UINT stencil format 2021-11-17 15:05:07 -05:00
Morph
2348eb41f3 video_core: Add S8_UINT stencil format 2021-11-17 15:04:38 -05:00
Feng Chen
894cc9d876 Fix image update/download error when width too small 2021-11-17 12:21:17 +08:00
ameerj
20ed7ba441 texture_cache: Use pixel format conversion when supported by the runtime 2021-11-16 22:32:46 -05:00
ameerj
50c3d53076 gl_texture_cache: Make FormatConversionPass more generic
This allows the usage of the FormatConversionPass to be applied to more than the previously used BGR conversion scenarios.
2021-11-16 22:32:11 -05:00
ameerj
35ca6274f4 gl_texture_cache: Rename BGRCopyPass to FormatConversionPass 2021-11-16 22:31:58 -05:00
Fernando Sahmkow
1c8a3d8d29 TextureCache: Fix Automatic Anisotropic. 2021-11-17 03:15:08 +01:00