Kelebek1
3346de365a
Sort overlap_ids by modification tick before copy
3 years ago
Kelebek1
4e14b64bfc
Account for a pre-added offset when using Corner sample mode for 2D blits
3 years ago
Liam
e3fb9b5e00
vulkan: use plain fences when timeline semaphores are not available
3 years ago
Liam
e37e1d24f9
vulkan: pick alpha composite flags based on available values
3 years ago
Wollnashorn
c0e5ecc399
video_core: Enable ImageGather rounding fix on AMD open source drivers
3 years ago
Wollnashorn
fe91066f46
video_core: Enable ImageGather with subpixel offset on Intel
3 years ago
Wollnashorn
780240e697
shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`
On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures.
See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary.
This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957 , #6956 ).
3 years ago
Jan Beich
083d913eab
externals: update Vulkan-Headers to v1.3.246
3 years ago
Feng Chen
ff2089fdf5
video_core: Keep the definition of DimensionControl consistent with nvidia open doc
3 years ago
Max Dunbar
e446f368d7
Fixes 'Continous' typo
3 years ago
Kelebek1
c68b4bee2c
Only upload GPU-modified overlaps
3 years ago
Morph
49f6deecb8
video_core/macro: Make use of Common::HashValue
3 years ago
Ross Schlaikjer
f38ae8e953
Pass GPU page table by reference
3 years ago
Liam
5a2dff87bf
vulkan: fix scheduler chunk reserve
3 years ago
Liam
41d99aa89d
memory: rename global memory references to application memory
3 years ago
Morph
407dc917f1
bounded_threadsafe_queue: Deduplicate and add PushModes
Adds the PushModes Try and Wait to allow producers to specify how they want to push their data to the queue if the queue is full.
If the queue is full:
- Try will fail to push to the queue, returning false. Try only returns true if it successfully pushes to the queue. This may result in items not being pushed into the queue.
- Wait will wait until a slot is available to push to the queue, resulting in potential for deadlock if a consumer is not running.
3 years ago
Morph
306840a580
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
b9b1318bea
vulkan: fix more excessive waiting in scheduler
3 years ago
Kelebek1
a7651168dd
Disable SRGB border color conversion for now, to fix shadows in Xenoblade.
3 years ago
Liam
da83afdeaf
vulkan: disable extendedDynamicState3ColorBlendEquation on radv
3 years ago
FengChen
11ffbee5ae
video_core: Better defined ImageInfo parameters
3 years ago
Liam
3f261f22c9
vk_scheduler: split work queue waits and execution waits
3 years ago
Liam
600f325d87
general: fix spelling mistakes
3 years ago
FengChen
44f10c8dee
video_core: Fix ogl status error when draw_texture
3 years ago
FengChen
4e42ba54e5
video_core: Invalid index_buffer flag when inline_index draw
3 years ago
Feng Chen
c8ad039612
video_core: Update texture format
3 years ago
ameerj
03137086db
OpenGL: Prefer glClientWaitSync for OGLSync objects
At least on Nvidia, glClientWaitSync with a timeout of 0 (non-blocking) is faster than glGetSynciv of GL_SYNC_STATUS.
3 years ago
Morph
3053a62375
core: Promote CPU/GPU threads to time critical
And also demote Audren and CoreTiming to High thread priority.
3 years ago
Liam
ba4213d956
general: fix type inconsistencies
3 years ago
ameerj
268942c8fe
gl_rasterizer: Implement AccelerateDMA DmaBufferImageCopy
3 years ago
ameerj
6b9cc0ed23
Refactor AccelerateDMA code
3 years ago
Fernando Sahmkow
8a3411b417
Engines: Implement Accelerate DMA Texture.
4 years ago
Morph
bff1453282
core_timing: Use higher precision sleeps on Windows
The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows.
Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution.
This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop.
3 years ago
Kelebek1
a7fb80e612
Check all swizzle components for red, not just [0], pass float border color rather than int
3 years ago
Behunin
44518b225c
gpu_thread: Use bounded queue
3 years ago
Liam
ec6ee04c64
vulkan_common: disable vertexInputDynamicState on unsupported driver
3 years ago
Liam
809148e1a5
nvnflinger: fix name
3 years ago
Matías Locatti
c38bb96a2c
Partially apply LTO to only core and video_core projects.
3 years ago
ameerj
2ce5bb9bd6
buffer_cache: Add logic for non-NVN storage buffer tracking
3 years ago
ameerj
b5bcd8c71b
configuration: Add async ASTC decode setting
3 years ago
ameerj
090bc588e5
texture_cache: Add async texture decoding
3 years ago
Merry
c9678bda24
svc: Fix type consistency (exposed on macOS)
3 years ago
Kelebek1
3b50906f00
Reimplement the invalidate_texture_data_cache register
3 years ago
Kelebek1
139b645aa2
Allow >1 cpu threads on video decoding, disable multi-frame decoding
3 years ago
arades79
683019878f
remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
arades79
45e13b03f3
add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
ameerj
93cf2b3ca8
texture_cache: OpenGL: Implement MSAA uploads and copies
3 years ago
FengChen
4adf39edf2
video_core: Speed up video frame data copy
3 years ago
ameerj
eb9f16dce4
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
8551ac6008
Remove OnCommandListEndCommand
Call rasterizer->ReleaseFences() directly
3 years ago