Commit Graph

7176 Commits

Author SHA1 Message Date
Mike Lothian 2348a5bdab Add Vulkan-Utility-Libraries dependency 2024-01-22 01:30:44 +00:00
Fernando Sahmkow 241c64e43b Core: Eliminate core/memory dependancies. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow eda09c091a SMMU: Fix 8Gb layout. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow b206089ea7 Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow 43de47538a SMMU: Simplify and remove old code. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow 355bbea52d SMMU: Add Android compatibility 2024-01-18 21:12:30 -05:00
Fernando Sahmkow ff6cd1c212 GPU-SMMU: Estimate game leak and preallocate device region. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow bb7b14acd5 GPU SMMU: Expand to 34 bits 2024-01-18 21:12:30 -05:00
Fernando Sahmkow f11218a03e SMMU: Implement physical memory mirroring 2024-01-18 21:12:30 -05:00
Fernando Sahmkow 9db159da71 SMMU: Initial adaptation to video_core. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow d0329a2c00 SMMU: Implement backing CPU page protect/unprotect 2024-01-18 21:12:30 -05:00
Fernando Sahmkow eb4f7f35ea NVDRV: Implement sessions and initial implementation of SMMU 2024-01-18 21:12:30 -05:00
Fernando Sahmkow 04b4af6044 Core: Initial implementation of device memory mapping 2024-01-18 21:12:30 -05:00
Liam be2a32b041 renderer_vulkan: recreate swapchain when frame size changes 2024-01-16 16:09:39 -05:00
Viktor Szépe 897ff8a95c Fix one more typo 2024-01-15 23:34:11 +00:00
Viktor Szépe e895ebb546 Fix typos in video_core 2024-01-07 22:44:55 +00:00
liamwhite 8da33ba38a Merge pull request #12437 from ameerj/gl-amd-fixes
OpenGL: Fixes and workaround updates for AMD
2024-01-04 15:53:44 -05:00
Fernando Sahmkow d9b2778306 Vulkan: Only recreate swapchain if the frame is bigger than the swap image. 2023-12-31 21:03:46 +01:00
Fernando Sahmkow a81686eff8 MaxwellDMA: Don't flush the outputs of a dma copy. 2023-12-31 21:00:01 +01:00
Fernando S 64dd40ee88 Merge pull request #12479 from GPUCode/linear-bcn
video_core: Fix buffer_row_length for linear compressed textures
2023-12-30 06:56:08 +01:00
liamwhite aec8115476 Merge pull request #12449 from liamwhite/debug-utils
renderer_vulkan: skip SetObjectNameEXT on unsupported driver
2023-12-26 11:45:39 -05:00
liamwhite fd035bfd90 Merge pull request #12448 from liamwhite/format-assert
renderer_vulkan: demote format assert to error log
2023-12-26 11:45:33 -05:00
liamwhite 8502b07266 Merge pull request #12415 from ameerj/ogl-draw-auto
gl_rasterizer: Implement DrawTransformFeedback macro
2023-12-26 11:45:25 -05:00
GPUCode 1bc4b6c75d video_core: Fix buffer_row_length computation for linear compressed textures 2023-12-26 16:33:03 +02:00
Liam 072c63ec91 renderer_vulkan: skip SetObjectNameEXT on unsupported driver 2023-12-23 11:08:02 -05:00
Liam 188916635a renderer_vulkan: demote format assert to error log 2023-12-23 11:04:02 -05:00
liamwhite 84a1054801 Merge pull request #12412 from ameerj/gl-query-prims
OpenGL: Add GL_PRIMITIVES_GENERATED and GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries
2023-12-22 11:42:05 -05:00
Fernando S d73d8e8471 Merge pull request #12410 from liamwhite/more-mali-null
renderer_vulkan: don't pass null view when nullDescriptor is not supported
2023-12-22 17:40:47 +01:00
Liam a952270b5c shader_recompiler: use float image operations on load/store when required 2023-12-21 14:34:46 -05:00
Ameer J b09ab3540d gl_device: Remove AMD blacklists that are no longer applicable 2023-12-20 18:19:15 -05:00
liamwhite 154009b915 Merge pull request #12414 from jbeich/vk274
externals: update Vulkan-Headers to v1.3.274
2023-12-20 12:46:50 -05:00
liamwhite 3db4ff982c Merge pull request #12400 from ameerj/vk-query-prefix-fix
vk_query_cache: Fix prefix sum max_accumulation_limit logic
2023-12-20 12:46:41 -05:00
Fernando S 18b7ed6453 Merge pull request #12403 from liamwhite/clipdistance
shader_recompiler: use minimal clip distance array
2023-12-20 18:45:20 +01:00
Fernando S 33f38c09aa Merge pull request #12390 from liamwhite/binding-insanity
renderer_vulkan: work around turnip binding bug in a610
2023-12-20 18:44:47 +01:00
Ameer J ecd92c9b2b gl_rasterizer: Less spammy log for unimplemented resets 2023-12-20 11:51:44 -05:00
Ameer J 2fc6f3fcfd gl_rasterizer: Implement DrawTransformFeedback macro 2023-12-19 19:54:57 -05:00
Jan Beich af5d54b6c8 vulkan_common: unbreak build with Vulkan-Headers 1.3.274
src/video_core/vulkan_common/vulkan_wrapper.cpp:293:13: error: enumeration value 'VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR' not handled in switch [-Werror,-Wswitch]
    switch (result) {
            ^~~~~~
2023-12-20 01:12:41 +01:00
Ameer J d5b1a5f27d OpenGL: Add GL_PRIMITIVES_GENERATED and GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries 2023-12-19 17:32:31 -05:00
Ameer J 5fea802712 gl_rasterizer: Silence spammy logs 2023-12-19 17:13:23 -05:00
Ameer J 86b262e42d gl_buffer_cache: Reintroduce NV_vertex_buffer_unified_memory
Workaround Nvidia drivers complaining when a buffer is bound as both a vertex buffer and transform feedback buffer
2023-12-19 17:13:23 -05:00
Liam 6687915b0f renderer_vulkan: don't pass null view when nullDescriptor is not supported 2023-12-19 15:13:10 -05:00
Fernando S 0f928af7ab Merge pull request #12382 from liamwhite/image-limit
renderer_vulkan: allow up to 7 swapchain images
2023-12-19 16:15:40 +01:00
Liam 6611ba122b shader_recompiler: ignore clip distances beyond driver support level 2023-12-18 22:25:14 -05:00
Ameer J 8a2c42c6e8 vk_query_cache: Fix prefix sum max_accumulation_limit logic 2023-12-18 12:37:55 -05:00
liamwhite 4504ee7f28 Revert "video_core: use interval map for page count tracking" 2023-12-17 18:59:49 -05:00
Liam 47429e716c renderer_vulkan: work around turnip binding bug in a610 2023-12-17 15:45:09 -05:00
Liam 273b4b9576 renderer_vulkan: allow up to 7 swapchain images 2023-12-16 18:59:44 -05:00
liamwhite 4611a37b83 Merge pull request #12377 from ameerj/tfb-batch-oopsie
gl_buffer_cache: Fix tfb binding typo
2023-12-16 13:58:06 -05:00
liamwhite 68b1037350 Merge pull request #12345 from liamwhite/a-flock-of-seagulls
renderer_vulkan: cap async presentation frame count
2023-12-16 13:58:00 -05:00
Ameer J ede1dd9d8b gl_buffer_cache: Fix tfb binding typo 2023-12-16 12:48:21 -05:00
Liam eb6a042654 video_core: lock interval map update 2023-12-14 22:10:21 -05:00
Liam 7fa76caf80 video_core: use interval map for page count tracking 2023-12-14 21:54:36 -05:00
Liam 03d73e14a8 renderer_vulkan: bound async presentation queue growth 2023-12-14 15:54:56 -05:00
liamwhite 2c8dc35bf4 Merge pull request #12274 from liamwhite/srgb-nonsense
renderer_vulkan: do not recreate swapchain for srgb
2023-12-08 12:26:13 -05:00
lat9nq c7e0ee60cd codec: Update to use av frame flags
Resolves Clang -Wdeprecated-declarations warning from interlaced_frame
2023-12-05 21:10:38 -05:00
liamwhite a92e0194a2 Merge pull request #12235 from liamwhite/flip-clip
renderer_vulkan: adjust window origin and swizzle independently
2023-12-03 21:59:11 -05:00
Liam 63ceff87b0 texture_cache: fix max_element comparison function 2023-12-03 18:40:19 -05:00
Liam eb10ce6fdd renderer_opengl: remove srgb conversion logic 2023-12-03 17:08:25 -05:00
Liam 8a97178a89 renderer_vulkan: do not recreate swapchain for srgb 2023-12-03 16:43:54 -05:00
liamwhite 46ab4ee5a5 Merge pull request #12094 from ameerj/gl-buffer-cache-batch-vtx
gl_buffer_cache: Batch vertex/tfb buffer binding
2023-12-03 16:27:22 -05:00
liamwhite 8c522bf3a7 Merge pull request #12261 from liamwhite/fruit-company
texture_cache: use pedantic type names
2023-12-02 09:28:43 -05:00
Liam 9014e6783f texture_cache: use pedantic type names 2023-12-01 22:46:33 -05:00
GPUCode 8188d923c8 vk_blit_screen: Use correct format for fxaa renderpass 2023-12-01 22:55:50 +02:00
liamwhite c84e8ce6b7 Merge pull request #12056 from ameerj/opengl-neglect
OpenGL: Implement async downloads in buffer and texture caches
2023-12-01 09:16:56 -05:00
Liam 9d2c18b72d renderer_vulkan: adjust window origin and swizzle independently 2023-11-30 12:33:26 -05:00
Liam 2ccd547309 renderer_vulkan: exclude more qcom drivers from extensions 2023-11-29 21:06:06 -05:00
liamwhite 95ad671ce9 Merge pull request #12194 from liamwhite/fruit-company
video_core: fix mac compile
2023-11-29 12:33:41 -05:00
liamwhite f6c13b4dad Merge pull request #12154 from liamwhite/more-drivers
vulkan_device: add names for more driverID enumeration values
2023-11-29 12:33:34 -05:00
Ameer J a9e011c9c2 Merge branch 'master' into ssbo-align 2023-11-26 21:08:53 -05:00
Liam bd250e303f video_core: fix mac compile 2023-11-26 20:04:06 -05:00
Fernando S 896ae72dbf Merge pull request #11535 from GPUCode/upload_cmdbuf
renderer_vulkan: Introduce separate cmd buffer for uploads
2023-11-26 18:33:05 +01:00
liamwhite 1474bd4eff Merge pull request #12153 from liamwhite/deck2
renderer_vulkan: exclude steam deck oled from force max clock setting
2023-11-25 10:17:18 -05:00
liamwhite f50189075b Merge pull request #12110 from liamwhite/mali-nullview
vk_texture_cache: add workaround for nullDescriptor on Mali
2023-11-25 10:17:00 -05:00
Liam a0ed6c0653 vulkan_device: add names for more driverID enumeration values 2023-11-24 12:00:41 -05:00
Liam 86d9651d5d renderer_vulkan: exclude steam deck oled from force max clock setting 2023-11-24 11:38:39 -05:00
Liam 1e62aaf305 query_cache: demote report synced unreachable to assert 2023-11-23 09:33:02 -05:00
liamwhite 7783363cfc Merge pull request #12045 from liamwhite/codec-refactor
video_core: refactor video frame and packet parsing
2023-11-21 09:19:26 -05:00
Liam 3efaed605c vk_texture_cache: add workaround for nullDescriptor on Mali 2023-11-20 20:09:12 -05:00
Ameer J 9c3cc36abc gl_buffer_cache: Batch vertex/tfb buffer binding 2023-11-19 17:17:16 -05:00
Liam a41e57d968 renderer_vulkan: ignore viewport stores on non-supporting drivers 2023-11-19 11:27:12 -05:00
liamwhite d0d6abbc21 Merge pull request #12081 from FernandoS27/check-out-on-your-broke-crypto-friends
Vulkan: Be more generous with pipeline workers for Android
2023-11-19 11:16:19 -05:00
liamwhite aa609d5dad Merge pull request #12036 from FernandoS27/you-should-have-more-than-one-towel
Query Cache: Disable write syncing on Android
2023-11-19 09:52:22 -05:00
liamwhite 34eac6afde Merge pull request #12068 from ameerj/glasm-xfb-fixes
gl_graphics_pipeline: GLASM: Fix transform feedback attribs buffer mode
2023-11-19 09:49:38 -05:00
Fernando Sahmkow c6330ca05f Vulkan: Be more generous with pipeline workers for Android 2023-11-19 14:54:15 +01:00
Fernando Sahmkow 6bf827f4e9 Buffer Cache: Eliminate clears on Indirect buffers 2023-11-18 19:26:14 +01:00
Ameer J abd400e04f shader_recompiler: Fix spelling of "derivate" (#12067) 2023-11-18 13:39:47 +01:00
Ameer J a3ba9c64d7 gl_graphics_pipeline: GLASM: Fix transform feedback attribs buffer mode
GL_SEPARATE_ATTRIBS only applies when multiple buffers are being used, else GL_INTERLEAVED_ATTRIBS handles the cases for a single buffer with potentially more than one attribute
2023-11-18 00:44:05 -05:00
Liam 767b024755 video_core: refactor video frame and packet parsing 2023-11-16 17:01:38 -05:00
Fernando Sahmkow dbb9e0c5fe Query Cache: Disable write syncing on Android 2023-11-15 02:23:39 +01:00
Fernando Sahmkow 1918f97dea Vulkan: Add a final barrier to the upload command buffer 2023-11-12 20:58:30 +01:00
GPUCode 4b853ff5cf renderer_vulkan: Introduce separate cmd buffer for uploads 2023-11-12 20:27:39 +01:00
Fernando Sahmkow ce3c3c0038 Memory: Fix invalidation handling from the CPU/Services 2023-11-12 14:10:40 +01:00
Fernando Sahmkow b9087d53d5 Revert "renderer_vulkan: add locks to avoid scheduler flushes from CPU"
This reverts commit 1bd99c1d65.
2023-11-10 15:40:48 +01:00
liamwhite 694cbdefec Merge pull request #11896 from liamwhite/crop
renderer_vulkan: fix cropping for presentation
2023-11-06 12:08:03 -05:00
liamwhite 9c1b9171ae renderer_vulkan: render on bottom of surface clip when flipped (#11894) 2023-11-05 21:47:35 +01:00
Liam 6f74c988ba renderer_null: fix 2023-11-03 20:54:38 -04:00
Liam fe9cd5c92f renderer_vulkan: minimize transform feedback support log 2023-11-01 20:47:08 -04:00
Ameer J b49639e786 shader_recompiler: Align SSBO offsets in GlobalMemory functions 2023-10-31 20:14:18 -04:00
Ameer J f4848349b5 buffer_cache: Apply storage buffer alignment only to the offset 2023-10-31 20:10:54 -04:00
Ameer J e538b932de shader_recompiler: Align SSBO offsets to meet host requirements
Co-Authored-By: Billy Laws <blaws05@gmail.com>
2023-10-31 20:10:54 -04:00
liamwhite 41a85e1974 Merge pull request #11910 from liamwhite/surface-lost-on-creation
renderer_vulkan: ensure exception on surface loss
2023-10-30 09:59:37 -04:00
liamwhite 6bbe96f99f Merge pull request #11893 from liamwhite/swizzle
renderer_vulkan: fix viewport swizzle dirty state tracking
2023-10-29 19:46:20 -04:00
Liam 1cbde13ad5 renderer_vulkan: ensure exception on surface loss 2023-10-29 15:31:05 -04:00
liamwhite 209224c01b Merge pull request #11862 from liamwhite/pascal-robust
Manually robust on Pascal and earlier
2023-10-29 11:25:15 -04:00
liamwhite 257dfeaccf Merge pull request #11859 from Kelebek1/compute_findbuffer
Add missing loop around compute FindBuffer calls
2023-10-29 11:25:09 -04:00
Liam b89f19b0f3 renderer_vulkan: fix FSR cropping 2023-10-28 11:43:00 -04:00
Liam 00d53a6ca9 renderer_vulkan: fix cropping for presentation 2023-10-28 00:05:06 -04:00
Liam 8cd91dae6d renderer_vulkan: fix viewport swizzle dirty state tracking 2023-10-27 14:23:47 -04:00
Liam bd45923351 vulkan_common: use highest API version 2023-10-24 17:04:17 -04:00
Kelebek1 5d26c3791b Add missing dowhile loops around FindBuffer calls 2023-10-23 15:08:56 +01:00
Liam 64717fdf1d Manually robust on Pascal and earlier 2023-10-23 09:08:57 -04:00
liamwhite b34364e673 Merge pull request #11789 from Kelebek1/spirv_shift_right
Manually robust on Maxwell and earlier
2023-10-21 18:21:53 -04:00
liamwhite 7f8be72d79 Merge pull request #11806 from liamwhite/needs-more-locking
renderer_vulkan: add locks to avoid scheduler flushes from CPU
2023-10-20 10:26:03 -04:00
Kelebek1 90d99fbd00 Manually robust on Maxwell and earlier 2023-10-19 19:54:31 +01:00
liamwhite d2a1535588 Merge pull request #11810 from liamwhite/clang-17
general: fix build failure on clang 17
2023-10-18 19:30:29 -04:00
liamwhite 67c3d2abb5 Merge pull request #11795 from Squall-Leonhart/D32FToOther
[Vulkan]Implement missing copy formats for D32, ARGB8_SRGB and BGRA8_Unorm/SRGB
2023-10-18 09:22:14 -04:00
Liam 181e5dbc5b general: fix build failure on clang 17 2023-10-17 22:44:21 -04:00
liamwhite 68bf6fb457 Merge pull request #11747 from Kelebek1/image_alias_sample_names
Small things
2023-10-17 11:48:57 -04:00
liamwhite 97c9b2eda6 Merge pull request #11349 from vonchenplus/buffer_cache_crash
video_core: Fix moltenvk crash on macos
2023-10-17 11:48:44 -04:00
Liam 1bd99c1d65 renderer_vulkan: add locks to avoid scheduler flushes from CPU 2023-10-17 10:00:25 -04:00
Fernando S 30d96be28d Merge pull request #11788 from Squall-Leonhart/IFREMOVED
[crash fix]brings back the removed if  statement in util.cpp and adds the  num_level test to it like previous discontinued PR
2023-10-17 14:36:36 +02:00
Squall-Leonhart 3785a469c0 Changes based on hardware tests
Removes unnecessary d32f to bgra shader and blit functions,
update vk_texture_cache to use abgr shader for d32f to BGRA formats
updates  abgr to d32f shader to comply with hardware tests
2023-10-17 02:42:40 +11:00
Squall Leonhart 14d6c9d442 Make Clang happy. 2023-10-17 00:26:19 +11:00
Squall Leonhart 6f7ff1d2a7 Added missing BuildShader line
Adds `convert_abgr8_to_d32f_frag(BuildShader(device, CONVERT_ABGR8_TO_D32F_FRAG_SPV)),`
2023-10-17 00:15:31 +11:00
Squall Leonhart 0fff99d0eb added missing trailing line. 2023-10-16 06:07:26 +11:00
Squall Leonhart f137a4aa8a meant to add the unorms as well 2023-10-16 04:29:24 +11:00
Squall-Leonhart 9e0b778d11 use texelfetch instead of texturelod 2023-10-16 04:20:45 +11:00
Squall Leonhart 81627a6a51 appease the format gods 2023-10-16 03:24:44 +11:00
Squall-Leonhart 69ab83ae87 Another missing copy connected to Bravely Default II
adds blit_image_helper.ConvertABGR8ToD32F and fragment shader for performing ABGR and BGRA to D32F copies
2023-10-16 03:17:53 +11:00
Squall-Leonhart 51bb940261 missed this line when editing the copypasta 2023-10-15 20:58:50 +11:00
Squall-Leonhart 41ad912ba7 moved line to appease the format gods 2023-10-15 20:54:25 +11:00
Squall-Leonhart e84147e2fa Implement missing formats for Bravely Default 2 2023-10-15 20:43:48 +11:00
Squall Leonhart eecd48f2ee brings back the removed If statement and adds the num_level test
This resolves the out of bounds read/writes in the linear swizzler, it brings back the scaled TOTK Recall bug however, pending further work in the block size calculation.

Recall is not glitched in the Dynamic FPS resolution mod to the degree that it is in the native yuzu scaler, this can be a workaround for the time being.


The recall effect is constructed from multiple 320x180 texture slices, it breaking may have a similar origin to https://github.com/Ryujinx/Ryujinx/pull/5640

but it may also be connected to the other deficiencies identified in the Yuzu size calculations, such as no apparent implementation of slice testing for end of slce depth as opposed to full aligned size as implemented in https://github.com/Ryujinx/Ryujinx/pull/5220
2023-10-15 02:09:28 +11:00
Valeri 9d3cce87a4 host1x/codecs: enable CUDA on Linux 2023-10-14 17:35:45 +03:00
Kelebek1 d7ba2c7064 Implement vertex array first and subsequent draws 2023-10-14 12:09:35 +01:00
liamwhite 38f60c74eb Merge pull request #11751 from Kelebek1/transition_msaa_image
Transition MSAA images to general layout without uploading data
2023-10-12 11:17:20 -04:00
Kelebek1 5fa3d987ad Transition MSAA images to general layout without uploading data 2023-10-11 23:27:23 +01:00
liamwhite 43de99b6e2 Merge pull request #11744 from Kelebek1/no_res_no_rescaled
Do not set rescaled flag when rescaling is disabled
2023-10-11 17:54:59 -04:00
Kelebek1 b5576a3c9a Get out of render pass before query barriers, fix image names with samples > 1, remove image alias bit 2023-10-11 17:15:35 +01:00
liamwhite 5c567dbc68 Merge pull request #11734 from Kelebek1/device_local_buffer_alloc
Do not allocate DeviceLocal buffers as mapped
2023-10-11 09:24:28 -04:00
liamwhite 99958bb1d0 Merge pull request #11683 from Kelebek1/do_not_sync_on_written_buffer
Do not double sync written buffers, move mark written to binding
2023-10-11 09:24:05 -04:00
Fernando S 0cc1d8135f Merge pull request #11743 from Squall-Leonhart/IFREMOVED
Fix mistaken usage of info.block instead of level_info.block
2023-10-11 11:56:47 +02:00
Kelebek1 31c39fffc2 Do not set rescaled flag when rescaling is disabled 2023-10-11 10:29:19 +01:00
Squall-Leonhart ce3e98cf48 Fix mistaken usage of info.block instead of level_info.block
Fixed an error on my part, in the last change I had mistakenly passed unadjusted block info into FullUploadSwizzles and UnswizzleImage

Revert (my mistaken changing of) the construction of SwizzleParameters in UnswizzleImage and FullUploadSwizzles to use level_info.block instead of info.block. This ensures that the block information used in the swizzling process is correctly adjusted for each mip level.
2023-10-11 19:12:33 +11:00
liamwhite 22e805e43f Merge pull request #11534 from Squall-Leonhart/IFREMOVED
Partial revert of #10433 (Texture Cache Util: Fix block depth adjustment on slices)
2023-10-10 12:44:48 -04:00
Kelebek1 2fe13a4d53 Not not allocate DeviceLocal buffers as mapped 2023-10-10 12:49:07 +01:00
Squall Leonhart ca3126e68d add Z32, FLOAT, UINT, UINT, UINT, LINEAR to format lookup table
Should fix and close #11711
2023-10-09 02:13:17 +11:00
liamwhite cfb7500e29 Merge pull request #11656 from liamwhite/recreate-surface-automatically
vk_present_manager: recreate surface on any surface loss
2023-10-07 12:49:54 -04:00
liamwhite 55c251a65e Merge pull request #11677 from Squall-Leonhart/D32FTOABGR8
Implements D32_Float to A8B8G8R8_UNORM format copy
2023-10-07 12:49:48 -04:00
liamwhite ce6e0114ba Merge pull request #11630 from Kelebek1/clear_stencil_requires_depth_test
Enable depth test on depthstencil clear path
2023-10-07 12:49:37 -04:00
liamwhite b932f304ad Merge pull request #11544 from Kelebek1/reduce_stream_buffer_renderdoc
Allow GPUs without rebar to open multiple RenderDoc captures
2023-10-07 12:49:19 -04:00
liamwhite d14f8815b1 Merge pull request #11688 from Kelebek1/x8d42
Implement X8_D24 pixel format
2023-10-07 10:55:14 -04:00
liamwhite bab15ef979 Merge pull request #11684 from Kelebek1/disable_push_descriptor_maxwell
Disable push descriptor for Pascal and older nVidia architectures
2023-10-07 10:54:52 -04:00
Squall Leonhart c3658018b1 update shader to confirmed format copy 2023-10-07 18:28:09 +11:00
Kelebek1 a1df96e84d Allow GPUs without rebar to open multiple RenderDoc captures 2023-10-06 07:52:06 +01:00
Kelebek1 5063305487 Implement X8_D24 format 2023-10-06 00:58:30 +01:00
Kelebek1 39bcdb4fe4 Rework nvidia architecture detection, disable push descriptor for Pascal and older 2023-10-05 03:13:42 +01:00
Kelebek1 294ffa29cc Mark a buffer GPU modified after the buffers are confirmed, do not double synch them 2023-10-05 00:19:11 +01:00
Squall-Leonhart 15a624a6df lets not convert depth to greyscale since this makes the exhaust and tire smoke light gray/white
tiresmoke should be a darker gray.
2023-10-05 03:14:53 +11:00
Squall-Leonhart 680081ea94 Fix CI Formatting check 2023-10-04 19:12:08 +11:00
Squall-Leonhart ec6ba091cf Implements D32_Float to A8B8G8R8_UNORM format copy
Corrects some visual issues in games such as Disney SpeedStorm
2023-10-04 19:07:05 +11:00
Liam 79e055318c vk_present_manager: recreate surface on any surface loss 2023-10-02 19:07:18 -04:00
Liam 445d504f94 ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
Fernando Sahmkow ef38379737 Query Cache: Fix memory leak. 2023-10-01 11:47:14 +02:00
Fernando S dcf6de7bdf Merge pull request #11622 from liamwhite/qcr-reg1
renderer_vulkan: fix query cache for homebrew
2023-09-29 06:01:18 +02:00
Kelebek1 dd2d450e3f Enable depth test on stencil clear path 2023-09-28 21:19:51 +01:00
liamwhite da04fbdc2e Merge pull request #11402 from FernandoS27/depth-bias-control
Vulkan: Implement Depth Bias Control
2023-09-28 09:35:37 -04:00
Liam cb11232753 renderer_vulkan: fix query cache for homebrew 2023-09-27 19:11:47 -04:00
GPUCode 30c67e5bb0 host_shaders: More proper handling of x2 MSAA copies 2023-09-25 09:20:32 -04:00
GPUCode 5529df01e3 renderer_vulkan: Implement MSAA copies 2023-09-25 09:20:32 -04:00
liamwhite 8936ff8f89 Merge pull request #11225 from FernandoS27/no-laxatives-in-santas-cookies
Y.F.C: Rework the Query Cache.
2023-09-25 09:18:29 -04:00
liamwhite dab6876db5 Merge pull request #11562 from GPUCode/srgb-madness
vk_texture_cache: Limit srgb block to transcoding only
2023-09-24 10:50:28 -04:00
liamwhite 70126192aa Merge pull request #11165 from Morph1984/ds_blit
vulkan_device: Return true if either depth/stencil format supports blit
2023-09-24 10:50:04 -04:00
Fernando Sahmkow e0477e40bd Query Cache: Fix Prefix Sums 2023-09-23 23:05:30 +02:00
Fernando Sahmkow 509ebe61c6 Query Cache: Fix behavior in Normal Accuracy 2023-09-23 23:05:30 +02:00
Fernando Sahmkow 6b0a777d19 Query Cache: Simplify Prefix Sum compute shader 2023-09-23 23:05:30 +02:00
Fernando Sahmkow c2880497ce Query Cache: Implement host side sample counting. 2023-09-23 23:05:30 +02:00
Fernando Sahmkow 170c82ae7f Query Cache: Fix guest side sample counting 2023-09-23 23:05:30 +02:00
Fernando Sahmkow 93cd3d8efd Query Cache: address issues 2023-09-23 23:05:30 +02:00
Fernando Sahmkow a8fe81b3be QueryCache: Implement dependant queries. 2023-09-23 23:05:29 +02:00
Fernando Sahmkow 2221256e90 Macro HLE: Add DrawIndirectByteCount 2023-09-23 23:05:29 +02:00
Fernando Sahmkow 5ea12207f3 Query Cachge: Fully rework Vulkan's query cache 2023-09-23 23:05:29 +02:00
Fernando Sahmkow 7f78d844ab Query Cache: Setup Base rework 2023-09-23 23:05:29 +02:00
liamwhite 8216a30e35 Merge pull request #11557 from GPUCode/brr-format
renderer_vulkan: Correct component order for A4B4G4R4_UNORM
2023-09-22 09:56:04 -04:00
Kelebek1 ac61186061 Fix DMA engine register offsets 2023-09-21 20:21:00 +01:00
GPUCode 20994b9e95 vk_texture_cache: Limit srgb block to transcoding only 2023-09-21 21:46:35 +03:00
GPUCode 400b9449ac renderer_vulkan: Correct component order for A4B4G4R4_UNORM 2023-09-21 15:33:44 +03:00
Squall-Leonhart 55e400acd9 Reuse part of my previous idea to to use num_levels to check within AdjustMipBlockSize
The partial revert was not enough for Tsukihime, this might do the trick
2023-09-20 03:27:13 +10:00
liamwhite 8f2351603d Merge pull request #11258 from Squall-Leonhart/Z16_Assert_Fix
Fix a logged assert in the format lookup table for Z16
2023-09-18 09:31:05 -04:00
Squall Leonhart 0ec7d7ec28 Partial revert of #10433
The If block in this change was causing some 2D textures to be treated as if their mip 0 was a 3D Slice, this could be ascertained as the same texture viewed from different distances would render fine, but then close up would look like a decoding failure.

It also resulted in some 3D ASTC textures not being scaled appropriate leading to broken graphical effects such as the jagged TOTK recall animation being a circle, as the If block was only accepting the image based on its original info without any adjustments applied.
2023-09-18 23:28:53 +10:00
Charles Lombardo a8e3f2652d android: Use 1 worker for shader compilation for all devices 2023-09-16 21:38:28 -04:00
Fernando Sahmkow dcf5c4bec0 Vulkan: add temporary workaround for AMDVLK 2023-09-16 11:59:20 -04:00
Fernando Sahmkow 6dcc62ae86 Vulkan: Implement Depth Bias Control 2023-09-16 11:58:55 -04:00
Kelebek1 517702f3f8 Look for the most recently modified image for present 2023-09-11 03:11:29 +01:00
liamwhite 4d34ba4d9d Merge pull request #11470 from GPUCode/bundle-vvl
android: Add option to bundle validation layer
2023-09-10 13:40:18 -04:00
GPUCode 065305c627 vk_buffer_cache: Respect max vertex bindings in BindVertexBuffers (#11471) 2023-09-10 02:19:45 +02:00
GPUCode 75213f8c49 renderer_vulkan: Remove debug report
* VVL has implemented the more modern alternative, thus we don't need to support it anymore
2023-09-08 23:28:46 +03:00
Feng Chen 666bdc1125 video_core: Fix d24r8/s8d24 convert shader build error in moltenvk 2023-09-07 18:01:36 +08:00
Feng Chen a356e6b8d5 video_core: Add missing scissor update when viewport scale offset disable 2023-09-07 18:01:30 +08:00
liamwhite 230e40a2d6 Merge pull request #11383 from FernandoS27/are-you-a-wabbit
Fix regressions that damaged compute indirect & use reinterpret for copies with different byteblocksizes
2023-09-02 14:42:42 -04:00
liamwhite a2971a3540 Merge pull request #11393 from FernandoS27/bayo-got-busted-up
Maxwell3D: Improve Index buffer size estimation.
2023-09-02 14:42:28 -04:00
Danila Malyutin beec962363 Use initial_frame to check interlaced flag
If final frame was transferred from GPU, it won't carry the props.

Fixes #11089
2023-08-28 00:48:53 +04:00
Fernando Sahmkow a571250875 Maxwell3D: Improve Index buffer size estimation. 2023-08-27 22:14:37 +02:00
Fernando S bbbe7c3b11 Merge pull request #11389 from FernandoS27/discard-fix
Buffer Cache: fix discard writes.
2023-08-27 04:26:59 +02:00
Fernando Sahmkow 94dd857cda VideoCore: Implement DispatchIndirect 2023-08-27 04:26:22 +02:00
Fernando Sahmkow 8fcab24644 Shader Recompiler: Auto stub special registers and dump pipelines on exception. 2023-08-27 03:47:04 +02:00
Fernando Sahmkow 47d921e04d Buffer Cache: fix discard writes. 2023-08-27 03:45:43 +02:00
liamwhite 0560b267b3 Merge pull request #11317 from Kelebek1/macro_dumps
Mark decompiled macros on dump, dump shaders after translation
2023-08-26 19:14:25 -04:00
Fernando Sahmkow 8208becc49 DMA Pusher: Fix regression caused by guest memory optimizations 2023-08-26 22:00:43 +02:00
Kelebek1 334a0eaa9c Mark decompiled macros as decompiled on dump, dump shaders after translation 2023-08-25 21:47:47 -04:00
Feng Chen ce0c210173 video_core: set vertex buffer num to 16, because mvk have when using more than 16 2023-08-23 23:22:55 +08:00
liamwhite ed224b8712 Merge pull request #11302 from vonchenplus/vulkan_macos
Add macos moltenvk bundle, Add copy moltevk dylib script
2023-08-22 13:10:26 -04:00
Feng Chen ec643e7e9d Add macos moltenvk bundle, Add copy moltevk dylib script 2023-08-22 10:22:28 +08:00
liamwhite 62fbba8575 Merge pull request #11149 from ameerj/astc-perf-prod
host_shaders: ASTC compute shader optimizations
2023-08-21 16:08:51 -04:00
Kelebek1 5d1961ad67 Masked depthstencil clears 2023-08-19 03:29:46 +01:00
liamwhite 1f584c14e7 Merge pull request #11278 from Kelebek1/dma_sync
Mark accelerated DMA destination buffers and images as GPU-modified
2023-08-18 09:12:27 -04:00
Feng Chen c8c4aa6ef7 video_core: Fix vulkan assert error 2023-08-18 14:40:11 +08:00
liamwhite 71bb69c1f4 Merge pull request #11282 from ameerj/glasm-xfb
gl_graphics_pipeline: GLASM: Fix transform feedback with multiple buffers
2023-08-14 09:19:20 -04:00
liamwhite ade4a97659 Merge pull request #11283 from ameerj/glasm-pipeline-detection
gl_graphics_pipeline: Fix GLASM storage buffer detection
2023-08-14 09:19:10 -04:00
liamwhite b3c9497bc2 Merge pull request #11263 from liamwhite/my-feature-branch
vulkan_device: disable features associated with unloaded extensions
2023-08-14 09:18:47 -04:00
Ameer J 01638cfe35 gl_texture_cache: Enable async downloads 2023-08-13 23:17:59 -05:00
Ameer J b260471154 gl_buffer_cache: Enable async downloads 2023-08-13 23:17:54 -05:00
Ameer J dc665a7024 gl_staging_buffer_pool: Refactor allocation variables into a struct 2023-08-13 23:17:47 -05:00
Ameer J c6aafc55ab gl_graphics_pipeline: Fix GLASM storage buffer detection 2023-08-13 17:06:45 -04:00
Ameer J 4e1813a2c3 gl_graphics_pipeline: GLASM: Fix transform feedback with multiple buffers 2023-08-13 16:50:01 -04:00
Kelebek1 5de54129b3 Mark accelerted DMA destination buffers and images as GPU-modified 2023-08-13 02:22:39 +01:00
Liam 7b579a7708 vulkan_device: disable features associated with unloaded extensions 2023-08-11 14:54:12 -04:00
Squall-Leonhart e7602b1012 Needed to make this an extra case so it didnt also start asserting in BOTW.
Thanks Liam
2023-08-11 08:45:15 +10:00
Squall Leonhart 443f35e5db Fix an assert in the format lookup table fir Z16
Came across this while looking into Asterix and Obelix XXL glitching
2023-08-11 08:18:54 +10:00
Liam 3e4076c2ac general: fix apple clang build 2023-08-09 22:38:37 -04:00
Ameer J 4c1cf94f3a flatten color_values 2023-08-09 18:45:52 -04:00
Ameer J 18328533d0 flatten encoding_values 2023-08-09 18:38:37 -04:00
Ameer J 6077bac118 flatten result vector 2023-08-09 18:34:57 -04:00
Ameer J 433d7cbd52 GetUnquantizedWeightVector 2023-08-09 17:45:39 -04:00
liamwhite c918db9514 Merge pull request #11216 from lat9nq/no-mesa-astc
gl_device: Detect Mesa to disable their ASTC
2023-08-07 11:34:22 -04:00
Ameer J 903280955a Revert "HACK: Avoid swizzling and reuploading ASTC image every frame"
This reverts commit 476ac42b61.
2023-08-06 14:55:05 -04:00
Ameer J 476ac42b61 HACK: Avoid swizzling and reuploading ASTC image every frame 2023-08-06 14:54:58 -04:00
Ameer J 3f114d8e5e Compute Replicate 2023-08-06 14:54:58 -04:00
Ameer J 166a17f4ba minor 2023-08-06 14:54:58 -04:00
Ameer J 4c40c8be29 undo uint 2023-08-06 14:54:58 -04:00
Ameer J b57854fb5f Revert "vulkan dims specialization"
This reverts commit e6243058f2269bd79ac8479d58e55feec2611e9d.
2023-08-06 14:54:58 -04:00
ameerj 9c5c5cbf06 vulkan dims specialization 2023-08-06 14:54:58 -04:00
Ameer J 790010da61 small_block opt 2023-08-06 14:54:58 -04:00
Ameer J cc6abe21ea remove TexelWeightParams 2023-08-06 14:54:57 -04:00
Ameer J 9085d26036 error/void extent funcs 2023-08-06 14:54:57 -04:00
Ameer J 827cb40765 more packing 2023-08-06 14:54:57 -04:00
Ameer J 20b7b4c2b7 Revert "uint result index"
This reverts commit 0e978786b5a8e7382005d8b1e16cfa12f3eeb775.
2023-08-06 14:54:57 -04:00
Ameer J aa28865ff7 Revert "bfe instead of mod"
This reverts commit 86006a3b09e8a8c17d2ade61be76736a79e3f58a.
2023-08-06 14:54:57 -04:00
Ameer J 74d905d5cd Revert "global endpoints"
This reverts commit d8f5bfd1df2b7469ef6abcee182aa110602d1751.
2023-08-06 14:54:57 -04:00
Ameer J 97810e725b global endpoints 2023-08-06 14:54:57 -04:00
Ameer J a08e31d053 bfe instead of mod 2023-08-06 14:54:57 -04:00
Ameer J 48862223ae uint result index 2023-08-06 14:54:57 -04:00
Ameer J d14b1929bc amd opts 2023-08-06 14:54:57 -04:00
Ameer J 6678ade989 gl 2023-08-06 14:54:57 -04:00
Ameer J 950680f29f const, pack result_vector and replicate tables,
undo amd opts
2023-08-06 14:54:57 -04:00
Ameer J dc851097e6 minor redundancy cleanup 2023-08-06 14:54:57 -04:00
Ameer J aa1ab95ea3 extractbits robustness 2023-08-06 14:54:57 -04:00
Ameer J cf252bb6d3 reuse vectors memory 2023-08-06 14:54:57 -04:00
Ameer J 2dcddf8fb2 EncodingData pack 2023-08-06 14:54:57 -04:00
Ameer J 81f838f0fd flattening 2023-08-06 14:54:57 -04:00
Ameer J 42e19b3833 weights refactor 2023-08-06 14:54:57 -04:00
Ameer J de6bc91933 params.max_weight 2023-08-06 14:54:57 -04:00
Ameer J e582e0032c skip bits 2023-08-06 14:54:57 -04:00
Ameer J 96261ab592 restrict 2023-08-06 14:54:57 -04:00
lat9nq f34bc9cc98 gl_device: Filter more specifically for slow ASTC
Adds a check to find if the renderer is Intel DG (i.e. DG2).

gl_device: Detect Mesa to disable their ASTC

In our testing, our own ASTC decoder has shown itself to perform faster
than the included one from the driver. Disable theirs when Mesa is
detected.

Mesa detection depends on the vendor string. Some drivers never appear
outside of *nix contexts, so only check those in the *nix context.

gl_device: Internalize Intel DG detection
2023-08-05 15:19:16 -04:00
liamwhite ba751d2200 Merge pull request #11212 from Kelebek1/shader_stuff
Fix various misc pipeline/shader things
2023-08-05 12:58:39 -04:00
Kelebek1 770130b6c2 Fix shader dumps with nvdisasm
skip fragment shaders when rasterizer is disabled
initialize env_ptrs
2023-08-03 15:30:27 +01:00
Ameer J 09cb3bf896 vulkan_device: Fix subgroup_size_control detection on Vulkan 1.3 2023-08-02 20:45:03 -04:00
Ameer J 7f86685948 vulkan_device: Fix VK_EXT_subgroup_size_control detection 2023-08-02 19:25:14 -04:00
liamwhite cf4994e81e Merge pull request #11202 from abouvier/vulkan-config
vulkan: centralize config
2023-08-02 14:26:03 -04:00
liamwhite 28b236b988 Merge pull request #10839 from lat9nq/pgc-plus
general: Reimplement per-game configurations
2023-08-02 14:25:52 -04:00
Liam da8c1cfbdd vulkan_device: disable EDS3 blending on all AMD drivers 2023-08-01 20:46:05 -04:00
Alexandre Bouvier 9a86e4e431 vulkan: centralize config 2023-08-02 00:05:14 +02:00
Morph cc8aba1380 vulkan_device: Test depth stencil blit support by format 2023-07-31 19:14:20 -04:00
liamwhite 0bcd04d9a3 Merge pull request #11188 from abouvier/vma-fix
vma: enable options everywhere
2023-07-31 15:28:35 -04:00
liamwhite 5bb1371404 Merge pull request #11169 from GPUCode/desc-stuff
vk_descriptor_pool: Disallow descriptor set free
2023-07-31 09:11:19 -04:00
Alexandre Bouvier f663418ff5 vma: enable options everywhere 2023-07-31 13:01:21 +02:00
Moonlacer 00ba53057f Formatting fix 2023-07-30 23:02:07 -05:00
Moonlacer 4aa1ebb802 Match log warning 2023-07-30 22:50:22 -05:00
Moonlacer 699ab3050c Formatting fix 2023-07-30 04:29:51 -05:00
Moonlacer 30a5e8e165 Address feedback and change log warning 2023-07-30 04:01:29 -05:00
Moonlacer 3ca86ca6b2 Revert "Revert "Blacklist EDS3 blending from new AMD drivers"" 2023-07-30 00:21:51 -05:00
GPUCode 25bc2dbedb vk_descriptor_pool: Disallow descriptor set free 2023-07-27 18:08:56 +03:00
Morph a8f6941fd6 vulkan_device: Return true if either depth/stencil format supports blit
On devices that don't support D24S8 but supports D32S8, this should still return true if D32S8 supports src and dst blit
2023-07-26 20:21:37 -04:00
Moonlacer 9d21ddd2c1 Revert "Blacklist EDS3 blending from new AMD drivers" 2023-07-26 15:02:48 -05:00
liamwhite a28a0c47f8 Merge pull request #10990 from comex/ubsan
Fixes and workarounds to make UBSan happier on macOS
2023-07-26 10:33:28 -04:00
liamwhite ddb55725a1 Merge pull request #11098 from GPUCode/texel-buffers
buffer_cache: Increase number of texture buffers
2023-07-22 11:17:27 -04:00
lat9nq ed14cd8748 settings,opengl,yuzu-qt: Fix AA, Filter maximums
The new enum macros don't support setting values directly.
For LastAA and LastFilter, this means we need a simpler approach to loop
around the toggle in the frontend...
2023-07-21 10:56:55 -04:00
lat9nq 78f92086ca settings,general: Rename non-confirming enums 2023-07-21 10:56:54 -04:00
lat9nq 4a5f3e4733 configure_graphics_advance: Generate UI at runtime
We can iterate through the AdvancedGraphics settings and generate the UI
during runtime. This doesn't help runtime efficiency, but it helps a ton
in reducing the amount of work a developer needs in order to add a new
setting.
2023-07-21 10:56:07 -04:00
lat9nq fc30b04714 settings,video_core: Consolidate ASTC decoding options
Just puts them all neatly into one place.
2023-07-21 10:56:07 -04:00
lat9nq aa21a2ea3c vk_buffer_cache: Format 2023-07-18 19:56:20 -04:00
lat9nq 30e4e8c2f4 general: Silence -Wshadow{,-uncaptured-local} warnings
These occur in the latest commits in LLVM Clang.
2023-07-18 19:31:35 -04:00
GPUCode 7e9f75453f buffer_cache: Increase number of texture buffers 2023-07-15 23:09:58 +03:00
comex 85d77f636c Fixes and workarounds to make UBSan happier on macOS
There are still some other issues not addressed here, but it's a start.

Workarounds for false-positive reports:

- `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`,
  because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp)
  of how big it thinks objects can be, specifically when dealing with
  offset-to-top values used with multiple inheritance.  Hopefully this
  doesn't have a performance impact.

- `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks
  is UB even though it at least arguably isn't.  See the link in the
  comment for more information.

Fixes for correct reports:

- `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to
  avoid UB from pointer overflow (when pointer arithmetic wraps around
  the address space).

- `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`;
  avoid calling methods on it in this case.  (The existing code returns
  a garbage reference to a field, which is then passed into
  `LoadWatchpointArray`, and apparently it's never used, so it's
  harmless in practice but still triggers UBSan.)

- `KAutoObject::Close`: This function calls `this->Destroy()`, which
  overwrites the beginning of the object with junk (specifically a free
  list pointer).  Then it calls `this->UnregisterWithKernel()`.  UBSan
  complains about a type mismatch because the vtable has been
  overwritten, and I believe this is indeed UB.  `UnregisterWithKernel`
  also loads `m_kernel` from the 'freed' object, which seems to be
  technically safe (the overwriting doesn't extend as far as that
  field), but seems dubious.  Switch to a `static` method and load
  `m_kernel` in advance.
2023-07-15 12:00:28 -07:00
Alexandre Bouvier dad3ef76a2 cmake: allow using system VMA library 2023-07-12 04:51:45 +02:00
bunnei ab18aeb500 Merge pull request #10996 from Kelebek1/readblock_optimisation
Use spans over guest memory where possible instead of copying data
2023-07-10 18:54:19 -07:00
liamwhite 5688b55070 Merge pull request #10994 from liamwhite/ue4-preferred
vulkan_common: use device local preferred for image memory
2023-07-05 09:23:56 -04:00
liamwhite 81a137aa71 Merge pull request #11012 from gidoly/metroid-fix
Fix regression by unreal engine fix pr #11009
2023-07-05 09:23:34 -04:00
bunnei 66a20ecbc7 video_core: vulkan_device: Disable timeline semaphore on Turnip, fix qcom version check. 2023-07-03 19:25:06 -07:00