bunnei
80d0eb3bbd
hle: kernel: Rename WritableEvent to KWritableEvent.
2021-02-05 14:00:36 -08:00
bunnei
284a4d9283
hle: kernel: Rename ReadableEvent to KReadableEvent.
2021-02-05 14:00:36 -08:00
Chloe Marcec
586c1cee87
Simplify condition
2021-01-23 22:12:05 +11:00
Chloe Marcec
8687476cd1
nvdrv: Unregister already registered events
2021-01-23 22:02:14 +11:00
ameerj
30f3faf3e2
fix for nvdec disabled, cleanup host1x
2021-01-07 14:33:45 -05:00
ameerj
762de858e6
nvdec syncpt incorporation
...
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
2021-01-07 14:33:45 -05:00
bunnei
fd213b5856
hle: service: nvdrv: Revert #4981 to remove usage of SleepClientThread.
...
- Note, this always processes the ioctl right away, which fixes BotW 1.0.0 issues.
2020-12-28 16:33:48 -08:00
comex
e250594b6e
nvdrv: Remove useless re-declaration of pure virtual methods that were already declared in the superclass
2020-12-06 18:24:33 -05:00
Chloe Marcec
f8d84ecae2
nvservices: Reintroducee IoctlCtrl
...
Fixes regression caused by #4907 which caused games like Breath of the Wild 1.0.0 not to boot.
2020-11-24 16:40:23 +11:00
Chloe Marcec
d8f879952c
Addressed issues
2020-11-10 15:57:36 +11:00
Chloe Marcec
f0b74aa725
core: Make nvservices more standardized
2020-11-10 15:57:35 +11:00
bunnei
0b6324b3a6
video_core: dma_pusher: Remove integrity check on command lists.
...
- This seems to cause softlocks in Breath of the Wild.
2020-11-07 00:08:19 -08:00
bunnei
f8b764dbf2
fixup! hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other improvements.
2020-11-01 01:52:38 -07:00
bunnei
57f20d0d70
hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other improvements.
...
- Refactor so that SubmitGPFIFO and KickoffPB use shared functionality.
- Implement add_wait and add_increment flags.
2020-11-01 01:52:38 -07:00
bunnei
617372b751
hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.
2020-11-01 01:52:37 -07:00
Levi Behunin
381586d56c
Rename to align with switchbrew and remove gpu function ( #4714 )
...
* Rename to align with switchbrew
* Rename to align with switchbrew and remove gpu function that checks if clearing should be done.
2020-11-01 01:24:17 -07:00
Jan Beich
c751be210e
video_core: unbreak -Werror in NVDEC with Clang
...
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-30 16:43:10 +00:00
ameerj
9ef5c53e52
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
bunnei
deb3536936
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
LC
b02702a86a
Merge pull request #4796 from lioncash/clang
...
core: Fix clang build
2020-10-20 19:19:12 -04:00
Lioncash
18636013c9
core: Fix clang build
...
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
2020-10-17 19:50:39 -04:00
bunnei
649a262f4e
hle: service: nvdrv: Implement nvhost_as_gpu::FreeSpace.
...
- This is used by Super Mario 3D All-Stars.
2020-10-12 17:39:14 -07:00
bunnei
7d55163e1d
Merge pull request #1703 from DarkLordZach/nvdec-ioctl
...
nvdrv: Stub nvdec/vic ioctls to bypass nvdec movies
2020-09-29 15:00:48 -07:00
Lioncash
e457001dce
General: Make use of std::nullopt where applicable
...
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-09-22 17:32:33 -04:00
Lioncash
0c78ed16df
core: Resolve several -Wextra-semi warnings
...
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-14 09:09:20 -04:00
bunnei
1bd1d08fc4
Update src/core/hle/service/nvdrv/devices/nvmap.cpp
...
Co-authored-by: LC <mathew1800@gmail.com >
2020-07-27 18:27:20 -07:00
bunnei
991aca142e
hle: nvdrv: Rewrite of GPU memory management.
2020-07-26 00:49:43 -04:00
Fernando Sahmkow
3197d72996
FrameLimiting: Enable frame limiting for single core.
2020-06-27 11:36:01 -04:00
Fernando Sahmkow
7ad6af4bdb
NVDRV: Remove frame limiting as Host Timing already takes care.
2020-06-27 11:35:28 -04:00
Fernando Sahmkow
7ee76003ad
General: Recover Prometheus project from harddrive failure
...
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-27 11:35:06 -04:00
David Marcec
f57da2d9f9
nvdrv: Fix GetTPCMasks for ioctl3
...
Fixes animal crossing svcBreak on launch
2020-06-10 18:36:42 +10:00
bunnei
f46e366cdc
service: nvhost_vic: Ignore Submit commands.
2020-06-04 22:32:28 -04:00
Zach Hilman
a283b0672d
nvdrv: Stub nvdec/vic ioctls to bypass nvdec movies
2020-06-04 22:32:28 -04:00
David Marcec
1d2ebbf8fe
nvdrv: Fix GetGpuTime stack corruption
...
IoctlGetGpuTime should be 16 bytes, not 8.
2020-05-02 00:14:37 +10:00
namkazy
8bb64da7ac
nvhost_gpu: implement ChannelSetTimeslice
2020-02-16 11:53:03 +07:00
Fernando Sahmkow
367257a258
NvServices: Correct Ioctl Remap.
...
This commit corrects a padding value in Ioctl Remap that was actually an
offset to the mapping address.
2019-12-25 14:37:28 -04:00
Lioncash
cc3d6fdf73
core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
...
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-26 21:55:39 -05:00
bunnei
9e3c8681ce
Merge pull request #2912 from FernandoS27/async-fixes
...
General fixes to Async GPU
2019-10-16 10:34:48 -04:00
Fernando Sahmkow
87f41384a8
Nvdrv: Correct Event setup in Nvdrv
...
Events are supposed to be cleared on quering. This fixes that issue.
2019-10-04 19:59:52 -04:00
Fernando Sahmkow
d9b035cc31
Nvdrv: Do framelimiting only in the CPU Thread
2019-10-04 19:59:50 -04:00
ReinUsesLisp
ac7d5ab87f
service/nvdrv: Silence -Wswitch
2019-10-04 23:41:22 +00:00
Fernando Sahmkow
25054fdd42
Merge pull request #2873 from ogniK5377/new-ioctls
...
Initial implementation of Ioctl2 & Ioctl3
2019-09-22 09:45:29 -04:00
David Marcec
318288f0be
Mark KickOffPb & SubmitGPFIFO as trace
...
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-21 15:41:11 +10:00
David Marcec
87e01ad919
Initial implementation of Ioctl2 & Ioctl3
...
Purpose of Ioctl2 and Ioctl3 is to prevent the passing of raw pointers through ioctls
2019-09-19 15:37:25 +10:00
ReinUsesLisp
d762e37a18
gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig
2019-08-21 01:55:25 -03:00
Fernando Sahmkow
cbb5d814bc
Nv_Host_Ctrl: Correct difference calculation
2019-07-05 15:49:34 -04:00
Fernando Sahmkow
94a7beb8b9
NVServices: Address Feedback
2019-07-05 15:49:33 -04:00
Fernando Sahmkow
b8b874005f
NVServices: Styling, define constructors as explicit and corrections
2019-07-05 15:49:32 -04:00
Fernando Sahmkow
a156731a9c
NVFlinger: Correct GCC compile error
2019-07-05 15:49:31 -04:00
Fernando Sahmkow
9db53b51b6
NVServices: Make NVEvents Automatic according to documentation.
2019-07-05 15:49:29 -04:00