Fernando Sahmkow
bd8abfe654
BufferCache: Fixes and address feedback
3 years ago
Fernando Sahmkow
f5d2ae4c5e
Texture Cache: Release stagging buffers on tick frame
3 years ago
Fernando Sahmkow
6e18a08510
Buffer Cache: Release stagging buffers on tick frame
3 years ago
Fernando Sahmkow
917a21317f
Clang: format and ficx compile errors.
3 years ago
Fernando Sahmkow
cd4d4072c7
Implement Async downloads in normal and fix a few issues.
3 years ago
Fernando Sahmkow
139995905e
Buffer Cache rework: Setup async downloads.
3 years ago
Fernando Sahmkow
64c9a90c20
Buffer Cache: Fully rework the buffer cache.
3 years ago
Fernando Sahmkow
cf34f7c745
Address Feedback & Clang Format
3 years ago
Fernando Sahmkow
3595172637
Maxwell3D: only update parameters on High
3 years ago
Fernando Sahmkow
b22e1a2bce
Accelerate DMA: Use texture cache async downloads to perform the copies
to host.
WIP
3 years ago
Fernando Sahmkow
e2bfd9e8c4
TextureCache: refactor DMA downloads to allow multiple buffers.
3 years ago
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.
3 years ago
Fernando Sahmkow
0da4b879eb
QueryCache: Fix write invalidation.
3 years ago
Fernando Sahmkow
ff3cf7c1d9
MemoryManager: Fix race conditions.
3 years ago
Fernando Sahmkow
f606fa3515
Clang format and ddress feedback
3 years ago
Fernando Sahmkow
abe4e83b45
QueryCache: rework async downloads.
3 years ago
Fernando Sahmkow
eeffe68b7f
Accuracy Normal: reduce accuracy further for perf improvements in Project Lime
3 years ago
Fernando Sahmkow
ae99dcd531
Fence Manager: implement async fence management in a sepparate thread.
3 years ago
Liam
b84bab419c
maxwell_3d: fix out of bounds array access in size estimation
3 years ago
Kelebek1
477cbd067e
Sort overlap_ids by modification tick before copy
3 years ago
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