Feng Chen
b77a247e8c
video_core: drawtexture support upscale
2023-06-16 20:51:15 +08:00
Wollnashorn
2dc0ff79ec
video_core: Use sampler IDs instead pointers in the pipeline config
...
The previous approach of storing pointers returned by `GetGraphicsSampler`/`GetComputeSampler` caused UB, as these functions can cause reallocation of the sampler slot vector and therefore invalidate the pointers
2023-06-16 13:45:14 +02:00
bunnei
0114abad9a
Merge pull request #10790 from liamwhite/arm-driver-moment
...
vulkan_device: disable extended_dynamic_state2 on ARM drivers
2023-06-15 18:34:31 -07:00
bunnei
ca1cb9fd19
Merge pull request #10775 from liamwhite/cb2
...
renderer_vulkan: propagate conditional barrier support
2023-06-15 17:37:03 -07:00
Wollnashorn
a3b7b5b22a
video_core: Fallback to default anisotropy instead to 1x anisotropy
2023-06-15 23:16:26 +02:00
Wollnashorn
745d16132b
video_core: Disable AF for non-color image formats
2023-06-15 20:59:33 +02:00
Wollnashorn
3e8cd91d54
video_core: Fixed compilation errors because of name shadowing
2023-06-15 18:46:40 +02:00
Liam
3304d58edb
vulkan_device: disable extended_dynamic_state2 on ARM drivers
2023-06-15 12:29:54 -04:00
Wollnashorn
42c944b250
video_core: Add per-image anisotropy heuristics (format & mip count)
2023-06-15 18:19:32 +02:00
Liam
2c01669046
video_core: preallocate fewer IR blocks
2023-06-14 21:37:57 -04:00
Liam
8d6aefdcc4
video_core: optionally skip barriers on feedback loops
2023-06-14 14:11:46 -04:00
Liam
cc4334870b
renderer_vulkan: propagate conditional barrier support
2023-06-14 10:49:40 -04:00
Wollnashorn
0de6b9e3f5
video_core: Apply AF only to samplers with normal LOD range [0, 1+x]
2023-06-14 13:27:27 +02:00
Wollnashorn
a9e4dddad5
video_core: Fix default anisotropic heuristic
2023-06-14 11:21:22 +02:00
Wollnashorn
44f616edb9
video_core: Never apply AF to None mipmap mode
...
Should fix some artifacts with the "apply anisotropic filtering for all mipmap modes" option
2023-06-14 03:57:39 +02:00
Wollnashorn
b9bba3ac89
video_core: Disable anisotropic filtering for samplers with depth compare
2023-06-13 21:32:32 +02:00
Morph
925586f97b
buffer_cache_base: Specify buffer type in HostBindings
...
Avoid reinterpret-casting from void pointer since the type is already known at compile time.
2023-06-13 00:59:42 -04:00
Wollnashorn
0eacf547c0
video_core: Option to apply anisotropic filtering for all mipmap modes
2023-06-13 03:21:01 +02:00
liamwhite
e0de6dd63f
Merge pull request #10675 from liamwhite/scaler
...
image_info: adjust rescale thresholds and refactor constant use
2023-06-12 21:16:36 -04:00
Matías Locatti
42b2bc204f
Merge pull request #10699 from liamwhite/conditional-barrier
...
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-12 16:50:59 -03:00
bunnei
ad8f122ab1
Merge pull request #10693 from liamwhite/f64-to-f32
...
shader_recompiler: translate f64 to f32 when unsupported on host
2023-06-12 12:46:54 -07:00
bunnei
569f8d3b44
Merge pull request #10668 from Kelebek1/reduce_vertex_bindings
...
Combine vertex/transform feedback buffer binding into a single call
2023-06-11 11:33:48 -07:00
bunnei
ea716eb5cc
android: Fix screen orientation & blurriness.
2023-06-10 15:13:06 -07:00
Liam
2f1e87dd83
shader_recompiler: translate f64 to f32 when unsupported on host
2023-06-10 12:38:49 -04:00
Liam
2bb7ea436d
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-10 12:30:39 -04:00
Liam
05b66877d1
image_info: adjust rescale thresholds and refactor constant use
2023-06-08 17:46:40 -04:00
Liam
74671186bf
vk_blit_screen: use higher bit depth for fxaa
2023-06-08 11:27:57 -04:00
Kelebek1
ace6c2318b
Combine vertex/transform feedback buffer binding into a single call
2023-06-08 12:13:27 +01:00
Morph
907507886d
(wall, native)_clock: Add GetGPUTick
...
Allows us to directly calculate the GPU tick without double conversion to and from the host clock tick.
2023-06-07 21:44:42 -04:00
Morph
8e56a84566
core_timing: Use CNTPCT as the guest CPU tick
...
Previously, we were mixing the raw CPU frequency and CNTFRQ.
The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
2023-06-07 21:44:42 -04:00
liamwhite
5c79a07a36
Merge pull request #10635 from mrcmunir/l4t-tx1-nvidia
...
Make VK_EXT_robustness2 optional
2023-06-07 14:04:14 -04:00
liamwhite
cfb76d8f3e
Merge pull request #10476 from ameerj/gl-memory-maps
...
OpenGL: Make use of persistent buffer maps in buffer cache
2023-06-07 14:03:57 -04:00
liamwhite
6907d30258
Merge pull request #10583 from ameerj/ill-logic
...
AccelerateDMA: Fix incorrect check in Buffer<->Texture copies
2023-06-07 14:03:40 -04:00
Carlos Estrague / Mrc_munir
b854981917
Updated to lexicographical order suggestions
2023-06-06 19:33:52 +02:00
Carlos Estrague / Mrc_munir
19d05bd4d7
Make VK_EXT_robustness2 optional
...
For some reason nvidia implemented Vulkan 1.2 supported without support for VK_EXT_robustness2 in tegra X1/X2 .
Fix vulkan work in TX1/TX2 L4T drivers .
2023-06-06 06:32:47 +02:00
bunnei
db6737f2ba
android: vk_presentation_manager: Fix unusued needs_recreation.
2023-06-03 00:06:08 -07:00
bunnei
df70fdc95b
android: vk_turbo_mode: Remove unnecessary device recreation.
...
- Fixes a rare crash.
2023-06-03 00:06:08 -07:00
bunnei
098e2c4077
android: renderer_vulkan: Fix crash with surface recreation.
2023-06-03 00:06:07 -07:00
bunnei
057117f009
android: Fix presentation layout on foldable and tablet devices.
2023-06-03 00:06:07 -07:00
bunnei
cf9f4f67dd
video_core: vk_rasterizer: Decrease draw dispatch count for Android.
2023-06-03 00:06:04 -07:00
bunnei
f0ed20c8a2
android: GPU: Enable async presentation, increase frames in flight.
2023-06-03 00:06:03 -07:00
bunnei
5d43594a70
android: vulkan_device: Skip BGR565 emulation on S8gen2.
2023-06-03 00:06:01 -07:00
bunnei
8b8123b733
android: vulkan_device: Only compile OverrideBcnFormats when used.
2023-06-03 00:06:00 -07:00
Liam
6b2e89a865
android: remove spurious warnings about BCn formats when patched with adrenotools
2023-06-03 00:06:00 -07:00
bunnei
befd477279
android: video_core: Disable some problematic things on GPU Normal.
2023-06-03 00:06:00 -07:00
bunnei
8dc7fe0c96
android: video_core: Disable problematic compute shaders.
...
- Fixes #104 .
2023-06-03 00:06:00 -07:00
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
bunnei
12c9e18b55
android: vulkan: Disable vertex_input_dynamic_state on Qualcomm.
2023-06-03 00:05:51 -07:00
bunnei
6d2e7de2e0
android: vulkan_debug_callback: Ignore many innocuous errors.
2023-06-03 00:05:50 -07:00
bunnei
b2aeb50229
android: vulkan_device: Disable VK_EXT_custom_border_color on Adreno.
...
- Causes crashes on sampler creation with Super Mario Odyssey.
2023-06-03 00:05:48 -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
ff2f370946
video_core: vulkan_device: Correct error message for unsuitable driver.
2023-06-03 00:05:32 -07:00
bunnei
8248d69093
android: vulkan: Implement adrenotools turbo mode.
2023-06-03 00:05:32 -07:00
bunnei
21320d80d9
android: vulkan_device: Disable VK_EXT_extended_dynamic_state2 on Qualcomm.
...
- Newer drivers report this as supported, but it is broken.
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
206f1304d6
Disable push descriptors on adreno drivers
...
Regular descriptors are around 1.5x faster to update.
2023-06-03 00:05:31 -07:00
Billy Laws
26bdecbf45
Disable VK_EXT_extended_dynamic_state on mali
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
Liam
f7a3f1ddf4
externals: add adrenotools for bcenabler
2023-06-03 00:05:28 -07:00
bunnei
2972a3ccc7
video_core: vulkan_device: Device initialization for Adreno.
2023-06-03 00:05:28 -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
bunnei
851b1008a8
cmake: Integrate bundled FFmpeg for Android.
2023-06-03 00:05:26 -07:00
ameerj
1fc47361a1
texture_cache: Fix incorrect logic for AccelerateDMA
2023-06-02 18:07:52 -04:00
liamwhite
d89b98d8e8
Merge pull request #10091 from Kelebek1/bc_bugggggg
...
Fix buffer overlap checking skipping a page for stream score right expand
2023-06-01 09:06:07 -04:00
liamwhite
988f486061
Merge pull request #10474 from GPUCode/you-left-me-waiting
...
Remove timeline semaphore wait
2023-06-01 09:05:30 -04:00
Kelebek1
661375a222
Skip BufferCache tickframe with no channel state set
2023-05-30 21:57:13 +01:00
liamwhite
381caf4c00
Merge pull request #10483 from ameerj/gl-cpu-astc
...
gl_texture_cache: Fix ASTC CPU decoding with compression disabled
2023-05-28 13:18:31 -04:00
liamwhite
bf3f450211
Merge pull request #10283 from danilaml/support-interlaced-videos
...
Add support for deinterlaced video playback
2023-05-28 13:17:58 -04:00
ameerj
ea2e155b0b
gl_texture_cache: Fix ASTC CPU decoding with compression disabled
...
gl_format was incorrectly being overwritten when compression was disabled
2023-05-28 13:14:51 -04:00
ameerj
cb0a410907
gl_staging_buffers: Optimization to reduce fence waiting
2023-05-28 00:38:47 -04: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
Kelebek1
b0bea13ed8
Move buffer bindings to per-channel state
2023-05-27 17:04:18 +01:00
Matías Locatti
d6db422098
Merge pull request #10414 from liamwhite/anv-push-descriptor
...
vulkan_device: Enable VK_KHR_push_descriptor on newer ANV
2023-05-26 17:36:37 -03:00
Matías Locatti
919b54848b
Merge pull request #10418 from liamwhite/blink-and-youll-miss-it
...
texture_cache: process aliases and overlaps in the correct order
2023-05-26 17:36:09 -03:00
Kelebek1
7ce181edcf
Fix buffer overlap checking skipping a page for stream score right expand
2023-05-26 10:35:46 +01:00
Liam
904dc1a567
video_core: don't garbage collect during configuration
2023-05-25 12:03:12 -04:00
bunnei
73a0ea0738
Merge pull request #10435 from FernandoS27/gotta-clean-mess-ups
...
Texture cache: revert wrong acceleration assumption
2023-05-24 21:00:53 -07:00
Fernando Sahmkow
be3a7f4096
Texture cache: revert wrong acceleration assumption
2023-05-24 10:52:02 +02:00
Fernando Sahmkow
01c4568786
Texture Cache Util: Fix block depth adjustment on slices.
2023-05-24 10:06:58 +02:00
Fernando Sahmkow
72c1ee1bf9
texture_cache: process aliases and overlaps in the correct order
2023-05-24 09:53:42 +02:00
Fernando S
72a14a6817
Merge pull request #10422 from liamwhite/gc
...
video_core: tune garbage collection aggressiveness
2023-05-24 03:58:49 +02: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
3b1172c10f
video_core: tune garbage collection aggressiveness
2023-05-23 12:55:14 -04: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
liamwhite
58be9b12f4
Merge pull request #10402 from liamwhite/uh
...
renderer_vulkan: barrier attachment feedback loops
2023-05-23 09:42:49 -04:00
Liam
8bba9f7dea
vulkan_device: Enable VK_KHR_push_descriptor on newer ANV
2023-05-22 19:53:20 -04:00
Liam
8758932031
renderer_vulkan: barrier attachment feedback loops
2023-05-22 18:10:16 -04:00
scorpion81
f8e7b44d28
Limit the device access memory to 4 GB
...
Hardly limiting the device access memory to 4 GB for integrated vulkan devices here. This works for the Steam Deck in order not to go above 4 GB VRAM usage any more (above this value the likelihood to crash when the RAM exceeds 12 GB as well raises).
But there will be perhaps a detection mechanism necessary for detecting the real memory limit for integrated vulkan devices. Those likely might have small limits anyway, but what about integrated GPUs on machines with > 16 GB RAM, aka larger amounts ?
2023-05-22 16:48:55 +02:00
Danila Malyutin
7701a00a02
Add support for deinterlaced videos playback
...
This is a follow up to #10254 to improve the playback of cut scenes in Layton's Mystery Journey.
It uses ffmpeg's yadif filter for deinterlacing.
2023-05-22 01:43:44 +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
lat9nq
c1a8a508bc
vulkan_device: Disable VK_KHR_push_descriptor on ANV
...
Mesa commit ff91c5ca42bc80aa411cb3fd8f550aa6fdd16bdc breaks
VK_KHR_push_descriptor usage on ANV drivers 22.3.0, so disable it
and allow games to boot.
2023-05-17 22:19:57 -04:00
bunnei
9d4a2de72b
Merge pull request #10262 from liamwhite/depth-clamp
...
vulkan_common: disable depth clamp dynamic state for older radv
2023-05-17 12:19:03 -07: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
liamwhite
6060685609
Merge pull request #10249 from FernandoS27/sorry-i-am-late
...
Buffer Cache: Clear sync code.
2023-05-15 12:03:25 -04:00
liamwhite
5b85925469
Merge pull request #10254 from danilaml/fix-h264-decode
...
Fix missing pic_order_present_flag in h264 header
2023-05-15 12:03:14 -04:00
Fernando Sahmkow
c4bfbc6d25
Buffer Cache: Clear sync code.
2023-05-15 01:50:21 +02:00
liamwhite
e9069dfe76
Merge pull request #10288 from liamwhite/vram-limits
...
vulkan_device: reserve extra memory to prevent swaps
2023-05-14 17:02:15 -04:00
Liam
2be751100b
vulkan_device: reserve extra memory to prevent swaps
2023-05-14 16:49:59 -04:00
Liam
122435e080
vulkan_common: fix incompatible property flags
2023-05-14 01:13:11 -04:00
Liam
856838f7ce
vulkan_common: disable depth clamp dynamic state for older radv
2023-05-13 00:37:17 -04:00
Danila Malyutin
9367769fe7
Fix missing pic_order_present_flag in h264 header
...
Fixes #9635
2023-05-12 22:30:59 +04:00
Kelebek1
cd0ded7771
Correctly track RT indexes for image aspect lookup during clears
2023-05-12 01:40:21 +01:00
liamwhite
182221b9ff
Merge pull request #10132 from Kelebek1/fermi_blit2
...
Allow Fermi blit accelerate to work without images in cache
2023-05-11 10:45:59 -04:00
liamwhite
2643ea80df
Merge pull request #10216 from Kelebek1/buffer_cache_region_checks
...
Swap order of checking/setting region modifications in the buffer_cache
2023-05-11 10:45:47 -04:00
Kelebek1
bf08bc3c0f
Allow Fermi blit accelerate to add src/dst to the cache if they don't exist already. Use ScratchBuffers in the software blit path.
2023-05-11 06:42:38 +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
Kelebek1
b3691fc33c
Swap order of checking/setting region modifications in the buffer_cache
2023-05-09 20:21:08 +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
016c6feb49
Texture cache: reverse inmediate flush changes
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
36c302fa32
Buffer cache: always use async buffer downloads and fix regression.
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
ab0c0a469c
Query cache: stop updating pages as it's not affected by cpu writes
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
92da86290c
Settings: add option to enable / disable reactive flushing
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
0f4f18265f
Texture cache: sync the first flush.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
c6cac2ffaa
GPU: Add Reactive flushing
2023-05-07 23:46:12 +02:00
liamwhite
0c5bdc7241
Merge pull request #10081 from Kelebek1/copy_overlap_tick
...
Sort overlap_ids by modification tick before copy
2023-05-07 14:09:10 -04: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
liamwhite
60d54d911e
Merge pull request #10145 from Kelebek1/code_size
...
Fix shader code resize to use word size rather than byte size
2023-05-04 14:44:02 -04:00
Fernando S
2506594c50
Merge pull request #10153 from FernandoS27/a-quickie-fixie
...
Memory manager: Fix possible softlock
2023-05-04 03:56:53 +02:00
bunnei
055ee84024
Merge pull request #10142 from FernandoS27/missing-astc
...
GPU: implement missing ASTC
2023-05-03 16:49:27 -07:00
Fernando Sahmkow
1c13c74295
Memory manager: Fix possible softlock
2023-05-04 00:15:21 +02: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
liamwhite
ffeb5cdd8d
Merge pull request #10151 from GPUCode/no-softlocks-please
...
Fix softlocks when disabling async present
2023-05-03 10:54:24 -04:00
Morph
8dd3baa562
Merge pull request #10144 from liamwhite/dont-turbo
...
vulkan: disable turbo when debugging tool is attached
2023-05-03 10:53:03 -04:00
Morph
daf7936095
Merge pull request #10143 from liamwhite/fruit-company-moment
...
video_core: fix build on Apple Clang
2023-05-03 10:52:56 -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
Kelebek1
f902cc2a2b
Fix code resize to use word size rather than byte size
2023-05-02 23:52:21 +01:00
Liam
4df49631de
vulkan: disable turbo when debugging tool is attached
2023-05-02 18:14:57 -04:00
Liam
e1c74cea10
video_core: fix build on Apple Clang
2023-05-02 18:05:30 -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
Fernando Sahmkow
d6f565e5da
BufferCache: Fixes and address feedback
2023-05-01 11:43:26 +02: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
f8d31d1ae1
Buffer Cache: Release stagging buffers on tick frame
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
80480fe3f7
Clang: format and ficx compile errors.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
ed4553806a
Implement Async downloads in normal and fix a few issues.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
f2d3212de9
Buffer Cache rework: Setup async downloads.
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
58d1c7c77a
Address Feedback & Clang Format
2023-04-29 00:18:21 +02:00
Fernando Sahmkow
56c9730a16
Maxwell3D: only update parameters on High
2023-04-29 00:18:21 +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
2f15876524
QueryCache: Fix write invalidation.
2023-04-28 23:53:46 +02:00
Fernando Sahmkow
9a7c172f76
MemoryManager: Fix race conditions.
2023-04-28 23:53:02 +02: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 S
2311fa7c84
Merge pull request #10069 from liamwhite/log
...
maxwell_3d: fix out of bounds array access in size estimation
2023-04-24 12:36:24 +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
eb7c2314f6
maxwell_3d: fix out of bounds array access in size estimation
2023-04-22 10:35:26 -04:00
Kelebek1
3346de365a
Sort overlap_ids by modification tick before copy
2023-04-22 14:02:10 +01:00
Kelebek1
4e14b64bfc
Account for a pre-added offset when using Corner sample mode for 2D blits
2023-04-21 19:08:21 +01:00
Liam
e3fb9b5e00
vulkan: use plain fences when timeline semaphores are not available
2023-04-14 22:53:37 -04:00
bunnei
e0895a8581
Merge pull request #10030 from Wollnashorn/botw-amd-fix
...
shader_recompiler: Fix ImageGather rounding on AMD/Intel
2023-04-14 16:56:34 -07: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
liamwhite
54b4c84ab6
Merge pull request #10008 from vonchenplus/texture_cache
...
video_core: update imageinfo implement
2023-04-11 11:59:18 -04: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
liamwhite
ff386e794b
Merge pull request #10004 from Kelebek1/cubemap
...
[texture_cache] Only upload GPU-modified overlaps
2023-04-03 13:05:52 -04:00
Jan Beich
083d913eab
externals: update Vulkan-Headers to v1.3.246
2023-04-01 05:38:54 +00:00
Feng Chen
ff2089fdf5
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
2023-03-31 12:33:07 +08:00
Max Dunbar
e446f368d7
Fixes 'Continous' typo
2023-03-29 19:26:12 -07:00
Kelebek1
c68b4bee2c
Only upload GPU-modified overlaps
2023-03-28 11:07:39 +01:00
liamwhite
0661f5ccd1
Merge pull request #9984 from liamwhite/global-memory
...
memory: rename global memory references to application memory
2023-03-27 12:16:40 -04:00
Morph
49f6deecb8
video_core/macro: Make use of Common::HashValue
2023-03-25 23:52:26 -04:00
bunnei
09da9da6fb
Merge pull request #9985 from liamwhite/funny-meme
...
vulkan: fix scheduler chunk reserve
2023-03-24 23:40:17 -07:00
Ross Schlaikjer
f38ae8e953
Pass GPU page table by reference
2023-03-25 00:25:02 -04:00
Liam
5a2dff87bf
vulkan: fix scheduler chunk reserve
2023-03-24 09:09:01 -04:00
Morph
7a8a7545f2
Merge pull request #9975 from liamwhite/more-waiting
...
vulkan: fix more excessive waiting in scheduler
2023-03-24 00:19:43 -04:00
Liam
41d99aa89d
memory: rename global memory references to application memory
2023-03-23 20:28:47 -04:00
liamwhite
ac3927074b
Merge pull request #9971 from Morph1984/q
...
bounded_threadsafe_queue: Use simplified impl of bounded queue
2023-03-23 10:00:31 -04:00
Morph
6adaa0d5e2
Merge pull request #9962 from Kelebek1/disable_srgb
...
[video_core] Disable SRGB border color conversion in samplers
2023-03-23 03:07:00 -04:00
Morph
407dc917f1
bounded_threadsafe_queue: Deduplicate and add PushModes
...
Adds the PushModes Try and Wait to allow producers to specify how they want to push their data to the queue if the queue is full.
If the queue is full:
- Try will fail to push to the queue, returning false. Try only returns true if it successfully pushes to the queue. This may result in items not being pushed into the queue.
- Wait will wait until a slot is available to push to the queue, resulting in potential for deadlock if a consumer is not running.
2023-03-21 19:20:21 -04:00
Morph
306840a580
bounded_threadsafe_queue: Use simplified impl of bounded queue
...
Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
2023-03-21 19:17:32 -04:00
Liam
b9b1318bea
vulkan: fix more excessive waiting in scheduler
2023-03-19 13:40:33 -04:00
bunnei
889454f9bf
Merge pull request #9778 from behunin/my-box-chevy
...
gpu_thread: Use bounded queue
2023-03-17 22:14:29 -07:00
Kelebek1
a7651168dd
Disable SRGB border color conversion for now, to fix shadows in Xenoblade.
2023-03-17 04:46:38 +00:00
liamwhite
6d76a54d37
Merge pull request #9955 from liamwhite/color-blend-equation
...
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
2023-03-15 20:19:45 -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
Liam
da83afdeaf
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
2023-03-15 15:55:07 -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
FengChen
11ffbee5ae
video_core: Better defined ImageInfo parameters
2023-03-14 22:36:34 +08:00
liamwhite
638044820d
Merge pull request #9943 from vonchenplus/gentleman
...
video_core: Fix inline_index and draw_texture error
2023-03-13 13:45:17 -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
FengChen
44f10c8dee
video_core: Fix ogl status error when draw_texture
2023-03-12 13:33:31 +08:00
FengChen
4e42ba54e5
video_core: Invalid index_buffer flag when inline_index draw
2023-03-12 13:21:26 +08: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
liamwhite
103380134f
Merge pull request #9925 from ameerj/gl-sync-signal
...
OpenGL: Prefer glClientWaitSync for OGLSync objects
2023-03-10 13:55:22 -05:00
liamwhite
021af4fd00
Merge pull request #9917 from Morph1984/the-real-time
...
native_clock: Re-adjust the RDTSC frequency to its real frequency
2023-03-10 13:55:11 -05:00
Feng Chen
c8ad039612
video_core: Update texture format
2023-03-10 21:48:50 +08:00
liamwhite
b5c0c1e163
Merge pull request #9822 from ameerj/buffcache-ssbo-addr
...
buffer_cache: Add logic for non-NVN storage buffer tracking
2023-03-09 09:18:39 -05:00
ameerj
03137086db
OpenGL: Prefer glClientWaitSync for OGLSync objects
...
At least on Nvidia, glClientWaitSync with a timeout of 0 (non-blocking) is faster than glGetSynciv of GL_SYNC_STATUS.
2023-03-08 20:29:25 -05: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
Morph
3053a62375
core: Promote CPU/GPU threads to time critical
...
And also demote Audren and CoreTiming to High thread priority.
2023-03-07 21:17:46 -05:00
Liam
ba4213d956
general: fix type inconsistencies
2023-03-07 20:05:19 -05:00
liamwhite
a7792e5ff8
Merge pull request #9889 from Morph1984/time-is-ticking
...
core_timing: Reduce CPU usage on Windows
2023-03-07 10:54:13 -05:00
ameerj
268942c8fe
gl_rasterizer: Implement AccelerateDMA DmaBufferImageCopy
2023-03-06 22:57:52 -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
Morph
bff1453282
core_timing: Use higher precision sleeps on Windows
...
The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows.
Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution.
This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop.
2023-03-05 02:36:31 -05:00
Morph
ce8f4da638
Merge pull request #9884 from liamwhite/service-cleanup
...
service: miscellaneous cleanups
2023-03-03 22:51:17 -05: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
Behunin
44518b225c
gpu_thread: Use bounded queue
2023-03-03 18:20:56 -07:00
Liam
ec6ee04c64
vulkan_common: disable vertexInputDynamicState on unsupported driver
2023-03-01 22:48:12 -05:00
Liam
809148e1a5
nvnflinger: fix name
2023-03-01 10:39:49 -05:00
Matías Locatti
c38bb96a2c
Partially apply LTO to only core and video_core projects.
2023-02-27 18:44:14 -03:00
ameerj
2ce5bb9bd6
buffer_cache: Add logic for non-NVN storage buffer tracking
2023-02-25 16:24:21 -05:00
ameerj
b5bcd8c71b
configuration: Add async ASTC decode setting
2023-02-22 18:21:09 -05:00
ameerj
090bc588e5
texture_cache: Add async texture decoding
2023-02-22 00:26:07 -05:00
Merry
c9678bda24
svc: Fix type consistency (exposed on macOS)
2023-02-21 21:39:17 +00: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
bunnei
e91ff9b7bd
Merge pull request #9810 from Kelebek1/nvdec_threads
...
Allow >1 cpu threads on video decoding, disable multi-frame decoding
2023-02-17 09:44:38 -08:00
bunnei
889bfce447
Merge pull request #9802 from Kelebek1/wait_data_cache
...
Re-add the invalidate_texture_data_cache register
2023-02-16 12:27:24 -08:00
Kelebek1
3b50906f00
Reimplement the invalidate_texture_data_cache register
2023-02-14 19:34:10 +00:00
Kelebek1
139b645aa2
Allow >1 cpu threads on video decoding, disable multi-frame decoding
2023-02-14 18:55:46 +00: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
liamwhite
c97b5c9ff9
Merge pull request #9777 from vonchenplus/speed_up_video_copy
...
video_core: Speed up video frame data copy
2023-02-11 12:35:16 -05:00
liamwhite
1040f1f503
Merge pull request #9744 from behunin/quick-release
...
gpu_thread: Remove OnCommandListEndCommand
2023-02-11 10:28:30 -05:00