toast2903
f68b01a8cf
vulkan_device: Remove brace initializer
...
Co-authored-by: Tobias <thm.frey@gmail.com>
2023-06-19 17:35:12 -04:00
lat9nq
1ad8df763f
video_core: Check broken compute earlier
...
Checks it as the system is determining what settings to enable. Reduces
the need to check settings while the system is running.
2023-06-19 17:33:30 -04:00
Kelebek1
6bd6e24d6e
Use current GPU address when unmapping GPU pages, not the base
2023-06-19 00:19:50 +01:00
lat9nq
a74f77bbbc
video_core: Formalize HasBrokenCompute
...
Also limits it to only affected Intel proprietrary driver versions.
vulkan_device: Move broken compute determination
vk_device: Remove errant back quote
2023-06-18 16:15:47 -04:00
liamwhite
1ddf844419
Merge pull request #10829 from lat9nq/remove-external-mem
...
vulkan_device: Remove external memory extension
2023-06-18 09:43:03 -04:00
liamwhite
2f65ed20b7
Merge pull request #10798 from vonchenplus/draw_texture_scale
...
video_core: drawtexture support upscale
2023-06-18 09:42:41 -04:00
liamwhite
e48b4b0b36
Merge pull request #10809 from Kelebek1/reduce_vertex_bindings
...
Synchronize vertex buffer even when it doesn't require binding
2023-06-18 09:42:32 -04:00
GPUCode
7b3718dc9c
renderer_vulkan: Add missing initializers
2023-06-18 14:14:03 +03:00
GPUCode
66d3a1c5c7
renderer_vulkan: Use VMA for buffers
2023-06-18 12:45:18 +03:00
GPUCode
d84d595dab
renderer_vulkan: Use VMA for images
2023-06-18 12:45:18 +03:00
GPUCode
fd9b920d2d
memory_allocator: Remove OpenGL interop
...
* Appears to be unused atm
2023-06-18 12:45:18 +03:00
lat9nq
0a4650cd2b
externals: Add vma and initialize it
...
video_core: Move vma implementation to library
2023-06-18 12:45:12 +03:00
lat9nq
38fe34a43f
vulkan_device: Remove external memory extension
...
Unused in yuzu. Enables yuzu to boot games in Wine using Vulkan.
2023-06-18 01:20:08 -04:00
Liam
e62d452bd9
renderer_vulkan: add missing include
2023-06-17 23:57:47 -04:00
Fernando S
06f47d34c8
Merge pull request #10744 from Wollnashorn/af-for-all
...
video_core: Improved anisotropic filtering heuristics
2023-06-18 00:02:05 +02:00
Kelebek1
547e837f78
Synchronize vertex buffer even when it doesn't require binding
2023-06-17 17:47:00 -04:00
FengChen
255ab12789
video_core: add samples check when find render target
2023-06-17 23:48:51 +08:00
Wollnashorn
e10113e853
video_core: Only apply AF to 2D (array) image types
2023-06-17 14:20:44 +02:00
Wollnashorn
62b0b6bde0
video_core: Removed AF for all mip modes option as it's default now
2023-06-17 11:19:39 +02:00
bunnei
853249121d
Merge pull request #10783 from liamwhite/memory
...
video_core: preallocate fewer IR blocks
2023-06-16 16:53:25 -07:00
Feng Chen
c362895572
video_core: drawtexture support upscale
2023-06-16 20:51:15 +08:00
Wollnashorn
815f54385a
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
837d487905
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
981332d727
Merge pull request #10775 from liamwhite/cb2
...
renderer_vulkan: propagate conditional barrier support
2023-06-15 17:37:03 -07:00
Wollnashorn
eff77dae59
video_core: Fallback to default anisotropy instead to 1x anisotropy
2023-06-15 23:16:26 +02:00
Wollnashorn
e405fb1c72
video_core: Disable AF for non-color image formats
2023-06-15 20:59:33 +02:00
Wollnashorn
1f7c69934d
video_core: Fixed compilation errors because of name shadowing
2023-06-15 18:46:40 +02:00
Liam
0875e158fe
vulkan_device: disable extended_dynamic_state2 on ARM drivers
2023-06-15 12:29:54 -04:00
Wollnashorn
1844cad9d4
video_core: Add per-image anisotropy heuristics (format & mip count)
2023-06-15 18:19:32 +02:00
Liam
c913c891e0
video_core: preallocate fewer IR blocks
2023-06-14 21:37:57 -04:00
Liam
d0837e10ae
video_core: optionally skip barriers on feedback loops
2023-06-14 14:11:46 -04:00
Liam
e77190ffab
renderer_vulkan: propagate conditional barrier support
2023-06-14 10:49:40 -04:00
Wollnashorn
04782a922d
video_core: Apply AF only to samplers with normal LOD range [0, 1+x]
2023-06-14 13:27:27 +02:00
Wollnashorn
9f46c7724b
video_core: Fix default anisotropic heuristic
2023-06-14 11:21:22 +02:00
Wollnashorn
614f8a0429
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
ff4c4a45e6
video_core: Disable anisotropic filtering for samplers with depth compare
2023-06-13 21:32:32 +02:00
Morph
9da90de908
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
6f1fb4c28a
video_core: Option to apply anisotropic filtering for all mipmap modes
2023-06-13 03:21:01 +02:00
liamwhite
aab6e3098d
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
28e1429daf
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
d40c8428a0
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
866b7c0632
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
e1402935d9
android: Fix screen orientation & blurriness.
2023-06-10 15:13:06 -07:00
Liam
947a4f6141
shader_recompiler: translate f64 to f32 when unsupported on host
2023-06-10 12:38:49 -04:00
Liam
b646ac2908
shader_recompiler: remove barriers in conditional control flow when device lacks support
2023-06-10 12:30:39 -04:00
Liam
2046bead0e
image_info: adjust rescale thresholds and refactor constant use
2023-06-08 17:46:40 -04:00
Liam
7e5be01a48
vk_blit_screen: use higher bit depth for fxaa
2023-06-08 11:27:57 -04:00
Kelebek1
ac23abacac
Combine vertex/transform feedback buffer binding into a single call
2023-06-08 12:13:27 +01:00
Morph
1b83c7eab4
(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
2856fadaa0
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
06a6786a42
Merge pull request #10635 from mrcmunir/l4t-tx1-nvidia
...
Make VK_EXT_robustness2 optional
2023-06-07 14:04:14 -04:00
liamwhite
93372f503a
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
c2958ae5b6
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
1de6e7a3e5
Updated to lexicographical order suggestions
2023-06-06 19:33:52 +02:00
Carlos Estrague / Mrc_munir
e450a7d28c
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
f4dd94ab58
android: vk_presentation_manager: Fix unusued needs_recreation.
2023-06-03 00:06:08 -07:00
bunnei
8e9813a618
android: vk_turbo_mode: Remove unnecessary device recreation.
...
- Fixes a rare crash.
2023-06-03 00:06:08 -07:00
bunnei
fb362f0b6e
android: renderer_vulkan: Fix crash with surface recreation.
2023-06-03 00:06:07 -07:00
bunnei
d57495d3c0
android: Fix presentation layout on foldable and tablet devices.
2023-06-03 00:06:07 -07:00
bunnei
445a1f1b18
video_core: vk_rasterizer: Decrease draw dispatch count for Android.
2023-06-03 00:06:04 -07:00
bunnei
230dd8192d
android: GPU: Enable async presentation, increase frames in flight.
2023-06-03 00:06:03 -07:00
bunnei
c55db7e03d
android: vulkan_device: Skip BGR565 emulation on S8gen2.
2023-06-03 00:06:01 -07:00
bunnei
4e2cdf74a3
android: vulkan_device: Only compile OverrideBcnFormats when used.
2023-06-03 00:06:00 -07:00
Liam
5d9250daf4
android: remove spurious warnings about BCn formats when patched with adrenotools
2023-06-03 00:06:00 -07:00
bunnei
ac32fd08e9
android: video_core: Disable some problematic things on GPU Normal.
2023-06-03 00:06:00 -07:00
bunnei
baa09b9cef
android: video_core: Disable problematic compute shaders.
...
- Fixes #104 .
2023-06-03 00:06:00 -07:00
bunnei
2650faea9d
android: vulkan: Recreate surface after suspension & adapt to async. presentation.
2023-06-03 00:05:59 -07:00
bunnei
3571f28cde
video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise.
2023-06-03 00:05:58 -07:00
bunnei
2810793b17
android: vulkan: Disable vertex_input_dynamic_state on Qualcomm.
2023-06-03 00:05:51 -07:00
bunnei
e8efc6121d
android: vulkan_debug_callback: Ignore many innocuous errors.
2023-06-03 00:05:50 -07:00
bunnei
bf598273e9
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
d54605d1a5
build: only enable adrenotools on arm64
2023-06-03 00:05:43 -07:00
liushuyu
44a629e584
video_core: fix clang-format errors
2023-06-03 00:05:33 -07:00
bunnei
ea54161dbf
video_core: vulkan_device: Correct error message for unsuitable driver.
2023-06-03 00:05:32 -07:00
bunnei
27250ee9ad
android: vulkan: Implement adrenotools turbo mode.
2023-06-03 00:05:32 -07:00
bunnei
6ae51eff8a
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
74e76421e6
android: native: Add support for custom Vulkan driver loading.
2023-06-03 00:05:31 -07:00
bunnei
56600190e4
core: frontend: Refactor GraphicsContext to its own module.
2023-06-03 00:05:31 -07:00
Billy Laws
cfbe4b09eb
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
2beb3051c1
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
58d420937c
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
ca2c3a6d5a
Disable VK_EXT_extended_dynamic_state on mali
2023-06-03 00:05:31 -07:00
Billy Laws
b2b069279e
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
46927d217c
externals: add adrenotools for bcenabler
2023-06-03 00:05:28 -07:00
bunnei
b3a74d7f73
video_core: vulkan_device: Device initialization for Adreno.
2023-06-03 00:05:28 -07:00
bunnei
ce06e9e7fc
video_core: vk_pipeline_cache: Disable support_descriptor_aliasing on Android.
2023-06-03 00:05:28 -07:00
bunnei
f6f470fb4b
video_core: vk_swapchain: Fix image format for Android.
2023-06-03 00:05:28 -07:00
bunnei
189bb7602c
video_core: vk_blit_screen: Rotate viewport for Android landscape.
2023-06-03 00:05:27 -07:00
bunnei
6549cf8bd0
cmake: Integrate bundled FFmpeg for Android.
2023-06-03 00:05:26 -07:00
ameerj
e9c07146d8
texture_cache: Fix incorrect logic for AccelerateDMA
2023-06-02 18:07:52 -04:00
liamwhite
cd9f88e483
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
90a3955fbb
Merge pull request #10474 from GPUCode/you-left-me-waiting
...
Remove timeline semaphore wait
2023-06-01 09:05:30 -04:00
Kelebek1
3da7eafba7
Skip BufferCache tickframe with no channel state set
2023-05-30 21:57:13 +01:00
liamwhite
a4a3df9e69
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
01008297aa
Merge pull request #10283 from danilaml/support-interlaced-videos
...
Add support for deinterlaced video playback
2023-05-28 13:17:58 -04:00
ameerj
514c224679
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
41dfd9e4ec
gl_staging_buffers: Optimization to reduce fence waiting
2023-05-28 00:38:47 -04:00
ameerj
8d223e8092
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
0dc4778654
renderer_vulkan: Remove timeline semaphore wait
2023-05-28 02:39:44 +03:00
Kelebek1
62c747f8a1
Move buffer bindings to per-channel state
2023-05-27 17:04:18 +01:00
Matías Locatti
ebcfe440ba
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
9eab38567c
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
eea071bf87
Fix buffer overlap checking skipping a page for stream score right expand
2023-05-26 10:35:46 +01:00
Liam
6c77a107a4
video_core: don't garbage collect during configuration
2023-05-25 12:03:12 -04:00
bunnei
62301e0f65
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
b0e5aa6725
Texture cache: revert wrong acceleration assumption
2023-05-24 10:52:02 +02:00
Fernando Sahmkow
769b1f0264
Texture Cache Util: Fix block depth adjustment on slices.
2023-05-24 10:06:58 +02:00
Fernando Sahmkow
ce9a97ca48
texture_cache: process aliases and overlaps in the correct order
2023-05-24 09:53:42 +02:00
Fernando S
72c3cf6b32
Merge pull request #10422 from liamwhite/gc
...
video_core: tune garbage collection aggressiveness
2023-05-24 03:58:49 +02:00
Fernando S
178e8a6b0e
Merge pull request #10398 from liamwhite/bcn
...
video_core: add ASTC recompression
2023-05-24 03:55:45 +02:00
Liam
4a54cea69a
video_core: tune garbage collection aggressiveness
2023-05-23 12:55:14 -04:00
Liam
011dfe1db7
textures: add BC1 and BC3 compressors and recompression setting
2023-05-23 12:54:40 -04:00
liamwhite
a496e853ff
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
7515655327
Merge pull request #10402 from liamwhite/uh
...
renderer_vulkan: barrier attachment feedback loops
2023-05-23 09:42:49 -04:00
Liam
cdd20c6231
vulkan_device: Enable VK_KHR_push_descriptor on newer ANV
2023-05-22 19:53:20 -04:00
Liam
147f6129f4
renderer_vulkan: barrier attachment feedback loops
2023-05-22 18:10:16 -04:00
scorpion81
9c33fade59
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
6ab723eace
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
7732ce8a92
vk_master_semaphore: Move fence wait on separate thread
2023-05-20 19:23:53 +03:00
Liam
f532faa5c3
renderer_vulkan: remove wrong constexpr
2023-05-18 18:01:01 -04:00
lat9nq
6597d2a5d3
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
de9a79402d
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
12a4dbe8f1
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
c8356ee137
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
896bf929d9
Merge pull request #10249 from FernandoS27/sorry-i-am-late
...
Buffer Cache: Clear sync code.
2023-05-15 12:03:25 -04:00
liamwhite
cee8ef154e
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
525cb91e3b
Buffer Cache: Clear sync code.
2023-05-15 01:50:21 +02:00
liamwhite
836b8e1d64
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
41353d738a
vulkan_device: reserve extra memory to prevent swaps
2023-05-14 16:49:59 -04:00
Liam
b10b8b7a57
vulkan_common: fix incompatible property flags
2023-05-14 01:13:11 -04:00
Liam
50b42ab980
vulkan_common: disable depth clamp dynamic state for older radv
2023-05-13 00:37:17 -04:00
Danila Malyutin
84df6eb7f9
Fix missing pic_order_present_flag in h264 header
...
Fixes #9635
2023-05-12 22:30:59 +04:00
Kelebek1
8a5db1aeff
Correctly track RT indexes for image aspect lookup during clears
2023-05-12 01:40:21 +01:00
liamwhite
4838605114
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
855502e669
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
fc6c77f7ae
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
66732f3e22
renderer_vulkan: separate guest and host compute descriptor queues
2023-05-10 13:46:48 -04:00
Kelebek1
b72b1f0a4e
Use the rendertarget format of the correct RT rather than the first valid
2023-05-09 22:13:15 +01:00
Kelebek1
05dcdf5793
Swap order of checking/setting region modifications in the buffer_cache
2023-05-09 20:21:08 +01:00
Fernando Sahmkow
a1317c3a6e
Texture Cache: Fix ASTC textures
2023-05-09 02:42:10 +02:00
Fernando Sahmkow
5fa8c8685e
Texture cache: Only force flush the dma downloads
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
8203f2d8e1
Buffer Cache: disable reactive flushing in it.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
a7a63d119c
Texture cache: reverse inmediate flush changes
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
1a2ed85a28
Buffer cache: always use async buffer downloads and fix regression.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
134c14f089
Address feedback, add CR notice, etc
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
dffc48b942
Query cache: stop updating pages as it's not affected by cpu writes
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
62295b5069
Settings: add option to enable / disable reactive flushing
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
f1aa574448
Texture cache: sync the first flush.
2023-05-07 23:46:12 +02:00
Fernando Sahmkow
6bc60f78d9
GPU: Add Reactive flushing
2023-05-07 23:46:12 +02:00
liamwhite
28ed548196
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
de45be2681
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
98f6fbd31c
vk_pipeline_cache: Use setting to disable intel compute
2023-05-07 01:06:22 -04:00
bunnei
12c4c09b3f
Merge pull request #10125 from lat9nq/vsync-select
...
configuration: Expose separate swap present modes
2023-05-06 21:55:39 -07:00
Kelebek1
d43a18a6ef
Log object names with debug renderer, add a GPU address to ImageViews
2023-05-06 04:48:32 +01:00
liamwhite
64e46e723a
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
c9a31835b6
Merge pull request #10153 from FernandoS27/a-quickie-fixie
...
Memory manager: Fix possible softlock
2023-05-04 03:56:53 +02:00
bunnei
edac11f6c8
Merge pull request #10142 from FernandoS27/missing-astc
...
GPU: implement missing ASTC
2023-05-03 16:49:27 -07:00
Fernando Sahmkow
d9b4380457
Memory manager: Fix possible softlock
2023-05-04 00:15:21 +02:00
bunnei
6f10c3fcd8
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
94ecd260e3
GPU: implement missing ASTC
2023-05-03 11:33:28 -04:00
liamwhite
58b38d1761
Merge pull request #10151 from GPUCode/no-softlocks-please
...
Fix softlocks when disabling async present
2023-05-03 10:54:24 -04:00
Morph
2f29ad9d7e
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
5e21f326b2
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
40fa53e6d7
vk_present_manager: Fix softlocks when disabling async present
2023-05-03 07:50:10 +03:00
lat9nq
cef9dca85f
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
ff2197130f
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
581d8f34ee
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
3fc1615e28
Fix code resize to use word size rather than byte size
2023-05-02 23:52:21 +01:00
Liam
44b15592e8
vulkan: disable turbo when debugging tool is attached
2023-05-02 18:14:57 -04:00
Liam
2438a0b087
video_core: fix build on Apple Clang
2023-05-02 18:05:30 -04:00
GPUCode
d56a40606c
vk_present_manager: Add toggle for async presentation
2023-05-01 23:13:24 +03:00
GPUCode
f9514cbc51
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
373cfc636c
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
8eede48a39
renderer_vulkan: Async presentation
2023-05-01 23:13:24 +03:00
Morph
98d1e50fb9
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
bd8abfe654
BufferCache: Fixes and address feedback
2023-05-01 11:43:26 +02:00
bunnei
4bcb509bbb
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
f5d2ae4c5e
Texture Cache: Release stagging buffers on tick frame
2023-04-29 15:31:38 +02:00
Fernando Sahmkow
6e18a08510
Buffer Cache: Release stagging buffers on tick frame
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
917a21317f
Clang: format and ficx compile errors.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
cd4d4072c7
Implement Async downloads in normal and fix a few issues.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
139995905e
Buffer Cache rework: Setup async downloads.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
64c9a90c20
Buffer Cache: Fully rework the buffer cache.
2023-04-29 00:46:31 +02:00
Fernando Sahmkow
cf34f7c745
Address Feedback & Clang Format
2023-04-29 00:18:21 +02:00
Fernando Sahmkow
3595172637
Maxwell3D: only update parameters on High
2023-04-29 00:18:21 +02:00
Fernando Sahmkow
b22e1a2bce
Accelerate DMA: Use texture cache async downloads to perform the copies
...
to host.
WIP
2023-04-29 00:18:21 +02:00
Fernando Sahmkow
e2bfd9e8c4
TextureCache: refactor DMA downloads to allow multiple buffers.
2023-04-29 00:18:21 +02:00
Morph
79d97d07e2
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
0da4b879eb
QueryCache: Fix write invalidation.
2023-04-28 23:53:46 +02:00
Fernando Sahmkow
ff3cf7c1d9
MemoryManager: Fix race conditions.
2023-04-28 23:53:02 +02:00
Fernando Sahmkow
f606fa3515
Clang format and ddress feedback
2023-04-24 12:38:47 +02:00
Fernando S
f430449ddb
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
f151023e45
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
abe4e83b45
QueryCache: rework async downloads.
2023-04-23 22:04:14 +02:00
Fernando Sahmkow
eeffe68b7f
Accuracy Normal: reduce accuracy further for perf improvements in Project Lime
2023-04-23 22:03:44 +02:00
Fernando Sahmkow
ae99dcd531
Fence Manager: implement async fence management in a sepparate thread.
2023-04-23 04:48:50 +02:00
Liam
b84bab419c
maxwell_3d: fix out of bounds array access in size estimation
2023-04-22 10:35:26 -04:00
Kelebek1
477cbd067e
Sort overlap_ids by modification tick before copy
2023-04-22 14:02:10 +01:00
Kelebek1
0397e174ae
Account for a pre-added offset when using Corner sample mode for 2D blits
2023-04-21 19:08:21 +01:00
Liam
fb2af6a41e
vulkan: use plain fences when timeline semaphores are not available
2023-04-14 22:53:37 -04:00
bunnei
d1e4bc6202
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
e2b2842929
vulkan: pick alpha composite flags based on available values
2023-04-13 16:38:20 -04:00
Wollnashorn
111c02760b
video_core: Enable ImageGather rounding fix on AMD open source drivers
2023-04-12 17:11:02 +02:00
liamwhite
84efa203a7
Merge pull request #10008 from vonchenplus/texture_cache
...
video_core: update imageinfo implement
2023-04-11 11:59:18 -04:00
Wollnashorn
dda107ffa7
video_core: Enable ImageGather with subpixel offset on Intel
2023-04-08 16:12:44 +02:00
Wollnashorn
45fb154f0d
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
fa846222da
Merge pull request #10004 from Kelebek1/cubemap
...
[texture_cache] Only upload GPU-modified overlaps
2023-04-03 13:05:52 -04:00
Jan Beich
604f887377
externals: update Vulkan-Headers to v1.3.246
2023-04-01 05:38:54 +00:00
Feng Chen
c7675caf71
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
2023-03-31 12:33:07 +08:00
Max Dunbar
8b5becf71b
Fixes 'Continous' typo
2023-03-29 19:26:12 -07:00
Kelebek1
de4fc71536
Only upload GPU-modified overlaps
2023-03-28 11:07:39 +01:00
liamwhite
c0e0237b21
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
9308213232
video_core/macro: Make use of Common::HashValue
2023-03-25 23:52:26 -04:00
bunnei
82155e4000
Merge pull request #9985 from liamwhite/funny-meme
...
vulkan: fix scheduler chunk reserve
2023-03-24 23:40:17 -07:00
Ross Schlaikjer
ee8f63ac65
Pass GPU page table by reference
2023-03-25 00:25:02 -04:00
Liam
aea009216e
vulkan: fix scheduler chunk reserve
2023-03-24 09:09:01 -04:00
Morph
1242e360bd
Merge pull request #9975 from liamwhite/more-waiting
...
vulkan: fix more excessive waiting in scheduler
2023-03-24 00:19:43 -04:00
Liam
6eaef51cf2
memory: rename global memory references to application memory
2023-03-23 20:28:47 -04:00
liamwhite
c8963299fa
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
f33cddc400
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
62fd55e5fe
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
c4314b231f
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
af8ce05caa
vulkan: fix more excessive waiting in scheduler
2023-03-19 13:40:33 -04:00
bunnei
4471e9effe
Merge pull request #9778 from behunin/my-box-chevy
...
gpu_thread: Use bounded queue
2023-03-17 22:14:29 -07:00
Kelebek1
0a90adff87
Disable SRGB border color conversion for now, to fix shadows in Xenoblade.
2023-03-17 04:46:38 +00:00
liamwhite
f47a6b3c8d
Merge pull request #9955 from liamwhite/color-blend-equation
...
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
2023-03-15 20:19:45 -04:00
liamwhite
f3dfe9e5e1
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
09a866fe79
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
2023-03-15 15:55:07 -04:00
liamwhite
fc39bb0ef9
Merge pull request #9933 from vonchenplus/texture_format
...
video_core: Update texture format
2023-03-14 11:35:37 -04:00
FengChen
0f336df1ea
video_core: Better defined ImageInfo parameters
2023-03-14 22:36:34 +08:00
liamwhite
853e5576e6
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
11814a4991
vk_scheduler: split work queue waits and execution waits
2023-03-12 17:19:44 -04:00
Liam
5be8a74b0c
general: fix spelling mistakes
2023-03-12 11:33:01 -04:00
FengChen
e067d314ba
video_core: Fix ogl status error when draw_texture
2023-03-12 13:33:31 +08:00
FengChen
5a1d6233b2
video_core: Invalid index_buffer flag when inline_index draw
2023-03-12 13:21:26 +08:00
Fernando S
0edffb460d
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
68e1996e52
Merge pull request #9925 from ameerj/gl-sync-signal
...
OpenGL: Prefer glClientWaitSync for OGLSync objects
2023-03-10 13:55:22 -05:00
liamwhite
2b8955aaa4
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
63a0d2661c
video_core: Update texture format
2023-03-10 21:48:50 +08:00
liamwhite
89c9a9e145
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
625d716f56
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
a9fc59a998
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
ddb330121a
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
d55cc3b004
general: fix type inconsistencies
2023-03-07 20:05:19 -05:00
liamwhite
4bdcafda58
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
bc5a8c664b
gl_rasterizer: Implement AccelerateDMA DmaBufferImageCopy
2023-03-06 22:57:52 -05:00
ameerj
e901a7f029
Refactor AccelerateDMA code
2023-03-06 22:57:45 -05:00
Fernando Sahmkow
82f37192ec
Engines: Implement Accelerate DMA Texture.
2023-03-05 12:18:00 +01:00
Morph
e25334b8b3
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
7f06f21046
Merge pull request #9884 from liamwhite/service-cleanup
...
service: miscellaneous cleanups
2023-03-03 22:51:17 -05:00
Kelebek1
2f525864a8
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
43c3c6e3dc
gpu_thread: Use bounded queue
2023-03-03 18:20:56 -07:00
Liam
cd7e0b03b7
vulkan_common: disable vertexInputDynamicState on unsupported driver
2023-03-01 22:48:12 -05:00
Liam
c191cf75bb
nvnflinger: fix name
2023-03-01 10:39:49 -05:00
Matías Locatti
7cc539e8b8
Partially apply LTO to only core and video_core projects.
2023-02-27 18:44:14 -03:00
ameerj
0194f25eb9
buffer_cache: Add logic for non-NVN storage buffer tracking
2023-02-25 16:24:21 -05:00
ameerj
c5386e2179
configuration: Add async ASTC decode setting
2023-02-22 18:21:09 -05:00
ameerj
08c1dc9587
texture_cache: Add async texture decoding
2023-02-22 00:26:07 -05:00
Merry
38f528134f
svc: Fix type consistency (exposed on macOS)
2023-02-21 21:39:17 +00:00
liamwhite
694f67e2d5
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
d58636445f
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
59199a3db3
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
2d86d111fa
Reimplement the invalidate_texture_data_cache register
2023-02-14 19:34:10 +00:00
Kelebek1
6afc4a2134
Allow >1 cpu threads on video decoding, disable multi-frame decoding
2023-02-14 18:55:46 +00:00
arades79
60a68839ee
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
adcef452e0
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
5cf07bebee
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
b60e0b5360
texture_cache: OpenGL: Implement MSAA uploads and copies
2023-02-11 15:43:07 -05:00
liamwhite
116140b8a4
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
287638f621
Merge pull request #9744 from behunin/quick-release
...
gpu_thread: Remove OnCommandListEndCommand
2023-02-11 10:28:30 -05:00
FengChen
b2395ce048
video_core: Speed up video frame data copy
2023-02-11 22:18:54 +08:00
liamwhite
5e8beb000b
Merge pull request #9736 from Kelebek1/dynamic_vertex_attribs
...
Remove fake vertex bindings when dynamic state is enabled
2023-02-09 22:14:55 -05:00
ameerj
c5f3db8235
buffer_base: Partially revert changes from #9559
...
This fixes a regression where Yoshi's Crafted World (and potentially other titles) would enter an infinite loop when GPU Accuracy was set to "Normal"
2023-02-08 19:37:23 -05:00
Behunin
09f64e648a
Remove OnCommandListEndCommand
...
Call rasterizer->ReleaseFences() directly
2023-02-07 17:21:17 -07:00
Kelebek1
b2a024c42a
Remove fake vertex bindings when dynamic state is enabled
2023-02-05 22:28:03 +00:00
liamwhite
f4d17a1428
Merge pull request #9708 from ameerj/gl-context-flush
...
gl_shader_cache: Force context flush when loading disk shader cache
2023-02-01 22:38:13 -05:00
liamwhite
c3424d3da3
Merge pull request #9631 from vonchenplus/vulkan_clear
...
video_core: Implement vulkan clear specified channel
2023-01-30 09:01:55 -05:00
ameerj
8e0a70ddcf
gl_compute_pipeline: Force context flush when loading shader cache
2023-01-29 21:32:12 -05:00
ameerj
175244e92e
gl_graphics_pipeline: Force context flush when loading shader cache
2023-01-29 20:26:49 -05:00
Levi Behunin
2ff6c44168
Move to Clang Format 15
...
Depends on https://github.com/yuzu-emu/build-environments/pull/69
clang-15 primary run
2023-01-29 17:49:42 -07:00
bunnei
f0539b70d5
Merge pull request #9691 from ameerj/msaa-texcache
...
texture_cache: Fix tracking of MSAA image views
2023-01-28 23:47:45 -08:00
ameerj
ee53f833e7
texture_cache: Adjust image view sizes by MSAA samples
2023-01-28 00:15:29 -05:00
FengChen
667f2331d1
video_core: Implement vulkan clear specified channel
2023-01-28 12:53:05 +08:00
liamwhite
f81bd5bc15
Merge pull request #9539 from Wollnashorn/opengl-fsr
...
video_core/opengl: Added FSR upscaling filter to the OpenGL renderer
2023-01-27 19:28:35 -05:00
Wollnashorn
6b840142b3
video_core/opengl: Add FSR upscaling filter to the OpenGL renderer
2023-01-26 21:43:33 +01:00
Merry
6b50650633
Revert "MemoryManager: use fastmem directly."
...
This reverts commit 7f18e3bb89 .
2023-01-25 10:12:04 +00:00
Liam
77d98593dc
nsight_aftermath_tracker: update for latest Aftermath SDK
2023-01-21 13:01:19 -05:00
liamwhite
1bd93d9f3b
Merge pull request #9556 from vonchenplus/draw_texture
...
video_core: Implement maxwell3d draw texture method
2023-01-19 14:58:53 -05:00
Kelebek1
1b8f2ddbe7
Demote maxwell3d Firmware4 call log to debug
2023-01-18 01:59:11 +00:00
Feng Chen
a3da7094bc
Address feedback
2023-01-16 10:27:57 +08:00
Morph
bd62fdca7a
Merge pull request #9596 from liamwhite/mvk
...
MoltenVK: restrict number of vertex attributes/bindings to 16
2023-01-10 18:11:44 -05:00
Liam
73c62bbc7a
vulkan_common: fix indirect draw with count
2023-01-10 09:43:36 -05:00
TellowKrinkle
6e8caa48e7
MoltenVK: restrict number of vertex attributes/bindings to 16
2023-01-09 19:01:09 -05:00
Morph
c6b5b96efa
Merge pull request #9581 from liamwhite/turbo2
...
renderer_vulkan: pause turbo submissions on inactive queue
2023-01-09 16:23:16 -05:00
Liam
8157a52821
vulkan_device: refactor feature testing
2023-01-09 16:12:16 -05:00
Fernando Sahmkow
4cb1b7a60a
VideoCore: Fix OGL cache invalidation.
2023-01-07 21:56:17 -05:00
Liam
ecf4f380b6
Revert "Vulkan, OpenGL: Hook up storage buffer alignment code"
...
This reverts commit 195248d6fe .
2023-01-07 15:48:50 -05:00
Liam
a2853754c4
renderer_vulkan: pause turbo submissions on inactive queue
2023-01-07 14:35:11 -05:00
Narr the Reg
a445e93e52
Merge pull request #9570 from liamwhite/less-clock-boost
...
renderer_vulkan: disable clock boost on unvalidated devices
2023-01-07 10:41:37 -06:00
Liam
f82c3649c3
vulkan_device: avoid attempt to access empty optional
2023-01-06 21:23:21 -05:00
Liam
652b95d1b8
renderer_vulkan: disable clock boost on unvalidated devices
2023-01-06 19:07:47 -05:00
Narr the Reg
c5a006cb24
opengl: Sanitize antialiasing config
2023-01-06 13:42:20 -06:00
Wollnashorn
dcf8c4b4c8
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
6adfb0ab14
Merge pull request #9535 from bylaws/master
...
Port over several shader-compiler fixes from skyline
2023-01-06 10:06:45 -05:00
liamwhite
41958ff4ae
Merge pull request #9552 from liamwhite/turbo
...
vulkan: implement 'turbo mode' clock booster
2023-01-06 09:59:59 -05:00
Fernando S
7adf046099
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
Fernando Sahmkow
d46062e354
MacroHLE: eliminate 2 rushed macros.
2023-01-05 20:53:31 -05:00
liamwhite
7ad49399b3
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
075f942d5d
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
Billy Laws
535e297ebd
Run clang-format
2023-01-05 22:18:10 +00:00
Billy Laws
00c51d0a4f
Vulkan, OpenGL: Hook up geometry shader passthrough emulation
2023-01-05 22:13:07 +00:00
Billy Laws
195248d6fe
Vulkan, OpenGL: Hook up storage buffer alignment code
2023-01-05 22:13:07 +00:00
Billy Laws
77aea7e2b4
Vulkan: Add a workaround for input_position on Adreno drivers
...
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
2023-01-05 22:13:07 +00:00
Wollnashorn
1896bc9987
video_core/vulkan: Vulkan driver pipelines now contain cache version
...
So that old cache can get deleted when the cache version changes and does not grow infinitely
2023-01-05 21:03:01 +01:00
Wollnashorn
8a9ebe4146
video_core/vulkan: Added check if Vulkan pipeline path has been set
2023-01-05 21:03:01 +01:00
Wollnashorn
ef0b585b0b
video_core/vulkan: Added `VkPipelineCache` to store Vulkan pipelines
...
As an optional feature which can be enabled in the advanced graphics configuration, all pipelines that get built at the initial shader loading are stored in a VkPipelineCache object and are dumped to the disk.
These vendor specific pipeline cache files are located at `/shader/GAME_ID/vulkan_pipelines.bin`. This feature was mainly added because of an issue with the AMD driver (see yuzu-emu#8507) causing invalidation of the cache files the driver builds automatically.
2023-01-05 21:02:44 +01:00
Fernando Sahmkow
d777ec15f8
BufferBase: Don't ignore GPU pages.
2023-01-05 14:00:10 -05:00
Fernando Sahmkow
91e1c7a727
Fermi2D: sync cache flushes
2023-01-05 06:43:28 -05:00
Fernando Sahmkow
7f18e3bb89
MemoryManager: use fastmem directly.
2023-01-05 06:06:33 -05:00
Fernando Sahmkow
8eafb91af0
video_core: Cache GPU internal writes.
2023-01-05 05:23:39 -05:00
Fernando Sahmkow
660ea18f85
Vulkan: Fix drivers that don't support dynamic_state_2 up
2023-01-05 00:11:16 -05:00
Feng Chen
3b5e1a24bc
video_core: Implement opengl/vulkan draw_texture
2023-01-05 12:41:33 +08:00
Feng Chen
79268b94de
video_core: Implement maxwell3d draw texture method
2023-01-05 12:41:28 +08:00
Liam
d9b2bc7f04
common: add setting for renderer clock workaround
2023-01-04 22:22:01 -05:00
Liam
1a32e03a0f
vulkan: implement 'turbo mode' clock booster
2023-01-04 22:22:01 -05:00
Liam
2e1c5b8310
renderer_vulkan: implement fallback path for null descriptors
2023-01-04 22:14:01 -05:00
Fernando Sahmkow
e5d02ff039
yuzu-ui: Add setting for disabling macro HLE
2023-01-04 14:56:52 -05:00
Fernando Sahmkow
1fdf24a081
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
62fc8bfe16
Texture Cache: Implement async texture downloads.
2023-01-03 22:52:15 -05:00
Fernando Sahmkow
98b7ebe02d
Vulkan: Update blacklisting to latest driver versions.
2023-01-03 21:16:43 -05:00
Fernando Sahmkow
872f2e7de6
ShaderCompiler: Inline driver specific constants.
2023-01-03 16:29:25 -05:00
Fernando Sahmkow
efd5661978
Vulkan: rework stencil tracking.
2023-01-03 16:29:16 -05:00
Liam
527c844a44
vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1
2023-01-01 16:43:58 -05:00
Liam
af9b730db8
video_core: fix build
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
e6e49e584f
MacroHLE: Final cleanup and fixes.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
ea140a70fa
Rasterizer: Setup skeleton for Host Conditional rendering
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
3ea10762d2
RasterizerMemory: Add filtering for flushing/invalidation operations.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
e9e619b605
Vulkan: Allow stagging buffer deferrals.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
f7b16c30f1
MacroHLE: Add OpenGL Support
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
95d314ebec
Vulkan: Add other additional pipeline specs
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
67a706d812
Vulkan: Implement Dynamic State 3
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
af68dc011b
Vulkan Implement Dynamic State 2 LogicOp and PatchVertices
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
dc0f7dea8f
Vulkan: Implement Dynamic States 2
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
4bf1ee5bdc
DMAPusher: Improve collection of non executing methods
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
d2643a61c3
Revert Buffer cache changes and setup additional macros.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
12a76465b9
MacroHLE: Reduce massive calculations on sizing estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
7842543573
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
209ce46a9f
MacroHLE: Add Index Buffer size estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
b4fcb0b2b2
MacroHLE: Refactor MacroHLE system.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
b5b0ec9429
MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
f2f2784817
MacroHLE: Add MultidrawIndirect HLE Macro.
2023-01-01 16:43:57 -05:00
Liam
86854a2384
vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
2023-01-01 11:59:47 -05:00
liamwhite
22f12c976e
Merge pull request #9423 from vonchenplus/vulkan_quad_strip
...
video_core: Implement all vulkan topology
2022-12-28 20:59:23 -05:00
FengChen
690070f088
video_core: Implement other missing vulkan topology
2022-12-26 12:20:49 +08:00
FengChen
2572668950
video_core: Implement vulkan QuadStrip topology
2022-12-26 11:37:34 +08:00
ameerj
d45c01bd13
texture_cache: Use Common::ScratchBuffer for swizzle buffers
2022-12-25 15:47:41 -05:00
ameerj
51eb1f4aab
texture_cache: Use pre-allocated buffer for texture downloads
2022-12-25 15:38:36 -05:00
ameerj
204e35087f
texture_cache: Use pre-allocated buffer for texture uploads
2022-12-25 15:38:36 -05:00
Fernando S
d1bac2838f
Merge pull request #9453 from ameerj/scratch-vector
...
common: Add ScratchBuffer Class
2022-12-24 20:26:06 -05:00
ameerj
4d5adfb3c9
scratch_buffer: Explicitly defing resize and resize_destructive functions
...
resize keeps previous data intact when the buffer grows
resize_destructive destroys the previous data when the buffer grows
2022-12-19 22:40:50 -05:00
ameerj
284582a0b2
dma_pusher: Rework command_headers usage
...
Uses ScratchBuffer and avoids overwriting the command_headers buffer with the prefetch_command_list
2022-12-19 18:08:04 -05:00
ameerj
a9c22d329d
buffer_cache: Use Common::ScratchBuffer for ImmediateBuffer usage
2022-12-19 18:08:04 -05:00
ameerj
b501ee907e
video_core: Add usages of ScratchBuffer
2022-12-19 18:08:04 -05:00
Jan Beich
f3412998f0
externals: update Vulkan-Headers to v1.3.238
2022-12-19 17:14:29 +00:00
liamwhite
db106151d7
Merge pull request #7450 from FernandoS27/ndc-vulkan
...
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-17 16:08:10 -05:00
Kelebek1
6787d87e44
Remove unimplemented transform feedback geometry spam, it should be implemented
2022-12-16 22:52:29 +00:00
Narr the Reg
016590e25d
Merge pull request #9431 from liamwhite/sixty-five-oh-two
...
vulkan_common: declare storageBuffer8BitAccess
2022-12-15 17:52:16 -06:00
liamwhite
f868fa8883
Merge pull request #7410 from Nefsen402/wayland-fixes
...
Wayland fixes
2022-12-15 12:05:01 -05:00
FernandoS27
11f29ec173
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-13 21:39:18 -05:00
Liam
aec084e315
vulkan_common: declare storageBuffer8BitAccess
2022-12-13 18:28:50 -05:00
Alexander Orzechowski
9e0510f77d
gl_device: Use a more robust way to use strict context mode
...
Instead of checking a environment variable which may not actually
exist or is just wrong, ask QT if it's running on the wayland
platform.
2022-12-13 15:01:51 -05:00
Alexander Orzechowski
ef5ccad791
video_core/vulkan: Explicity check swapchain size when deciding to recreate
...
Vulkan for whatever reason does not return VK_ERROR_OUT_OF_DATE_KHR when
the swapchain is the wrong size. Explicity make sure the size is indeed
up to date to workaround this.
2022-12-13 13:23:35 -05:00
Liam
2c6460d168
renderer_opengl: refactor context acquire
2022-12-13 13:23:23 -05:00
yzct12345
462220fe15
Fix validation errors on less compatible Intel GPU
2022-12-12 20:53:05 -05:00
bunnei
d6c387db44
Merge pull request #9406 from vonchenplus/topology
...
video_core: Adjust topology update logic and Adjust Clear Manage
2022-12-12 14:37:06 -08:00
Mai
7fac14c0ca
Merge pull request #9420 from liamwhite/aniso
...
video_core: fix off by one in anisotropic filtering amount
2022-12-12 03:34:09 +00:00
Matías Locatti
f700121800
Merge pull request #9409 from liamwhite/smaa2
...
video_core: Integrate SMAA
2022-12-11 01:38:28 -03:00
Liam
c5a82ada2b
video_core: fix off by one in anisotropic filtering amount
2022-12-10 20:54:45 -05:00
Salvage
56a3ed4355
Fix compilation error
2022-12-09 14:49:15 +01:00
Liam
292cc68b75
video_core: Integrate SMAA
...
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
2022-12-08 17:17:45 -05:00
FengChen
b40cdac0a4
video_core: Add vertex_array_instance_* sbubbed called warning
2022-12-08 23:19:31 +08:00
FengChen
17596e69b9
video_core: The draw manager manages whether Clear is required.
2022-12-08 23:10:52 +08:00
FengChen
f09cf68f91
video_core: Adjust topology update logic
2022-12-08 22:40:28 +08:00
Fernando S
b9ebc10680
Merge pull request #9401 from vonchenplus/draw_manager
...
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 12:41:39 +01:00
Feng Chen
ad05d9fe1e
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 10:12:19 +08:00
Morph
5a607ba49f
Merge pull request #9365 from liamwhite/val
...
vulkan_common: quiet some validation errors
2022-12-06 21:08:14 -05:00
Fernando S
7ca1fcfcce
Merge pull request #9393 from liamwhite/more-vulkan
...
vulkan_common: further initialization tweaks
2022-12-06 17:45:08 +01:00
liamwhite
22c925b1b4
Merge pull request #9360 from Kelebek1/R-E-S-P-E-C-T
...
Respect render mode override
2022-12-05 22:17:22 -05:00
Liam
d50abc6a9c
vulkan_common: further initialization tweaks
2022-12-05 22:06:35 -05:00
liamwhite
b4ef55753e
Merge pull request #6833 from abouvier/unbundle
...
cmake: prefer system libraries
2022-12-05 12:26:09 -05:00
Fernando Sahmkow
7a7235b961
Vulkan: Implement Alpha coverage
2022-12-05 12:33:12 +01:00
Alexandre Bouvier
325a016cd2
cmake: prefer system libraries
2022-12-04 17:09:25 +01:00
Liam
ee4e09128f
vulkan_common: add feature test for shaderDrawParameters
2022-12-04 10:55:13 -05:00
Liam
88ee9ef9ba
vulkan_common: clean up extension usage
2022-12-04 10:55:13 -05:00
Liam
b656f90c11
vulkan_common: correct usage of timeline semaphore fallbacks
2022-12-04 10:55:13 -05:00
Liam
f848103437
vulkan_common: ensure all mandatory features are tested in feature report
2022-12-04 10:55:13 -05:00
Liam
8db4f8593c
vulkan_common: unsuffix 16-bit storage feature test structure
2022-12-04 10:55:13 -05:00
Liam
d2299ce7d8
vulkan_common: unsuffix timeline semaphore feature test structure
2022-12-04 10:55:13 -05:00
Liam
e46525c84f
vulkan_common: add logicOp to feature report
2022-12-04 10:55:13 -05:00
Liam
540a841351
vulkan_common: promote host query reset usage to core
2022-12-04 10:55:13 -05:00
Liam
f165ae4daf
vulkan_common: promote descriptor update template usage to core
2022-12-04 10:55:13 -05:00
Liam
63b830fd41
vulkan_common: promote timeline semaphore usage to core
2022-12-04 10:55:13 -05:00
liamwhite
550f214e76
Merge pull request #9374 from liamwhite/externals
...
externals: update dynarmic, SDL2
2022-12-04 10:44:12 -05:00
Liam
8fbec5d298
externals: update dynarmic, SDL2
2022-12-04 10:12:26 -05:00
bunnei
d3e229ee9d
Merge pull request #9344 from liamwhite/null
...
video_core: add null backend
2022-12-03 11:23:25 -08:00
liamwhite
c53a3d3f37
Merge pull request #9300 from ameerj/pch
...
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
e20c5a0b7f
Merge pull request #9289 from liamwhite/fruit-company
...
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
liamwhite
dc25fddedb
Merge pull request #9353 from vonchenplus/draw_indexed
...
video_core: Fine tuning the index drawing judgment logic
2022-12-03 10:43:34 -05:00
Matías Locatti
39df80ff00
Merge pull request #9303 from liamwhite/new-vulkan-init
...
Vulkan: update initialization
2022-12-02 18:32:54 -03:00
Liam
e8966fd1f9
shader_recompiler: add gl_Layer translation GS for older hardware
2022-12-01 09:51:27 -05:00
Feng Chen
f7e82d2fd6
video_core: Fine tuning the index drawing judgment logic
2022-12-01 19:14:58 +08:00
Liam
44db218c6d
vulkan_common: quiet some validation errors
2022-11-30 19:18:05 -05:00
ameerj
fb155dbffc
CMake: Consolidate common PCH headers
2022-11-30 18:30:30 -05:00
Kelebek1
bb10e5e6eb
Respect render mode override
2022-11-30 01:43:36 +00:00
ameerj
bbf3e7f313
CMake: Use precompiled headers
2022-11-29 18:50:49 -05:00
liamwhite
dfe5ec8f9c
Merge pull request #9352 from lioncash/vidcast
...
engines: Remove unnecessary casts
2022-11-29 18:45:16 -05:00
Lioncash
225f5ba19f
host1x/syncpoint_manager: Eliminate unnecessary std::function construction
...
We can just pass the function object through, and if it's a valid
function, then it will automatically be converted.
2022-11-29 08:58:50 -05:00
Lioncash
b03305859e
host1x/syncpoint_manager: Pass DeregisterAction() handle as const-ref
...
The handle is only compared against and not modified in any way, so we
can pass it by const reference.
This also allows us to mark the respective parameters for
DeregisterGuestAction() and DeregisterHostAction() as const references
as well.
2022-11-29 08:55:33 -05:00
Lioncash
a3ed3c8340
maxwell_3d: Mark shifted value as unsigned
...
Otherwise this is technically creating a signed int result that gets
converted. Just a consistency change.
While we're in the area, we can mark Samples() as const.
2022-11-29 08:39:33 -05:00
Lioncash
0d9c723df4
engines: Remove unnecessary casts
...
In a few cases we have some casts that can be trivially removed.
2022-11-29 08:38:46 -05:00
Lioncash
789c33dc48
video_core/surface: Eliminate casts in GetFormatType()
...
We can just compare directly and get rid of verbose casting.
2022-11-28 20:25:44 -05:00
Liam
acc4a150ef
video_core: add null backend
2022-11-28 19:49:09 -05:00
Liam
0a077cb467
Vulkan: update initialization
...
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 -05:00
bunnei
0e8043fc24
Merge pull request #9276 from goldenx86/fsrSlider
...
FSR Sharpening Slider
2022-11-27 00:13:15 -08:00
liamwhite
0f9aee1f8a
Merge pull request #9288 from vonchenplus/deferred_draw
...
video_core: Fine tune maxwell drawing trigger mechanism
2022-11-26 09:35:45 -05:00
liamwhite
8ee07be628
Merge pull request #9307 from Morph1984/not-used-correctly
...
maxwell_to_vk: Fix format usage bits and add R16_SINT
2022-11-26 09:08:55 -05:00
liamwhite
ac7ceced88
Merge pull request #9194 from FernandoS27/yfc-fermi2d
...
YFC - Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 21:48:41 -05:00
Fernando Sahmkow
984c30bc52
Fermi2D: Cleanup and address feedback.
2022-11-24 21:00:48 +01:00
Fernando Sahmkow
b3708b0a5b
GPU: Fix buffer cache issue, engine upload not inlining memory in multiline and pessismistic invalidation.
2022-11-24 20:57:16 +01:00
Fernando Sahmkow
a87ff9181b
GPU: Implement additional render target formats.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
e3b3fcb1fc
MaxwellDMA: Implement BlockLinear to BlockLinear copies.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
41b3ddbbae
Fermi2D: Implement Bilinear software filtering and address feedback.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
f4291e4576
Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 20:35:44 +01:00
Matías Locatti
8e19421f84
FSR Sharpening Slider part 1 - only a global slider
2022-11-24 04:22:13 -05:00
Morph
79d76606f2
maxwell_to_vk: Add R16_SINT
...
This was somehow missed when the format was added to GL
2022-11-23 21:30:58 -05:00
Morph
44ef6e38cb
maxwell_to_vk: Fix format usage bits
...
- VK_FORMAT_B8G8R8A8_UNORM supports the STORAGE_IMAGE_BIT
- VK_FORMAT_R4G4B4A4_UNORM_PACK16 does not support the COLOR_ATTACHMENT_BIT
2022-11-23 21:29:43 -05:00
Liam
5a712bb51a
general: fix compile for Apple Clang
2022-11-22 22:22:28 -05:00
FengChen
607a965c57
video_core: Optimize maxwell drawing trigger mechanism
2022-11-22 17:53:26 +08:00
liamwhite
cebe63ee08
Merge pull request #9216 from vonchenplus/reimp_inline_index_buffer
...
video_core: Reimplement inline index buffer binding
2022-11-20 12:08:08 -05:00
Morph
2d185b2c44
Merge pull request #9249 from goldenx86/available-vram
...
Add available Vulkan VRAM to log files
2022-11-20 00:21:29 -05:00
bunnei
09a93caeb8
Merge pull request #9252 from liamwhite/radv-superiority
...
maxwell3d: HLE multi-layer clear macro
2022-11-19 01:46:48 -08:00
Morph
ab4c53a3e6
Merge pull request #9229 from Docteh/achy_breaky_heart
...
Add break for default cases
2022-11-17 19:20:18 -05:00
Liam
e219606128
maxwell3d: full HLE for multi-layer clears
2022-11-17 08:31:43 -05:00
Liam
bc9a3c2033
maxwell3d: HLE multi-layer clear macro
2022-11-16 22:28:58 -05:00
Matías Locatti
dad4e68530
Update renderer_vulkan.cpp
2022-11-16 05:53:42 -03:00
Feng Chen
e32414b94b
video_core: Reimplement inline index buffer binding
2022-11-15 12:10:44 +08:00
Kyle Kienapfel
d886438754
Add break for default cases
...
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.
I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw
R_THROW macro leads towards a return
2022-11-13 16:30:55 -08:00
bunnei
dcbcbcb9d4
Merge pull request #9226 from Kelebek1/regs_regression
...
[video_core] Fix a couple regs regressions
2022-11-12 02:27:06 -08:00
liamwhite
77885a5cb6
Merge pull request #9204 from vonchenplus/dma_copy_1d_random_crash
...
video_core: Fix dma copy 1D random crash
2022-11-11 17:56:41 -05:00
liamwhite
c4d9b65e0c
Merge pull request #9167 from vonchenplus/tess
...
video_core: Fix few issues in Tess stage
2022-11-11 08:03:40 -05:00
Kelebek1
a5b76126e1
Fix regs regression with OpenGL two-sided stencil, and re-add data invalidation reg
2022-11-11 04:04:36 +00:00
Morph
fc301cf777
ir/texture_pass: Use host_info instead of querying Settings::values ( #9176 )
2022-11-11 03:32:53 +01:00
FengChen
751f16bf66
video_core: Fix dma copy 1D random crash
2022-11-11 00:23:45 +08:00
Liam
9509fb30a4
Initial ARM64 support
2022-11-09 16:58:49 -05:00
FengChen
348c6e5b28
video_core: Fix few issues in Tess stage
2022-11-07 15:42:42 +08:00
FengChen
9d1c9f1f58
video_core:Fix vmm kinds size error
2022-11-06 22:31:22 +08:00
Fernando S
e12153f58f
Merge pull request #9163 from vonchenplus/draw_error
...
video_core: Fix drawing trigger mechanism regression
2022-11-06 01:13:59 +01:00
Morph
8aa03d550a
Merge pull request #9189 from vonchenplus/stupid
...
video_core: Fix scaling graphical regressions for multiple games
2022-11-05 11:57:52 -04:00
FengChen
d1ae6c4092
video_core: Fix scaling graphical regressions for multiple games
2022-11-05 17:21:02 +08:00
gidoly
4dad66ac4b
Update shader cache version. ( #9175 )
2022-11-04 03:16:01 -04:00
Feng Chen
bcf6a7c0dd
video_core: Fix SNORM texture buffer emulating error ( #9001 )
2022-11-04 02:39:42 -04:00
bunnei
7c3bee5601
Merge pull request #8858 from vonchenplus/mipmap
...
video_core: Generate mipmap texture by drawing
2022-11-03 22:21:58 -07:00
Fernando S
5b0b321b41
Merge pull request #9154 from liamwhite/new-fb
...
vk_blit_screen: recreate swapchain images on guest format change
2022-11-04 01:25:34 +01:00
Morph
c2875cf69a
Merge pull request #9097 from liamwhite/intel-spv-compiler
...
video_core: don't build ASTC decoder shader unless requested
2022-11-03 19:29:33 -04:00
liamwhite
8ae1589bcd
Merge pull request #9143 from K0bin/scheduler-empty
...
vk_scheduler: Remove recorded_counts
2022-10-31 21:37:46 -04:00
FengChen
3e0cc4fd75
video_core: Fix drawing trigger mechanism regression
2022-10-31 21:57:38 +08:00
Fernando Sahmkow
ed7af8f0d9
Vulkan: Fix regression caused by limiting render area to width/height of rendef targets.
2022-10-30 21:24:28 +01:00
Liam
3d52adefa1
vk_blit_screen: recreate swapchain images on guest format change
2022-10-30 15:04:16 -04:00
bunnei
2129b4ea58
Merge pull request #9140 from vonchenplus/darw_index_bufferx_first_error
...
video_core: Fix drawing trigger mechanism regression
2022-10-29 16:10:53 -07:00
Robin Kertels
1f55ab85ab
vk_scheduler: Remove recorded_counts
2022-10-28 03:42:43 +02:00
FengChen
2636c9f876
video_core: Fix drawing trigger mechanism regression
2022-10-27 13:26:52 +08:00
FengChen
072fde772d
video_core: Catch vulkan clear op not all channel need clear
2022-10-25 22:39:29 +08:00
liamwhite
d8c264af1e
Merge pull request #9112 from vonchenplus/deferred_draw
...
video_core: Reimplementing the maxwell drawing trigger mechanism
2022-10-25 09:42:59 -04:00
bunnei
d12a088a98
Merge pull request #8873 from vonchenplus/fix_legacy_location_error
...
video_core: Fix legacy to generic location unpaired
2022-10-24 10:50:24 -07:00
Morph
afea768e8d
general: Resolve -Wunused-but-set-variable
2022-10-22 15:02:04 -04:00
Morph
c6c56d3e9c
general: Resolve -Wunused-lambda-capture and C5233
2022-10-22 15:02:04 -04:00
Morph
e9aa1821e8
decoders: Use 2's complement instead of unary -
...
Resolves C4146 on MSVC
2022-10-22 15:02:04 -04:00
Morph
4bad20dc5f
CMakeLists: Remove all redundant warnings
...
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22 15:02:04 -04:00
Fernando S
99cefb62fd
Merge pull request #9095 from FernandoS27/meat-good-vegetable-bad
...
Maxwell3D/Puller: Fix regressions and syncing issues.
2022-10-22 13:06:03 +02:00
FengChen
f9f995c56a
video_core: Implement maxwell inline_index method
2022-10-22 16:58:23 +08:00
FengChen
8eed4e7ee5
video_coare: Reimplementing the maxwell drawing trigger mechanism
2022-10-21 17:09:22 +08:00
Morph
d481ac5a0c
format_lookup_table: Implement R32_B24G8 with D32_FLOAT_S8_UINT
...
This format is similar to Z32_FLOAT_X24S8_UINT, which is implemented with D32_FLOAT_S8_UINT.
Used in Persona 5 Royal
2022-10-21 01:54:57 -04:00
Liam
b3c972a500
video_core: don't build ASTC decoder shader unless requested
2022-10-19 18:52:42 -04:00
liamwhite
6291423f8b
Merge pull request #9071 from bunnei/mp-mm
...
Kernel Multiprocess (Part 1) - Persist memory & core timing
2022-10-19 16:27:43 -04:00
Fernando S
8698e12596
Merge pull request #9084 from vonchenplus/dma_copy
...
video_core: implement 1D copies based on VMM 'kind'
2022-10-19 06:56:00 +02:00
Fernando Sahmkow
6118d0d042
Maxwell3D/Puller: Fix regressions and syncing issues.
2022-10-19 06:21:51 +02:00
bunnei
2a909989ee
video_core: renderer_vulkan: vk_query_cache: Avoid shutdown crash in QueryPool::Reserve.
2022-10-18 19:13:35 -07:00
FengChen
584a200d86
video_core: implement 1D copies based on VMM 'kind'
2022-10-17 15:35:12 +08:00
FengChen
2d53a37461
video_core: Implement memory manager page kind
2022-10-17 15:33:29 +08:00
Morph
14a89390d2
video_core: Fix spelling of "synchronize"
2022-10-16 00:50:53 -04:00
Morph
6e9ed95246
renderer_(opengl/vulkan): Fix tessellation clockwise parameter
...
This should be assigned CW only on Triangles_CW rather than not Triangles_CCW, making CCW the default winding order rather than CW.
2022-10-13 15:52:56 -04:00
bunnei
62357f5e0f
Merge pull request #9027 from yuzu-emu/revert-8987-another-name-for-reinforcement-steel
...
Revert "vulkan: automatically use larger staging buffer sizes when possible"
2022-10-12 15:36:56 -07:00
bunnei
e40be60a6f
Merge pull request #9024 from liamwhite/async-screenshot
...
video_core: don't block rendering on screenshots
2022-10-12 13:26:32 -07:00
bunnei
6c73701035
Merge pull request #9049 from liamwhite/monkeyhawk
...
syncpoint_manager: ensure handle is removable before removing
2022-10-12 12:34:22 -07:00
Liam
aea16faabf
syncpoint_manager: ensure handle is removable before removing
2022-10-10 19:22:26 -04:00
Kelebek1
bc29a3a188
Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong.
2022-10-10 20:59:57 +01:00
Fernando S
92494454e7
Merge pull request #8766 from Kelebek1/regs
...
[video_core] Update 3D registers
2022-10-09 07:04:03 +02:00
Mai
acdb716777
Merge pull request #9016 from liamwhite/drunken-schedule
...
vk_scheduler: wait for command processing to complete
2022-10-07 20:27:16 -04:00
Liam
21f9dcfd5a
video_core: don't block rendering on screenshots
2022-10-07 17:33:59 -04:00
Kelebek1
37845e1228
Update 3D regs
2022-10-07 14:13:45 +01:00
liamwhite
041976f94e
Revert "vulkan: automatically use larger staging buffer sizes when possible"
2022-10-07 04:49:08 -04:00
Byte
285aedee4f
vulkan_blitter: Fix pool allocation double free.
2022-10-06 21:00:54 +02:00
Liam
13946e7926
maxwell_dma: remove warnings from implemented functionality
2022-10-06 21:00:54 +02:00
Fernando Sahmkow
1595e77913
General: address feedback
2022-10-06 21:00:54 +02:00
Liam
78362ac6dd
state_tracker: workaround channel setup for homebrew
2022-10-06 21:00:54 +02:00
Morph
5ee9e5e84b
general: Format licenses as per SPDX guidelines
2022-10-06 21:00:54 +02:00
Fernando Sahmkow
5cbe6e1739
Address Feedback from bylaws.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
2f61540d44
General: Fix clang format.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
46a73fed37
Vulkan Swapchain: Overall improvements.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
5fe5e1913e
Vulkan Texture Cache: Limit render area to the max width/height of the targets.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
707926765b
ImageBase: Basic fixes.
2022-10-06 21:00:53 +02:00
Liam White
6df0663a57
General: Fix compilation for GCC
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
602cb1e42f
VideoCore: Implement formats needed for N64 emulation.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
03a978b04b
Buffer Cache: Deduce vertex array limit from memory layout when limit is the highest possible.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
5ef7ad3294
VideoCore: Add option to dump the macros.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
4124fa18e3
NVDRV: Further improvements.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
7472eb83fc
Buffer Cache: Basic fixes.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
599af475c2
Decoders: Improve overall speed.
2022-10-06 21:00:53 +02:00
bunnei
616e83dd94
DMA & InlineToMemory Engines Rework.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
4c8b983c3a
Maxwell3D: Add small_index_2
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
a1b6ba1602
Memory Manager: ensure safety of GPU to CPU address.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
6a3eca65ea
MemoryManager: Fix errors popping out.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
dc74837ac9
Shader Decompiler: Check for shift when deriving composite samplers.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
8f0981702a
MemoryManager: Finish up the initial implementation.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
140926e2b5
OpenGL: Fix TickWork
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
42ef10060a
VideoCore: Refactor fencing system.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
67bb131e37
MemoryManager: initial multi paging system implementation.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
c344514f8c
Vulkan: Fix Scissor on Clears
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
43d8a8fb77
NVDRV: Further refactors and eliminate old code.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
383f95a063
NVDRV: Refactor Host1x
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
a6425c97e4
VideoCore: Refactor syncing.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
95059af14c
Texture Cache: Fix GC and GPU Modified on Joins.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
bc66debfdc
Texture cache: Fix the remaining issues with memory mnagement and unmapping.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
c98aff1660
Texture cache: Fix dangling references on multichannel.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
0925f2386a
Refactor VideoCore to use AS sepparate from Channel.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
618dac2d51
General: Rebase fixes.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
a933bd94d6
VideoCore: Extra Fixes.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
19d8ea6bd6
NVDRV: Remake ASGPU
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
80a4737010
MemoryManager: Temporary Fix for NVDEC.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
a4346d16ed
VideoCore: Update MemoryManager
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
9f62d4f41f
VideoCore: Fix channels with disk pipeline/shader cache.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
3b7b493a33
OpenGl: Implement Channels.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
199642590c
NVHOST_CTRl: Implement missing method and fix some stuffs.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
8847b6645c
VideoCore: implement channels on gpu caches.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
4165ead1f1
NvHost: Remake Ctrl Implementation.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
b7df4e83d1
Texture Cache: Add ASTC 10x5 Format.
2022-10-06 16:45:40 +02:00
bunnei
29d949a485
Merge pull request #9013 from liamwhite/spinning-a-yarn
...
common: remove "yuzu:" prefix from thread names
2022-10-05 18:53:42 -07:00
Fernando S
f22d7d4e4f
Merge pull request #8987 from liamwhite/another-name-for-reinforcement-steel
...
vulkan: automatically use larger staging buffer sizes when possible
2022-10-05 08:54:22 +02:00
bunnei
41651dda1a
Merge pull request #9005 from liamwhite/micro-fit
...
macro_jit_x64: cancel exit for taken branch
2022-10-04 20:08:02 -07:00
bunnei
9dee93624d
Merge pull request #9010 from liamwhite/buttwise
...
macro_jit_x64: fix miscompilation of bit extraction operations
2022-10-04 15:52:39 -07:00
Liam
9e7b0bc155
vk_scheduler: wait for command processing to complete
2022-10-03 20:03:25 -04:00
Liam
47fc168030
common: remove "yuzu:" prefix from thread names
2022-10-03 18:43:56 -04:00
liamwhite
4c82c53624
Merge pull request #6598 from FernandoS27/falklands-are-british
...
MacroHLE: Add MultidrawIndirect HLE Macro.
2022-10-01 20:58:03 -04:00
Fernando Sahmkow
83f9ff6b1e
MacroHLE: Add MultidrawIndirect HLE Macro.
2022-10-01 20:57:00 -04:00
Liam
bedaf2f959
macro_jit_x64: fix miscompilation of bit extraction operations
2022-10-01 20:31:21 -04:00
bunnei
f92bedb450
Merge pull request #8874 from vonchenplus/align_index_buffer_size
...
Align index buffe size when vertex_buffer_unified_memory enable
2022-10-01 10:28:50 -07:00
Liam
52a802abdd
macro_jit_x64: cancel exit for taken branch
2022-10-01 01:32:24 -04:00
bunnei
48430f14cb
Merge pull request #8910 from vonchenplus/astc_decode_error
...
video_core: Modify astc texture decode error fill value
2022-09-30 15:34:11 -07:00
Liam
08f063e6a4
vulkan: automatically use larger staging buffer sizes when possible
2022-09-25 02:28:03 -04:00
FengChen
1dd5d8fc8e
video_core: Fix legacy to generic location unpaired
2022-09-20 12:03:31 +08:00
Feng Chen
328ad69854
Merge branch 'master' into mipmap
2022-09-20 11:56:43 +08:00
FengChen
38e9c78843
video_core: Generate mipmap texture by drawing
2022-09-20 11:55:43 +08:00
Morph
e48a46f331
astc: Enable parallel CPU astc decoding
...
Given the issues with GPU accelerated ASTC decoding with NVIDIA's latest drivers, parallelize astc decoding on the CPU.
Uses half the available threads in the system for astc decoding.
2022-09-16 10:16:42 -04:00
FengChen
b8b37d6900
video_core: Modify astc texture decode error fill value
2022-09-15 17:04:44 +08:00
FengChen
ccc4202735
Align index buffe size when vertex_buffer_unified_memory enable
2022-09-10 20:01:33 +08:00
lat9nq
c48259ca81
Merge pull request #8819 from liamwhite/cash-money
...
video_core: add option for pessimistic flushing
2022-09-08 22:46:58 -04:00
Morph
649c49525d
style: General style changes to match with the rest of the codebase
2022-08-31 08:51:47 -04:00
Morph
9488b889a0
(shader/pipeline)_cache: Raise shader/pipeline cache version
...
Since the following commit: af222dc924 , many games will refuse to boot unless the shader/pipeline cache has been invalidated.
2022-08-31 08:39:37 -04:00
Fernando S
af222dc924
Merge pull request #8752 from vonchenplus/rectangle_texture
...
video_code: support rectangle texture
2022-08-31 10:40:45 +02:00
Liam
39c3184237
video_core: add option for pessimistic flushing
2022-08-25 12:32:14 -04:00
FengChen
98656c14a8
video_code: support rectangle texture
2022-08-25 12:45:58 +08:00
Narr the Reg
cdfffecbd0
video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD
2022-08-23 18:38:34 -05:00
liamwhite
eaf4777e58
Merge pull request #8784 from Docteh/nosnek
...
code: dodge PAGE_SIZE #define
2022-08-21 12:59:01 -04:00
vonchenplus
477cdc7566
video_core: support framebuffer crop rect top not zero
2022-08-20 21:41:40 +08:00
Kyle Kienapfel
ea00332a67
code: dodge PAGE_SIZE #define
...
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number
This is great except in yuzu we're using PAGE_SIZE as a variable
Specific example
`static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;`
PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables.
Simply deleted the underscores, and then added YUZU_ prefix
Might be worth noting that there are multiple uses in different classes/namespaces
This list may not be exhaustive
Core::Memory 12 bits (4096)
QueryCacheBase 12 bits
ShaderCache 14 bits (16384)
TextureCache 20 bits (1048576, or 1MB)
Fixes #8779
2022-08-19 16:08:40 -07:00
Liam
ee4ec6a211
video_core: implement R16G16B16X16 texture format
2022-08-19 17:17:38 -04:00
bunnei
9c1fafeeb7
Merge pull request #8739 from merryhime/swizzle_table
...
video_core/textures/decoders: Avoid SWIZZLE_TABLE
2022-08-13 22:03:32 -07:00
Merry
e1dd4de1eb
video_core/textures/decoders: Avoid SWIZZLE_TABLE
2022-08-09 00:27:26 +01:00
DJRobX
705c6c16b9
Make vsync setting work for Vulkan
2022-08-07 20:57:47 -07:00
bunnei
a25a9d7417
Merge pull request #8658 from liamwhite/plgp
...
video_core: differentiate between tiled and untiled framebuffer sizes for unaccelerated blits
2022-08-06 23:00:46 -07:00
bunnei
24c4cbf99f
Merge pull request #8700 from liamwhite/xc3-vk-crash
...
vk_texture_cache: return VK_NULL_HANDLE for views of null images
2022-08-06 13:11:34 -07:00
Liam
bffdc2b3ce
renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALED
2022-08-02 18:39:33 -04:00
Liam
5937160821
vk_texture_cache: return VK_NULL_HANDLE for views of null images
2022-08-02 13:31:42 -04:00
bunnei
ceed22dbc4
Merge pull request #8678 from liamwhite/stop-waiting
...
video_core: stop waiting for shader compilation on user cancel
2022-07-31 14:47:43 -07:00
Liam
652e1a7bde
renderer_opengl: delete shader source after linking
2022-07-30 13:21:26 -04:00
Liam
50ed529c2a
video_core: stop waiting for shader compilation on user cancel
2022-07-29 23:33:40 -04:00
Liam
c642834b4d
video_core: differentiate between tiled and untiled framebuffer sizes for unaccelerated copies
2022-07-27 21:52:06 -04:00
liamwhite
4b9cfe1d02
Merge pull request #8542 from Morph1984/gpu-use-old-q
...
gpu_thread: Use the previous MPSCQueue implementation
2022-07-27 15:55:28 -04:00
Andrea Pappacoda
6a2efdda2f
chore: make yuzu REUSE compliant
...
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
`.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to b2eb103829
2022-07-27 12:53:49 +02:00
Liam
bae82de100
video_core: use correct byte size for framebuffer
2022-07-19 17:46:26 -04:00
bunnei
e42a6ad7d9
yuzu: settings: Remove framerate cap and merge unlocked framerate setting.
...
- These were all somewhat redundant.
2022-07-16 23:11:39 -07:00
Morph
16213b1dee
gpu_thread: Use the previous MPSCQueue implementation
...
The bounded MPSCQueue implementation causes crashes in Fire Emblem Three Houses, use the previous implementation for now.
2022-07-06 01:33:17 -04:00
Morph
3cd5e47ee3
renderer_(gl/vk): Implement ASTC_10x6_UNORM
...
- Used by Monster Hunter Rise Update 10.0.2
2022-07-05 20:33:43 -04:00
lat9nq
973290ff56
Revert "vulkan_device: Block AMDVLK's VK_KHR_push_descriptor"
2022-06-29 16:35:06 -04:00
german77
c0b4082192
video_core: Replace VKUpdateDescriptorQueue with UpdateDescriptorQueue
2022-06-26 20:21:45 -05:00
german77
1d54e70cdd
video_core: Replace VKSwapchain with Swapchain
2022-06-26 20:21:45 -05:00
german77
8944399d57
video_core: Replace VKQueryCache with QueryCache
2022-06-26 20:21:45 -05:00
german77
d7b293b022
video_core: Replace VKScheduler with Scheduler
2022-06-26 20:21:45 -05:00
german77
3003462a0f
video_core: Replace VKBlitScreen with BlitScreen
2022-06-26 20:21:45 -05:00
german77
c13b99f357
video_core: Replace VKFenceManager with FenceManager
2022-06-26 20:21:45 -05:00
liamwhite
1d18c8d3d9
Merge pull request #8460 from Morph1984/bounded-q
...
bounded_threadsafe_queue: Use constexpr capacity and mask
2022-06-15 19:39:22 -04:00
Morph
3417e4ca5f
bounded_threadsafe_queue: Use constexpr capacity and mask
...
While this is the primary change, we also:
- Remove the mpsc namespace and rename Queue to MPSCQueue
- Make Slot a private struct within MPSCQueue
- Remove the AlignedAllocator template argument, as we use std::allocator
- Replace instances of mask + 1 with capacity, and mask + 2 with capacity + 1
2022-06-15 16:59:13 -04:00
Morph
ddc17d2088
vk_compute_pass: Explicitly cast to VkAccessFlags
...
According to the standard, a narrowing conversion is an implicit conversion from an integer or unscoped enumeration type to an integer type that cannot represent all the values of the original type, except when the value is a literal or constant expression.
MSVC, unlike GCC or Clang, determines this to be a narrowing conversion despite the enumeration exclusively containing values that fit within the range of a 32 bit integer, emitting a warning since designated initializers prohibit narrowing conversions.
To solve this, explicitly cast to the type we are initializing.
2022-06-15 07:12:16 -04:00
Mai
bb0a6faa0a
Merge pull request #8383 from Morph1984/shadow-of-the-past
...
yuzu: Make variable shadowing a compile-time error
2022-06-14 21:08:58 -04:00
Morph
5c72801730
vk_compute_pass: Use VK_ACCESS_NONE
...
This enumeration was introduced in Vulkan 1.3, prefer using this instead of defaulting the enum.
Also resolves a narrowing conversion warning on MSVC.
2022-06-14 09:14:13 -04:00
Mai
ce98a3e5d7
Merge pull request #8439 from liamwhite/monkey-compiler
...
general: fix compilation on GCC 12
2022-06-14 08:34:16 -04:00
Morph
b3d8533ad9
vk_compute_pass: Silence Wextra warning
...
Silences a warning about using enumerated and non-enumerated types in a conditional expression.
2022-06-14 05:29:57 -04:00
Liam
79bf4bc3ff
general: fix compilation on MinGW GCC 12
2022-06-13 20:09:32 -04:00
Liam
c1771c98f3
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
Morph
e647661b76
CMakeLists: Make variable shadowing a compile-time error
...
Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
2022-06-13 18:19:23 -04:00
bunnei
90c076df6b
Merge pull request #8413 from behunin/bounded-queue
...
gpu_thread: Move to bounded queue
2022-06-11 00:07:18 -07:00
bunnei
d52485dd46
Merge pull request #8393 from lat9nq/default-vulkan
...
general: Set renderer_backend's default to Vulkan
2022-06-11 00:06:59 -07:00
Levi Behunin
9d5dc3c9b9
gpu_thread: Move to bounded queue
2022-06-02 19:37:46 -06:00
Billy Laws
a1216cfeee
Maxwell3D: Fix 3D semaphore counter type 0 handling
...
Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
2022-06-02 21:46:38 +01:00
Liam
da50e98e3a
core/debugger: Improved stepping mechanism and misc fixes
2022-06-01 02:15:15 -04:00
lat9nq
e7882e4bcb
vulkan_library: Add debug logging
2022-05-30 10:57:59 -04:00
bunnei
9f7b9ffc9f
Merge pull request #8332 from Morph1984/reduce_exec_size
...
general: Use smaller array types where applicable
2022-05-29 02:33:24 -07:00
bunnei
6c88f50725
Merge pull request #8379 from lat9nq/amd-push-desc-workaround
...
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
2022-05-25 13:07:39 -07:00
bunnei
441a98b984
Merge pull request #8369 from lat9nq/amd-wmel-workaround
...
vulkan_device: Workaround extension bug
2022-05-25 13:07:28 -07:00
lat9nq
adfd64ba59
vulkan_device: Workaround extension bug
...
A bug occurs in yuzu when VK_KHR_workgroup_memory_explicit_layout is
available but 16-bit integers are not supported in the host driver.
Disable usage of the extension when this case arises.
2022-05-25 01:22:15 -04:00
lat9nq
3f2a89bb9d
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
...
Recent AMD Vulkan drivers (22.5.2 or 2.0.226 for specifically Vulkan)
have a broken VK_KHR_push_descriptor implementation that causes a crash
in yuzu. Disable it for the time being.
2022-05-25 01:17:48 -04:00
bunnei
beef5d531f
Merge pull request #8311 from asLody/fix-stencil-faces
...
vk_rasterizer: fix stencil test when two faces are disabled
2022-05-24 18:37:31 -07:00
Alexandre Bouvier
a766e7d663
video_core: Support new VkResult
2022-05-17 17:37:10 +02:00
Morph
23aeada691
video_core/surface: Use u8 for PixelFormat block tables
...
Using this smaller type saves 33280 bytes in the compiled executable.
2022-05-13 00:51:11 -04:00
Morph
6780806c59
codecs/vp9: Use u8 for norm and map luts
...
Using this smaller type saves 1536 bytes in the compiled executable.
2022-05-13 00:51:05 -04:00
Morph
ba42a57a62
Merge pull request #8314 from liamwhite/gl-flip-2
...
OpenGL: interpret face flips according to GL NDC
2022-05-11 17:51:18 -04:00
Morph
5c166806ee
Merge pull request #8313 from liamwhite/dma-bpp
...
maxwell_dma: fix bytes_per_pixel
2022-05-11 17:51:02 -04:00
Liam
d20d4060e9
maxwell_dma: use fallback if remapping is enabled
2022-05-10 19:26:48 -04:00
Liam
fa2047970e
video_core/macro: clear code on upload address assignment
2022-05-10 17:07:21 -04:00
Fernando Sahmkow
df5dd2fd82
VideoCore: Add option to dump the macros.
...
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2022-05-08 21:37:34 -04:00
Liam
bf91c63d70
video_core/macro_jit_x64: warn on invalid parameter access
2022-05-08 02:48:03 -04:00
Liam
455ea63f4a
OpenGL: implement face flips according to NDC
2022-05-06 20:05:21 -04:00
Liam
b6ed3289df
maxwell_dma: fix bytes per pixel
2022-05-06 18:18:00 -04:00
Lody
83f13c62e8
vk_rasterizer: fix stencil test when two faces are disabled
2022-05-06 14:47:55 +08:00
Mai M
a533c4c26b
Merge pull request #8280 from Tachi107/spdx-fixup
...
chore: add missing SPDX tags
2022-04-28 23:28:42 -04:00
Mai M
bffece2295
Merge pull request #8282 from liamwhite/gcc-12
...
GCC 12 fixes
2022-04-28 23:28:07 -04:00
Liam
ee4d63cee5
GCC 12 fixes
2022-04-28 16:50:34 -04:00
Andrea Pappacoda
b2eb103829
chore: add missing SPDX tags
...
Follow-up to 2b87305d31
2022-04-28 18:24:11 +02:00
Morph
1f621032e5
renderer_vulkan: Update screen info if the framebuffer size has changed
2022-04-26 02:48:40 -04:00
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
german77
e14b4ca537
bootmanager: Don't create another screenshot request if previous one is not done yet
2022-04-18 01:00:48 -05:00
Fernando Sahmkow
ba73142ce0
video_core: implement formats for N64 emulation
2022-04-14 11:06:27 -04:00
Liam
2d4f844b1b
buffer_cache: cap vertex buffer sizes
2022-04-14 10:46:48 -04:00
Liam
3bffb0464b
maxwell3d: add small_index_2 register
2022-04-14 09:57:06 -04:00
bunnei
68b5568576
Merge pull request #8149 from liamwhite/front-face
...
OpenGL: flip front faces if Z scale is inverted
2022-04-09 01:39:39 -07:00
Merry
e8a60754e9
video_core: Replace lock_guard with scoped_lock
2022-04-07 19:44:07 +01:00
Fernando S
a426c9e941
Merge pull request #8161 from liamwhite/gl-s8d24
...
OpenGL: fix S8D24 to ABGR8 conversions
2022-04-07 16:59:41 +02:00
Fernando S
55841eb669
Merge pull request #8152 from liamwhite/gl-crop
...
OpenGL: fix cropping
2022-04-07 16:58:59 +02:00
Liam
1027ffa911
OpenGL: fix S8D24 to ABGR8 conversions
2022-04-06 19:44:33 -04:00
bunnei
dcb17246d9
Revert "texture_cache/util: Remove unneeded ReadBlockUnsafe"
2022-04-04 16:26:53 -07:00