Fernando Sahmkow
4bc5469f52
Texture Cache: Release stagging buffers on tick frame
3 years ago
Fernando Sahmkow
f8d31d1ae1
Buffer Cache: Release stagging buffers on tick frame
3 years ago
Fernando Sahmkow
80480fe3f7
Clang: format and ficx compile errors.
3 years ago
Fernando Sahmkow
ed4553806a
Implement Async downloads in normal and fix a few issues.
3 years ago
Fernando Sahmkow
f2d3212de9
Buffer Cache rework: Setup async downloads.
3 years ago
Fernando Sahmkow
a16c261131
Buffer Cache: Fully rework the buffer cache.
4 years ago
Fernando Sahmkow
58d1c7c77a
Address Feedback & Clang Format
3 years ago
Fernando Sahmkow
56c9730a16
Maxwell3D: only update parameters on High
3 years ago
Fernando Sahmkow
e3a2ca96bd
Accelerate DMA: Use texture cache async downloads to perform the copies
to host.
WIP
3 years ago
Fernando Sahmkow
3fbee093b2
TextureCache: refactor DMA downloads to allow multiple buffers.
3 years ago
Morph
cb092af3f0
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
Intel's SPIR-V shader compiler is broken. For now, skip compiling any compute pipelines until they fix this issue.
This is not a perfect workaround, as there are a small subset of non-compute pipelines that still cause it to crash, but this should cover the majority of crashes.
It is unfortunate that even with a test case reported 6 months ago the issue has not been fixed in favor of fixing "the most popular games and apps".
Intel, you can do better than this.
3 years ago
Fernando Sahmkow
2f15876524
QueryCache: Fix write invalidation.
3 years ago
Fernando Sahmkow
9a7c172f76
MemoryManager: Fix race conditions.
3 years ago
Fernando Sahmkow
e4dc73f61e
Clang format and ddress feedback
3 years ago
Fernando Sahmkow
e29ced29fa
QueryCache: rework async downloads.
3 years ago
Fernando Sahmkow
7e76c1642c
Accuracy Normal: reduce accuracy further for perf improvements in Project Lime
3 years ago
Fernando Sahmkow
fca72beb2d
Fence Manager: implement async fence management in a sepparate thread.
3 years ago
Liam
eb7c2314f6
maxwell_3d: fix out of bounds array access in size estimation
3 years ago
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