Fernando Sahmkow
c43e559734
NVDRV: Remove frame limiting as Host Timing already takes care.
2020-06-27 11:35:28 -04:00
Fernando Sahmkow
e31425df38
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
b15cbf9bcf
nvdrv: Fix GetTPCMasks for ioctl3
...
Fixes animal crossing svcBreak on launch
2020-06-10 18:36:42 +10:00
David Marcec
d5a69ecb68
nvdrv: Fix GetGpuTime stack corruption
...
IoctlGetGpuTime should be 16 bytes, not 8.
2020-05-02 00:14:37 +10:00
namkazy
7fadc9c180
nvhost_gpu: implement ChannelSetTimeslice
2020-02-16 11:53:03 +07:00
Fernando Sahmkow
a5bb1ac6e3
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
b05bfc6036
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
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
bunnei
b0ab803ce8
kernel: events: Remove ResetType::Automatic.
...
- 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-11-03 04:22:45 -05:00
bunnei
ef9b31783d
Merge pull request #2912 from FernandoS27/async-fixes
...
General fixes to Async GPU
2019-10-16 10:34:48 -04:00
Fernando Sahmkow
69fa2e6525
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
ffc2ce89a0
Nvdrv: Do framelimiting only in the CPU Thread
2019-10-04 19:59:50 -04:00
Fernando Sahmkow
4e9f975935
Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncs
2019-10-04 19:59:47 -04:00
ReinUsesLisp
8d0b1a957e
service/nvdrv: Silence -Wswitch
2019-10-04 23:41:22 +00:00
Fernando Sahmkow
a755f24369
Merge pull request #2873 from ogniK5377/new-ioctls
...
Initial implementation of Ioctl2 & Ioctl3
2019-09-22 09:45:29 -04:00
David Marcec
6325c3044c
server side clang format fix2
2019-09-22 12:26:03 +10:00
David Marcec
d3783fcc52
Use clang-format provided by build server
2019-09-22 12:21:07 +10:00
David Marcec
c2f966dbc1
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
0740758b25
disable clang-format temp
2019-09-20 10:25:12 +10:00
David Marcec
f9259c0383
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
9a76e94b3d
gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig
2019-08-21 01:55:25 -03:00
Fernando Sahmkow
0fc98958a3
NVServices: Correct delayed responses.
2019-07-05 15:49:35 -04:00
Fernando Sahmkow
8c91d5c166
Nv_Host_Ctrl: Correct difference calculation
2019-07-05 15:49:34 -04:00
Fernando Sahmkow
f3a39e0c9c
NVServices: Address Feedback
2019-07-05 15:49:33 -04:00
Fernando Sahmkow
d20ede40b1
NVServices: Styling, define constructors as explicit and corrections
2019-07-05 15:49:32 -04:00
Fernando Sahmkow
b391e5f638
NVFlinger: Correct GCC compile error
2019-07-05 15:49:31 -04:00
Fernando Sahmkow
0335a25d1f
NVServices: Make NVEvents Automatic according to documentation.
2019-07-05 15:49:29 -04:00
Fernando Sahmkow
b6844bec60
NVServices: Correct CtrlEventWaitSync to block the ipc until timeout.
2019-07-05 15:49:28 -04:00
Fernando Sahmkow
7d1b974bca
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
2019-07-05 15:49:26 -04:00
Fernando Sahmkow
efdeab3a1d
nv_services: Fixes to event liberation.
2019-07-05 15:49:24 -04:00
Fernando Sahmkow
24408cce9b
nv_services: Deglobalize NvServices
2019-07-05 15:49:22 -04:00
Fernando Sahmkow
0706d633bf
nv_host_ctrl: Make Sync GPU variant always return synced result.
2019-07-05 15:49:20 -04:00
Fernando Sahmkow
78add28aab
nvhost_ctrl: Corrections to event handling
2019-07-05 15:49:17 -04:00
Fernando Sahmkow
eef55f493b
Gpu: Mark areas as protected.
2019-07-05 15:49:16 -04:00
Fernando Sahmkow
a45643cb3b
nv_services: Stub CtrlEventSignal
2019-07-05 15:49:15 -04:00
Fernando Sahmkow
8942047d41
Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts
2019-07-05 15:49:14 -04:00
Fernando Sahmkow
e0027eba85
nv_services: Implement NvQueryEvent, NvCtrlEventWait, NvEventRegister, NvEventUnregister
2019-07-05 15:49:13 -04:00
Fernando Sahmkow
7039ece0a0
nv_services: Create GPU channels correctly
2019-07-05 15:49:12 -04:00
Fernando Sahmkow
82b829625b
video_core: Implement GPU side Syncpoints
2019-07-05 15:49:11 -04:00
Fernando Sahmkow
737e978f5b
nv_services: Correct buffer queue fencing and GPFifo fencing
2019-07-05 15:49:10 -04:00
Lioncash
2548661c08
core/core_timing_util: Amend casing of cyclesTo* functions
...
Makes the casing consistent with all of our general function naming
conventions.
2019-06-04 20:31:46 -04:00
Lioncash
42f5fd0ab3
core/core_timing_util: Use std::chrono types for specifying time units
...
Makes the interface more type-safe and consistent in terms of return
values.
2019-06-04 20:31:24 -04:00
Lioncash
a47aaa7f1b
core/kernel/object: Rename ResetType enum members
...
Renames the members to more accurately indicate what they signify.
"OneShot" and "Sticky" are kind of ambiguous identifiers for the reset
types, and can be kind of misleading. Automatic and Manual communicate
the kind of reset type in a clearer manner. Either the event is
automatically reset, or it isn't and must be manually cleared.
The "OneShot" and "Sticky" terminology is just a hold-over from Citra
where the kernel had a third type of event reset type known as "Pulse".
Given the Switch kernel only has two forms of event reset types, we
don't need to keep the old terminology around anymore.
2019-05-18 15:52:51 -04:00
Lioncash
5b0a9f8ba8
core: Add missing override specifiers where applicable
...
Applies the override specifier where applicable. In the case of
destructors that are defaulted in their definition, they can
simply be removed.
This also removes the unnecessary inclusions being done in audin_u and
audrec_u, given their close proximity.
2019-04-04 12:19:44 -04:00
bunnei
e5893db3e6
Merge pull request #2256 from bunnei/gpu-vmm
...
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-22 18:41:12 -04:00
bunnei
3e930304fe
Merge pull request #2090 from FearlessTobi/port-4599
...
Port citra-emu/citra#4244 and citra-emu/citra#4599 : Changes to BitField
2019-03-20 23:44:20 -04:00
bunnei
22d3dfbcd4
gpu: Rewrite virtual memory manager using PageTable.
2019-03-20 22:36:02 -04:00
bunnei
241563d15c
gpu: Move GPUVAddr definition to common_types.
2019-03-20 22:36:02 -04:00
bunnei
2eaf6c41a4
gpu: Use host address for caching instead of guest address.
2019-03-14 22:34:42 -04:00
bunnei
7b574f406b
gpu: Move command processing to another thread.
2019-03-06 21:48:57 -05:00