yuzu-emu
/
yuzu
Archived
1
0
Fork 0
This repository has been archived on 2024-03-23. You can view files and clone it, but cannot push or open issues or pull requests.
yuzu/src/video_core
ameerj eb67a45ca8 video_core: NVDEC Implementation
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>
2020-10-26 23:07:36 -04:00
..
buffer_cache video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
command_classes video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
engines video_core: Enforce -Wclass-memaccess 2020-10-09 16:46:11 -03:00
host_shaders video_core: Fix instances where msbuild always regenerated host shaders 2020-09-23 22:27:17 -03:00
macro General: Make use of std::nullopt where applicable 2020-09-22 17:32:33 -04:00
renderer_opengl gl_arb_decompiler: Implement robust buffer operations 2020-10-20 03:34:32 -03:00
renderer_vulkan Merge pull request from ReinUsesLisp/vulkan-1.0 2020-10-19 14:18:54 -07:00
shader shader/texture: Implement CUBE texture type for TMML and fix arrays 2020-10-07 23:17:46 -03:00
texture_cache General: Make use of std::nullopt where applicable 2020-09-22 17:32:33 -04:00
textures textures/decoders: Fix block linear to pitch copies 2020-08-10 20:45:03 -03:00
CMakeLists.txt video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
cdma_pusher.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
cdma_pusher.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
compatible_formats.cpp
compatible_formats.h compatible_formats: Add missing header guard 2020-07-21 00:42:19 -04:00
dirty_flags.cpp
dirty_flags.h
dma_pusher.cpp
dma_pusher.h DmaPusher: Remove dead code in step 2020-05-16 12:42:27 +10:00
fence_manager.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gpu.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_asynch.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_asynch.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_synch.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_synch.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_thread.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
gpu_thread.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
guest_driver.cpp
guest_driver.h
memory_manager.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
memory_manager.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
morton.cpp
morton.h
query_cache.h renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore 2020-09-19 01:46:37 -03:00
rasterizer_accelerated.cpp
rasterizer_accelerated.h
rasterizer_interface.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
renderer_base.cpp video_core: Initialize renderer with a GPU 2020-08-22 01:51:45 -03:00
renderer_base.h renderer_opengl: Remove emulated mailbox presentation 2020-09-20 16:29:41 -03:00
sampler_cache.cpp
sampler_cache.h
shader_cache.h shader_cache: Make use of std::erase_if 2020-07-14 15:49:15 -04:00
shader_notify.cpp Fix style issues 2020-07-18 14:24:32 +10:00
shader_notify.h async shaders 2020-07-17 14:24:57 +10:00
surface.cpp
surface.h
video_core.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
video_core.h