aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nvdrv
AgeCommit message (Collapse)Author
2021-04-08Merge pull request #6145 from lat9nq/nvhost_empty_memcpybunnei
nvhost_nvdec_common: Avoid memcpy with null pointers
2021-04-05nvhost_nvdec_common: Avoid memcpy with null pointerslat9nq
Avoid sending null pointer to memcpy as reported by Undefined Behavious Sanitizer. Co-authored-by: LC <mathew1800@gmail.com>
2021-04-05nvhost_ctrl_gpu: Avoid sending null pointer to memcpylat9nq
Undefined Behaviour Sanitizer reports a null pointer is being sent to memcpy, thought it's "guaranteed to never be null". Guard it with an if statement, and log when the action has been averted.
2021-03-25nvdrv: Pass device fd and handle device create methods for device opening ↵Chloe Marcec
and closing We pass the fd to the ioctl as well as alert the device when it's opened or closed to allow for fd unique actions to take place
2021-03-22nvdrv: Change InitializeEx to AllocAsExChloe Marcec
Wee also report the correct "big page size" now in GetVARegions & fix up the struct for IoctlAllocAsEx
2021-02-13Address PR feedbackameerj
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-02-13nvdec cleanupameerj
2021-02-05hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei
2021-01-28core: hle: kernel: Rename Thread to KThread.bunnei
2021-01-23Simplify conditionChloe Marcec
2021-01-23nvdrv: Unregister already registered eventsChloe Marcec
2021-01-07fix for nvdec disabled, cleanup host1xameerj
2021-01-07nvdec syncpt incorporationameerj
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
2020-12-28hle: service: nvdrv: Revert #4981 to remove usage of SleepClientThread.bunnei
- Note, this always processes the ioctl right away, which fixes BotW 1.0.0 issues.
2020-12-06nvdrv: Remove useless re-declaration of pure virtual methods that were ↵comex
already declared in the superclass
2020-11-26service: Eliminate usages of the global system instanceLioncash
Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
2020-11-26Merge pull request #4975 from comex/invalid-syncpoint-idbunnei
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
2020-11-24nvdrv, video_core: Don't index out of bounds when given invalid syncpoint IDcomex
- Use .at() instead of raw indexing when dealing with untrusted indices. - For the special case of WaitFence with syncpoint id UINT32_MAX, instead of crashing, log an error and ignore. This is what I get when running Super Mario Maker 2.
2020-11-24nvservices: Reintroducee IoctlCtrlChloe Marcec
Fixes regression caused by #4907 which caused games like Breath of the Wild 1.0.0 not to boot.
2020-11-10Addressed issuesChloe Marcec
2020-11-10core: Make nvservices more standardizedChloe Marcec
2020-11-08ipc_helpers: Remove usage of the global system instanceLioncash
Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed.
2020-11-07video_core: dma_pusher: Remove integrity check on command lists.bunnei
- This seems to cause softlocks in Breath of the Wild.
2020-11-01fixup! hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and ↵bunnei
other improvements.
2020-11-01 hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other ↵bunnei
improvements. - Refactor so that SubmitGPFIFO and KickoffPB use shared functionality. - Implement add_wait and add_increment flags.
2020-11-01hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.bunnei
2020-11-01hle service: nvdrv: Update to instantiate SyncpointManager.bunnei
2020-11-01hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.bunnei
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