bunnei
117bc2ae6c
android: vulkan: Recreate surface after suspension & adapt to async. presentation.
2023-06-03 00:05:59 -07:00
bunnei
ca4bf3844e
video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise.
2023-06-03 00:05:58 -07:00
Liam
616cf70a80
build: only enable adrenotools on arm64
2023-06-03 00:05:43 -07:00
liushuyu
e26bd1421e
video_core: fix clang-format errors
2023-06-03 00:05:33 -07:00
bunnei
8248d69093
android: vulkan: Implement adrenotools turbo mode.
2023-06-03 00:05:32 -07:00
bunnei
4c38220a64
android: native: Add support for custom Vulkan driver loading.
2023-06-03 00:05:31 -07:00
bunnei
ae099d583c
core: frontend: Refactor GraphicsContext to its own module.
2023-06-03 00:05:31 -07:00
Billy Laws
b4a12b889e
Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs
...
This crashes their shader compiler for some reason.
2023-06-03 00:05:31 -07:00
Billy Laws
158a1896ec
Implement scaled vertex buffer format emulation
...
These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead.
2023-06-03 00:05:31 -07:00
Billy Laws
a3c261d940
Disable multithreaded pipeline compilation on Qualcomm drivers
...
This causes crashes during compilation on several 6xx and 5xx driver versions.
2023-06-03 00:05:31 -07:00
bunnei
91350524c2
video_core: vk_pipeline_cache: Disable support_descriptor_aliasing on Android.
2023-06-03 00:05:28 -07:00
bunnei
6ed62a9f10
video_core: vk_swapchain: Fix image format for Android.
2023-06-03 00:05:28 -07:00
bunnei
18527a8c42
video_core: vk_blit_screen: Rotate viewport for Android landscape.
2023-06-03 00:05:27 -07:00
ameerj
642c14f0c7
OpenGL: Make use of persistent buffer maps in buffer cache downloads
...
Persistent buffer maps were already used by the texture cache, this extends their usage for the buffer cache.
In my testing, using the memory maps for uploads was slower than the existing "ImmediateUpload" path, so the memory map usage is limited to downloads for the time being.
2023-05-28 00:38:46 -04:00
GPUCode
4a292efbff
renderer_vulkan: Remove timeline semaphore wait
2023-05-28 02:39:44 +03:00
Fernando S
76f6388969
Merge pull request #10398 from liamwhite/bcn
...
video_core: add ASTC recompression
2023-05-24 03:55:45 +02:00
Liam
415c78b87c
textures: add BC1 and BC3 compressors and recompression setting
2023-05-23 12:54:40 -04:00
liamwhite
a5d4c3e5ad
Merge pull request #10388 from GPUCode/fence-wait
...
vk_master_semaphore: Move fence wait on separate thread
2023-05-23 09:42:56 -04:00
Liam
8758932031
renderer_vulkan: barrier attachment feedback loops
2023-05-22 18:10:16 -04:00
GPUCode
4e491ab59b
vk_master_semaphore: Move fence wait on separate thread
2023-05-20 19:23:53 +03:00
Liam
de7c92d7c4
renderer_vulkan: remove wrong constexpr
2023-05-18 18:01:01 -04:00
liamwhite
47c5c37bed
Merge pull request #10217 from Kelebek1/clear_value
...
Use the rendertarget format of the correct RT rather than the first valid
2023-05-16 10:06:30 -04:00
liamwhite
bbb6b58aa4
Merge pull request #10181 from lat9nq/intel-compute-toggle
...
configure_graphics: Add option to enable compute pipelines for Intel proprietary
2023-05-15 12:05:24 -04:00
Kelebek1
cd0ded7771
Correctly track RT indexes for image aspect lookup during clears
2023-05-12 01:40:21 +01:00
Liam
67fd1df762
renderer_vulkan: separate guest and host compute descriptor queues
2023-05-10 13:46:48 -04:00
Kelebek1
a386003b64
Use the rendertarget format of the correct RT rather than the first valid
2023-05-09 22:13:15 +01:00
Fernando Sahmkow
8a214e5530
Texture Cache: Fix ASTC textures
2023-05-09 02:42:10 +02:00
Fernando Sahmkow
8014dd8259
Texture cache: Only force flush the dma downloads
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
2df19ef0fd
Buffer Cache: disable reactive flushing in it.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
6f90dff293
Address feedback, add CR notice, etc
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
c6cac2ffaa
GPU: Add Reactive flushing
2023-05-07 23:46:12 +02:00
liamwhite
cb49c3b64c
Merge pull request #10172 from Kelebek1/debug_validation_names
...
Log object names with debug renderer, add a GPU address to ImageViews
2023-05-07 14:09:03 -04:00
lat9nq
6ed6e6e18e
vk_pipeline_cache: Use setting to disable intel compute
2023-05-07 01:06:22 -04:00
bunnei
3547248ec2
Merge pull request #10125 from lat9nq/vsync-select
...
configuration: Expose separate swap present modes
2023-05-06 21:55:39 -07:00
Kelebek1
ca6bf06ef7
Log object names with debug renderer, add a GPU address to ImageViews
2023-05-06 04:48:32 +01:00
bunnei
055ee84024
Merge pull request #10142 from FernandoS27/missing-astc
...
GPU: implement missing ASTC
2023-05-03 16:49:27 -07:00
bunnei
a661c547d8
Merge pull request #10088 from FernandoS27/100-gelato-flavor-test-builds-later
...
Y.F.C Implement Asynchronous Fence manager and Rework Query async downloads
2023-05-03 15:10:22 -07:00
Fernando Sahmkow
87a9be8dec
GPU: implement missing ASTC
2023-05-03 11:33:28 -04:00
GPUCode
f3fcc15ad5
vk_present_manager: Fix softlocks when disabling async present
2023-05-03 07:50:10 +03:00
lat9nq
952b271092
vk_swapchain: Use certain modes for unlocked
...
Uses mailbox, then immediate for unlocked framerate depending on
support for either. Also adds support for FIFO_RELAXED.
This function now assumes vsync_mode was originially configured to a value
that the driver supports.
vk_swapchain: ChooseSwapPresentMode determines updates
Simplifies swapchain a bit and allows us to change the present mode
during guest runtime.
vk_swapchain: Fix MSVC error
vk_swapchain: Enforce available present modes
Some frontends don't check the value of vsync_mode before comitting it.
Just as well, since a driver update or misconfiguration could problems
in the swap chain.
vk_swapchain: Silence warnings
Silences GCC warnings implicit-fallthrough and shadow, which apparently
are not enabled on clang.
2023-05-02 21:52:43 -04:00
lat9nq
c6c11c1553
vulkan_surface: Pass only window info for surface creation
...
We don't need the whole EmuWindow when creating a surface,
and it creates onerous requirements outside of typical usage for
creating a surface elsewhere.
2023-05-02 21:51:30 -04:00
lat9nq
6f0929df82
configuration: Expose separate swap present modes
...
Previously, yuzu would try and guess which vsync mode to use given
different scenarios, but apparently we didn't always get it right. This
exposes the separate modes in a drop-down the user can select.
If a mode isn't available in Vulkan, it defaults to FIFO.
2023-05-02 21:51:29 -04:00
GPUCode
f403d27941
vk_present_manager: Add toggle for async presentation
2023-05-01 23:13:24 +03:00
GPUCode
1d7abac84b
vk_blit_screen: Recreate FSR when frame is recreated
...
* Depends on the layout dimentions and thus should be recreated as well
2023-05-01 23:13:24 +03:00
GPUCode
50791cb974
renderer_vulkan: Fix crashing when updating descriptors
...
* During pipeline configure the function would acquire some payload space from the descriptor update queue,
write the descriptor data on the GPU thread and give the scheduler a pointer to the beginning of said space to update it later.
TickFrame resets the payload cursor, used to track acquires, back to the beginning of the buffer.
This wasn't a problem before since WaitWorker was called at the end of the frame but now it is.
If a frame writes to a cursor before the scheduler catches up, it will crash
* To fix this the payload buffer has been increased to account for the in flight frames that are allowed to exist now.
TickFrame will switch between the payload spaces instead of resetting
2023-05-01 23:13:24 +03:00
GPUCode
2ad9acf795
renderer_vulkan: Async presentation
2023-05-01 23:13:24 +03:00
Morph
47938541c2
Merge pull request #10084 from FernandoS27/yuzu-goes-broom-broom
...
Y.F.C Buffer Cache Revamp
2023-05-01 11:08:02 -04:00
bunnei
689f9a75a7
Merge pull request #10110 from Morph1984/intel-disable-compute
...
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
2023-04-29 23:02:45 -07:00
Fernando Sahmkow
4bc5469f52
Texture Cache: Release stagging buffers on tick frame
2023-04-29 15:31:38 +02:00
Fernando Sahmkow
80480fe3f7
Clang: format and ficx compile errors.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
a16c261131
Buffer Cache: Fully rework the buffer cache.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
e3a2ca96bd
Accelerate DMA: Use texture cache async downloads to perform the copies
...
to host.
WIP
2023-04-29 00:18:21 +02:00
Fernando Sahmkow
3fbee093b2
TextureCache: refactor DMA downloads to allow multiple buffers.
2023-04-29 00:18:21 +02:00
Morph
cb092af3f0
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
...
Intel's SPIR-V shader compiler is broken. For now, skip compiling any compute pipelines until they fix this issue.
This is not a perfect workaround, as there are a small subset of non-compute pipelines that still cause it to crash, but this should cover the majority of crashes.
It is unfortunate that even with a test case reported 6 months ago the issue has not been fixed in favor of fixing "the most popular games and apps".
Intel, you can do better than this.
2023-04-28 17:59:36 -04:00
Fernando Sahmkow
e4dc73f61e
Clang format and ddress feedback
2023-04-24 12:38:47 +02:00
Fernando S
9bf19b04f6
Merge pull request #10051 from liamwhite/surface-capabilities
...
vulkan: pick alpha composite flags based on available values
2023-04-24 12:37:13 +02:00
Fernando Sahmkow
e29ced29fa
QueryCache: rework async downloads.
2023-04-23 22:04:14 +02:00
Fernando Sahmkow
7e76c1642c
Accuracy Normal: reduce accuracy further for perf improvements in Project Lime
2023-04-23 22:03:44 +02:00
Fernando Sahmkow
fca72beb2d
Fence Manager: implement async fence management in a sepparate thread.
2023-04-23 04:48:50 +02:00
Liam
e3fb9b5e00
vulkan: use plain fences when timeline semaphores are not available
2023-04-14 22:53:37 -04:00
Liam
e37e1d24f9
vulkan: pick alpha composite flags based on available values
2023-04-13 16:38:20 -04:00
Wollnashorn
c0e5ecc399
video_core: Enable ImageGather rounding fix on AMD open source drivers
2023-04-12 17:11:02 +02:00
Wollnashorn
fe91066f46
video_core: Enable ImageGather with subpixel offset on Intel
2023-04-08 16:12:44 +02:00
Wollnashorn
780240e697
shader_recompiler: Add subpixel offset for correct rounding at ImageGather
...
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957 , #6956 ).
2023-04-08 16:12:30 +02:00
Liam
5a2dff87bf
vulkan: fix scheduler chunk reserve
2023-03-24 09:09:01 -04:00
Liam
b9b1318bea
vulkan: fix more excessive waiting in scheduler
2023-03-19 13:40:33 -04:00
liamwhite
a04061e6ae
Merge pull request #9931 from liamwhite/sched
...
vk_scheduler: split work queue waits and execution waits
2023-03-15 20:19:35 -04:00
liamwhite
0c7149d222
Merge pull request #9933 from vonchenplus/texture_format
...
video_core: Update texture format
2023-03-14 11:35:37 -04:00
Liam
3f261f22c9
vk_scheduler: split work queue waits and execution waits
2023-03-12 17:19:44 -04:00
Liam
600f325d87
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00
Fernando S
49643d8134
Merge pull request #9913 from ameerj/acc-dma-refactor
...
AccelerateDMA: Refactor Buffer/Image copy code and implement for OGL
2023-03-11 20:04:19 +01:00
Feng Chen
c8ad039612
video_core: Update texture format
2023-03-10 21:48:50 +08:00
liamwhite
3cf88a4d6c
Merge pull request #9896 from Kelebek1/d24s8
...
Check all swizzle components for red, not just [0]
2023-03-08 09:16:06 -05:00
Liam
ba4213d956
general: fix type inconsistencies
2023-03-07 20:05:19 -05:00
ameerj
6b9cc0ed23
Refactor AccelerateDMA code
2023-03-06 22:57:45 -05:00
Fernando Sahmkow
8a3411b417
Engines: Implement Accelerate DMA Texture.
2023-03-05 12:18:00 +01:00
Kelebek1
a7fb80e612
Check all swizzle components for red, not just [0], pass float border color rather than int
2023-03-04 02:33:50 +00:00
ameerj
b5bcd8c71b
configuration: Add async ASTC decode setting
2023-02-22 18:21:09 -05:00
liamwhite
a4d0663158
Merge pull request #9588 from liamwhite/bylaws-reverts
...
Revert "shader_recompiler: Align SSBO offsets to meet host requirements"
2023-02-19 13:11:57 -05:00
arades79
683019878f
remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
...
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:35:39 -05:00
arades79
45e13b03f3
add static lifetime to constexpr values to force compile time evaluation where possible
...
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:33:11 -05:00
bunnei
f70fcdb873
Merge pull request #9746 from ameerj/ogl-msaa-texcache
...
texture_cache: OpenGL: Implement MSAA uploads and copies
2023-02-12 00:18:52 -08:00
ameerj
93cf2b3ca8
texture_cache: OpenGL: Implement MSAA uploads and copies
2023-02-11 15:43:07 -05:00
Kelebek1
8ae2a664d2
Remove fake vertex bindings when dynamic state is enabled
2023-02-05 22:28:03 +00:00
FengChen
818631a412
video_core: Implement vulkan clear specified channel
2023-01-28 12:53:05 +08:00
Wollnashorn
c4a49eb1dd
video_core/opengl: Add FSR upscaling filter to the OpenGL renderer
2023-01-26 21:43:33 +01:00
liamwhite
475370c8f8
Merge pull request #9556 from vonchenplus/draw_texture
...
video_core: Implement maxwell3d draw texture method
2023-01-19 14:58:53 -05:00
Feng Chen
9fc7ca1731
Address feedback
2023-01-16 10:27:57 +08:00
Morph
ffb12f4f9f
Merge pull request #9581 from liamwhite/turbo2
...
renderer_vulkan: pause turbo submissions on inactive queue
2023-01-09 16:23:16 -05:00
Liam
279005448a
vulkan_device: refactor feature testing
2023-01-09 16:12:16 -05:00
Fernando Sahmkow
efbb6fe288
VideoCore: Fix OGL cache invalidation.
2023-01-07 21:56:17 -05:00
Liam
57a4388e2d
Revert "Vulkan, OpenGL: Hook up storage buffer alignment code"
...
This reverts commit 9e2997c4b6
.
2023-01-07 15:48:50 -05:00
Liam
c19c8ac92c
renderer_vulkan: pause turbo submissions on inactive queue
2023-01-07 14:35:11 -05:00
Liam
2e4dde12c7
renderer_vulkan: disable clock boost on unvalidated devices
2023-01-06 19:07:47 -05:00
Wollnashorn
457826a83b
video_core/vulkan: Fixed loading of Vulkan driver pipeline cache
...
The header size of the Vulkan driver pipeline cache files was incorrectly in PipelineCache::LoadVulkanPipelineCache, for which the pipeline cache wasn't read correctly and got invalidated on each load.
2023-01-06 16:52:41 +01:00
Fernando S
8b251fc3f6
Merge pull request #9535 from bylaws/master
...
Port over several shader-compiler fixes from skyline
2023-01-06 10:06:45 -05:00
liamwhite
020dbcdbc7
Merge pull request #9552 from liamwhite/turbo
...
vulkan: implement 'turbo mode' clock booster
2023-01-06 09:59:59 -05:00
Fernando S
5bcbb8de45
Merge pull request #9559 from FernandoS27/cached-writes
...
VideoCore: Implement Cached Writes, use fastmem for reading GPU memory and eliminate old stuffs
2023-01-06 07:31:39 -05:00
liamwhite
eaca61e073
Merge pull request #9528 from liamwhite/mvk-nulldesc
...
renderer_vulkan: implement fallback path for null buffer descriptors
2023-01-05 18:31:55 -05:00
liamwhite
3e33a878dc
Merge pull request #9536 from liamwhite/debug-utils
...
vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
2023-01-05 18:31:45 -05:00