Commit graph

6382 commits

Author SHA1 Message Date
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 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
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
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