Kelebek1
0397e174ae
Account for a pre-added offset when using Corner sample mode for 2D blits
3 years ago
Liam
fb2af6a41e
vulkan: use plain fences when timeline semaphores are not available
3 years ago
Liam
e2b2842929
vulkan: pick alpha composite flags based on available values
3 years ago
Wollnashorn
111c02760b
video_core: Enable ImageGather rounding fix on AMD open source drivers
3 years ago
Wollnashorn
dda107ffa7
video_core: Enable ImageGather with subpixel offset on Intel
3 years ago
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 ).
3 years ago
Jan Beich
604f887377
externals: update Vulkan-Headers to v1.3.246
3 years ago
Feng Chen
c7675caf71
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
3 years ago
Max Dunbar
8b5becf71b
Fixes 'Continous' typo
3 years ago
Kelebek1
de4fc71536
Only upload GPU-modified overlaps
3 years ago
Morph
9308213232
video_core/macro: Make use of Common::HashValue
3 years ago
Ross Schlaikjer
ee8f63ac65
Pass GPU page table by reference
3 years ago
Liam
aea009216e
vulkan: fix scheduler chunk reserve
3 years ago
Liam
6eaef51cf2
memory: rename global memory references to application memory
3 years ago
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.
3 years ago
Morph
c4314b231f
bounded_threadsafe_queue: Use simplified impl of bounded queue
Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
3 years ago
Liam
af8ce05caa
vulkan: fix more excessive waiting in scheduler
3 years ago
Kelebek1
0a90adff87
Disable SRGB border color conversion for now, to fix shadows in Xenoblade.
3 years ago
Liam
09a866fe79
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
3 years ago
FengChen
0f336df1ea
video_core: Better defined ImageInfo parameters
3 years ago
Liam
11814a4991
vk_scheduler: split work queue waits and execution waits
3 years ago
Liam
5be8a74b0c
general: fix spelling mistakes
3 years ago
FengChen
e067d314ba
video_core: Fix ogl status error when draw_texture
3 years ago
FengChen
5a1d6233b2
video_core: Invalid index_buffer flag when inline_index draw
3 years ago
Feng Chen
63a0d2661c
video_core: Update texture format
3 years ago
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.
3 years ago
Morph
ddb330121a
core: Promote CPU/GPU threads to time critical
And also demote Audren and CoreTiming to High thread priority.
3 years ago
Liam
d55cc3b004
general: fix type inconsistencies
3 years ago
ameerj
bc5a8c664b
gl_rasterizer: Implement AccelerateDMA DmaBufferImageCopy
3 years ago
ameerj
e901a7f029
Refactor AccelerateDMA code
3 years ago
Fernando Sahmkow
82f37192ec
Engines: Implement Accelerate DMA Texture.
4 years ago
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.
3 years ago
Kelebek1
2f525864a8
Check all swizzle components for red, not just [0], pass float border color rather than int
3 years ago
Behunin
43c3c6e3dc
gpu_thread: Use bounded queue
3 years ago
Liam
cd7e0b03b7
vulkan_common: disable vertexInputDynamicState on unsupported driver
3 years ago
Liam
c191cf75bb
nvnflinger: fix name
3 years ago
Matías Locatti
7cc539e8b8
Partially apply LTO to only core and video_core projects.
3 years ago
ameerj
0194f25eb9
buffer_cache: Add logic for non-NVN storage buffer tracking
3 years ago
ameerj
c5386e2179
configuration: Add async ASTC decode setting
3 years ago
ameerj
08c1dc9587
texture_cache: Add async texture decoding
3 years ago
Merry
38f528134f
svc: Fix type consistency (exposed on macOS)
3 years ago
Kelebek1
2d86d111fa
Reimplement the invalidate_texture_data_cache register
3 years ago
Kelebek1
6afc4a2134
Allow >1 cpu threads on video decoding, disable multi-frame decoding
3 years ago
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>
3 years ago
arades79
adcef452e0
add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
ameerj
b60e0b5360
texture_cache: OpenGL: Implement MSAA uploads and copies
3 years ago
FengChen
b2395ce048
video_core: Speed up video frame data copy
3 years ago
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"
3 years ago
Behunin
09f64e648a
Remove OnCommandListEndCommand
Call rasterizer->ReleaseFences() directly
3 years ago
Kelebek1
b2a024c42a
Remove fake vertex bindings when dynamic state is enabled
3 years ago