summaryrefslogtreecommitdiff
path: root/src/video_core/gpu_thread.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* scope_exit: Make constexprGravatar FearlessTobi2024-02-191-1/+3
| | | | | Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
* nvnflinger/gpu: implement layer stack compositionGravatar Liam2024-01-311-6/+0
|
* SMMU: Initial adaptation to video_core.Gravatar Fernando Sahmkow2024-01-181-3/+3
|
* Memory Tracking: Optimize tracking to only use atomic writes when contested ↵Gravatar Fernando Sahmkow2023-06-281-3/+3
| | | | with the host GPU
* core: frontend: Refactor GraphicsContext to its own module.Gravatar bunnei2023-06-031-1/+1
|
* bounded_threadsafe_queue: Deduplicate and add PushModesGravatar Morph2023-03-211-1/+1
| | | | | | | 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.
* bounded_threadsafe_queue: Use simplified impl of bounded queueGravatar Morph2023-03-211-3/+4
| | | | Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
* Merge pull request #9778 from behunin/my-box-chevyGravatar bunnei2023-03-171-1/+2
|\ | | | | gpu_thread: Use bounded queue
| * gpu_thread: Use bounded queueGravatar Behunin2023-03-031-1/+2
| |
* | core: Promote CPU/GPU threads to time criticalGravatar Morph2023-03-071-1/+1
|/ | | | And also demote Audren and CoreTiming to High thread priority.
* Remove OnCommandListEndCommandGravatar Behunin2023-02-071-6/+0
| | | | Call rasterizer->ReleaseFences() directly
* general: fix compile for Apple ClangGravatar Liam2022-11-221-1/+1
|
* VideoCore: Refactor fencing system.Gravatar Fernando Sahmkow2022-10-061-1/+1
|
* VideoCore: Refactor syncing.Gravatar Fernando Sahmkow2022-10-061-1/+5
|
* VideoCore: implement channels on gpu caches.Gravatar Fernando Sahmkow2022-10-061-7/+7
|
* common: remove "yuzu:" prefix from thread namesGravatar Liam2022-10-031-1/+1
|
* gpu_thread: Use the previous MPSCQueue implementationGravatar Morph2022-07-061-2/+1
| | | | The bounded MPSCQueue implementation causes crashes in Fire Emblem Three Houses, use the previous implementation for now.
* common: Change semantics of UNREACHABLE to unconditionally crashGravatar Liam2022-06-131-1/+1
|
* gpu_thread: Move to bounded queueGravatar Levi Behunin2022-06-021-1/+2
|
* general: Convert source file copyright comments over to SPDXGravatar Morph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* video_core: Replace lock_guard with scoped_lockGravatar Merry2022-04-071-1/+1
|
* gpu: Use std::jthread for async gpu threadGravatar ameerj2021-09-151-44/+13
|
* GPUTHread: Remove async reads from Normal Accuracy.Gravatar Fernando Sahmkow2021-06-111-18/+6
|
* common: Move settings to common from core.Gravatar bunnei2021-04-141-1/+1
| | | | - Removes a dependency on core and input_common from common.
* video_core: Use a CV for blocking commands.Gravatar Markus Wick2021-04-071-17/+26
| | | | There is no need for a busy loop here. Let's just use a condition variable to save some power.
* video_core/gpu_thread: Keep the write lock for allocating the fence.Gravatar Markus Wick2021-04-071-0/+2
| | | | | Else the fence might get submited out-of-order into the queue, which makes testing them pointless. Overhead should be tiny as the mutex is just moved from the queue to the writing code.
* video_core/gpu_thread: Implement a ShutDown method.Gravatar Markus Wick2021-04-071-8/+18
| | | | | | This was implicitly done by `is_powered_on = false`, however the explicit method allows us to block until the GPU is actually gone. This should fix a race condition while removing the other subsystems while the GPU is still active.
* common/threadsafe_queue: Provide Wait() method.Gravatar Markus Wick2021-04-071-2/+1
| | | | | | | It shall block until there is something to consume in the queue. And use it for the GPU emulation instead of the spin loop. This is only in booting the emulator, however in BOTW this is the case for about 1 second.
* gpu_thread: Remove Async NVDEC placeholdersGravatar ameerj2021-02-281-10/+3
| | | | This commit removes early placeholders for an implementation of async nvdec. With recent changes to the source code, the placeholders are no longer accurate, and can cause a nullptr dereference due to the nature of the cdma_pusher lifetime.
* rebase, fix name shadowing, more constGravatar ameerj2021-02-131-1/+1
|
* nvdec cleanupGravatar ameerj2021-02-131-3/+2
|
* gpu: Report renderer errors with exceptionsGravatar ReinUsesLisp2021-02-131-5/+7
| | | | | | Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
* gpu: gpu_thread: Ensure MicroProfile is shutdown on exit.Gravatar bunnei2020-12-281-0/+3
|
* video_core: gpu_thread: Do not wait when system is powered down.Gravatar bunnei2020-12-281-1/+2
|
* video_core: gpu: Implement synchronous mode using threaded GPU.Gravatar bunnei2020-12-281-6/+24
|
* video_core: Resolve more variable shadowing scenariosGravatar Lioncash2020-12-041-8/+8
| | | | | | Resolves variable shadowing scenarios up to the end of the OpenGL code to make it nicer to review. The rest will be resolved in a following commit.
* video_core: NVDEC ImplementationGravatar ameerj2020-10-261-4/+12
| | | | | | | | | | | | | | This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
* video_core: Remove unused variablesGravatar Lioncash2020-07-211-2/+2
| | | | Silences several compiler warnings about unused variables.
* General: Tune the priority of main emulation threads so they have higher ↵Gravatar Fernando Sahmkow2020-06-271-0/+1
| | | | priority than less important helper threads.
* General: Setup yuzu threads' microprofile, naming and registry.Gravatar Fernando Sahmkow2020-06-271-1/+5
|
* Async GPU: Correct flushing behavior to be similar to old async GPU behavior.Gravatar Fernando Sahmkow2020-04-221-0/+4
|
* Async GPU: Only do reactive flushing on Extreme Level.Gravatar Fernando Sahmkow2020-04-221-1/+1
|
* GPU: Implement Flush Requests for Async mode.Gravatar Fernando Sahmkow2020-04-221-6/+11
|
* FenceManager: Implement async buffer cache flushes on High settingsGravatar Fernando Sahmkow2020-04-221-1/+1
|
* Rasterizer: Document SignalFence & ReleaseFences and setup skeletons on Vulkan.Gravatar Fernando Sahmkow2020-04-221-1/+4
|
* ThreadManager: Sync async reads on accurate gpu.Gravatar Fernando Sahmkow2020-04-221-1/+6
|
* OpenGL: Implement Fencing backend.Gravatar Fernando Sahmkow2020-04-221-0/+6
|
* GPU: Delay Fences.Gravatar Fernando Sahmkow2020-04-221-1/+1
|
* BufferCache: Implement OnCPUWrite and SyncGuestHostGravatar Fernando Sahmkow2020-04-221-1/+1
|
* GPU: Refactor synchronization on Async GPUGravatar Fernando Sahmkow2020-04-221-3/+3
|