5da70f7197
Remove memory allocations in some hot paths
2023-06-22 08:05:10 +01:00
809148e1a5
nvnflinger: fix name
2023-03-01 10:39:49 -05:00
65be230fdd
service: move hle_ipc from kernel
2023-03-01 10:39:49 -05:00
a936972614
service: refactor server architecture
...
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
2d2522693e
Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
...
This reverts commit 25fc5c0e11
, reversing
changes made to af20e25081
.
2023-02-03 00:08:45 -05:00
b01698775b
Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer"
2023-02-02 15:53:28 -05:00
f517f82416
nvdrv: Use std::span for inputs
...
Allows the use of HLERequestContext::ReadBufferSpan
2022-12-28 18:46:53 -05:00
ad787b20ca
nvdrv: Simplify builder declarations
...
We can just use auto here. If one of these ever happens to not be
derived from nvdevice, then this will cause a compilation error.
We can also move the devices into the collection to get rid of an
unnecessary atomic reference count increment and decrement.
2022-11-28 10:43:48 -05:00
05f2673648
nvdrv: fix container destruction order
2022-10-23 19:25:57 -04:00
a9ace6856d
kernel: remove KWritableEvent
2022-10-12 20:29:29 -04:00
ca3db0d7c9
General: address feedback
2022-10-06 21:00:54 +02:00
fedd983f96
general: Format licenses as per SPDX guidelines
2022-10-06 21:00:54 +02:00
8d774e7415
NvDec: Fix regressions.
2022-10-06 21:00:53 +02:00
920429fde7
NVDRV: Further refactors and eliminate old code.
2022-10-06 21:00:52 +02:00
2931101e6f
NVDRV: Refactor Host1x
2022-10-06 21:00:52 +02:00
139ea93512
VideoCore: implement channels on gpu caches.
2022-10-06 21:00:51 +02:00
ad038609c8
NVDRV: Fix clearing when destroying.
2022-10-06 21:00:51 +02:00
af35dbcf63
NVDRV: Fix Open/Close and make sure each device is correctly created.
2022-10-06 21:00:51 +02:00
de0e8eff42
NVDRV: Implement new NvMap
2022-10-06 21:00:51 +02:00
3cbe352c18
NVDRV: Refactor and add new NvMap.
2022-10-06 21:00:51 +02:00
a21b8824fb
NVDRV: Cleanup.
2022-10-06 21:00:51 +02:00
d30b885d71
NVDRV: Implement QueryEvent.
2022-10-06 21:00:51 +02:00
39a5ce4e69
NvHost: Remake Ctrl Implementation.
2022-10-06 21:00:51 +02:00
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
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.
2022-04-23 05:55:32 -04:00
7c4b6aab2e
core: Remove unused includes
2021-11-03 21:42:57 -04:00
185b19fd5b
hle: service: nvdrv: Remove unused kernel reference.
2021-07-20 18:54:56 -07:00
015058fadf
hle: service: Add a helper module for managing kernel objects.
2021-07-20 18:54:55 -07:00
c6d7da88c7
service: Append service name prefix to common filenames
2021-07-14 02:09:14 -04:00
2e8d6fe9a0
hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
2021-05-05 16:40:51 -07:00
89edbe8aa2
hle: kernel: Refactor several threads/events/sharedmemory to use slab heaps.
2021-05-05 16:40:51 -07:00
ab704acab8
hle: kernel: Ensure all kernel objects with KAutoObject are properly created.
2021-05-05 16:40:51 -07:00
addc0bf037
hle: kernel: Migrate KEvent to KAutoObject.
2021-05-05 16:40:50 -07:00
5e5933256b
hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.
2021-05-05 16:40:50 -07:00
99fdfa1fcd
nvdrv: Pass device fd and handle device create methods for device opening 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-25 12:56:42 +11:00
ff3c7c068b
hle: kernel: Reimplement KReadableEvent and KWritableEvent.
2021-02-05 14:03:32 -08:00
3f942c01f0
hle: kernel: Rename WritableEvent to KWritableEvent.
2021-02-05 14:00:36 -08:00
e86a7e3691
hle: kernel: Rename ReadableEvent to KReadableEvent.
2021-02-05 14:00:36 -08:00
2c27127d04
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
0c81b83ca9
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
1a954b2a59
service: Eliminate usages of the global system instance
...
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-26 20:03:11 -05:00
ab25d1fe9a
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
fc4d692c50
Addressed issues
2020-11-10 15:57:36 +11:00
31c12de0fe
core: Make nvservices more standardized
2020-11-10 15:57:35 +11:00
da7be67daf
ipc_helpers: Remove usage of the global system instance
...
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-08 15:58:11 -05:00
e67b8678f8
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
66edfd61c6
hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.
2020-11-01 01:52:37 -07:00
4a3fd97e48
hle service: nvdrv: Update to instantiate SyncpointManager.
2020-11-01 01:52:34 -07:00
d567b7e841
hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.
2020-11-01 01:51:54 -07:00
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
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for 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-24 20:15:51 -05:00