aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nvdrv
AgeCommit message (Collapse)Author
2020-11-01Rename to align with switchbrew and remove gpu function (#4714)Levi Behunin
* Rename to align with switchbrew * Rename to align with switchbrew and remove gpu function that checks if clearing should be done.
2020-10-30video_core: unbreak -Werror in NVDEC with ClangJan Beich
src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp:41:15: error: unused variable 'OutOfMemory' [-Werror,-Wunused-const-variable] constexpr u32 OutOfMemory{static_cast<u32>(-12)}; ^
2020-10-26video_core: NVDEC Implementationameerj
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-20Revert "core: Fix clang build"bunnei
2020-10-20Merge pull request #4796 from lioncash/clangLC
core: Fix clang build
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-12hle: service: nvdrv: Implement nvhost_as_gpu::FreeSpace.bunnei
- This is used by Super Mario 3D All-Stars.
2020-09-29Merge pull request #1703 from DarkLordZach/nvdec-ioctlbunnei
nvdrv: Stub nvdec/vic ioctls to bypass nvdec movies
2020-09-22General: Make use of std::nullopt where applicableLioncash
Allows some implementations to avoid completely zeroing out the internal buffer of the optional, and instead only set the validity byte within the structure. This also makes it consistent how we return empty optionals.
2020-08-14core: Resolve several -Wextra-semi warningsLioncash
We can amend one of the cascade macros to require semicolons in order to compile. In other cases, we can just remove the superfluous semicolons.
2020-08-04Merge pull request #4430 from bunnei/new-gpu-vmmbunnei
hle: nvdrv: Rewrite of GPU memory management.
2020-08-03yuzu: Resolve C++20 deprecation warnings related to lambda capturesLioncash
C++20 deprecates capturing the this pointer via the '=' capture. Instead, we replace it or extend the capture specification.
2020-07-27Update src/core/hle/service/nvdrv/devices/nvmap.cppbunnei
Co-authored-by: LC <mathew1800@gmail.com>
2020-07-26hle: nvdrv: Rewrite of GPU memory management.bunnei
2020-07-11Merge pull request #4203 from VolcaEM/servicesbunnei
service: Update function tables
2020-06-29service: Update function tablesVolcaEM
2020-06-27FrameLimiting: Enable frame limiting for single core.Fernando Sahmkow
2020-06-27NVDRV: Remove frame limiting as Host Timing already takes care.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
2020-06-10nvdrv: Fix GetTPCMasks for ioctl3David Marcec
Fixes animal crossing svcBreak on launch
2020-06-04service: nvhost_vic: Ignore Submit commands.bunnei
2020-06-04nvdrv: Stub nvdec/vic ioctls to bypass nvdec moviesZach Hilman
2020-05-02nvdrv: Fix GetGpuTime stack corruptionDavid Marcec
IoctlGetGpuTime should be 16 bytes, not 8.
2020-02-16nvhost_gpu: implement ChannelSetTimeslicenamkazy
2019-12-25NvServices: Correct Ioctl Remap.Fernando Sahmkow
This commit corrects a padding value in Ioctl Remap that was actually an offset to the mapping address.
2019-11-26core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash
With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
kernel objects. (#3154) * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-10-16Merge pull request #2912 from FernandoS27/async-fixesbunnei
General fixes to Async GPU
2019-10-04Nvdrv: Correct Event setup in NvdrvFernando Sahmkow
Events are supposed to be cleared on quering. This fixes that issue.
2019-10-04Nvdrv: Do framelimiting only in the CPU ThreadFernando Sahmkow
2019-10-04Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncsFernando Sahmkow
2019-10-04service/nvdrv: Silence -WswitchReinUsesLisp
2019-09-22Merge pull request #2873 from ogniK5377/new-ioctlsFernando Sahmkow
Initial implementation of Ioctl2 & Ioctl3
2019-09-22server side clang format fix2David Marcec
2019-09-22Use clang-format provided by build serverDavid Marcec
2019-09-21Mark KickOffPb & SubmitGPFIFO as traceDavid Marcec
These functions are not stubbed and are called fairly often. Due to the nature of how often they're called, we should keep them marked as LOG_TRACE instead of LOG_DEBUG or LOG_WARNING
2019-09-20disable clang-format tempDavid Marcec
2019-09-19Initial implementation of Ioctl2 & Ioctl3David Marcec
Purpose of Ioctl2 and Ioctl3 is to prevent the passing of raw pointers through ioctls
2019-08-21gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfigReinUsesLisp
2019-07-05NVServices: Correct delayed responses.Fernando Sahmkow
2019-07-05Nv_Host_Ctrl: Correct difference calculationFernando Sahmkow
2019-07-05NVServices: Address FeedbackFernando Sahmkow
2019-07-05NVServices: Styling, define constructors as explicit and correctionsFernando Sahmkow
2019-07-05NVFlinger: Correct GCC compile errorFernando Sahmkow
2019-07-05NVServices: Make NVEvents Automatic according to documentation.Fernando Sahmkow
2019-07-05NVServices: Correct CtrlEventWaitSync to block the ipc until timeout.Fernando Sahmkow
2019-07-05GPU: Correct Interrupts to interrupt on syncpt/value instead of event, ↵Fernando Sahmkow
mirroring hardware
2019-07-05nv_services: Fixes to event liberation.Fernando Sahmkow
2019-07-05nv_services: Deglobalize NvServicesFernando Sahmkow