873ad1272e
buffer_queue: better use of std::array
2020-12-18 00:12:14 -05:00
8cb683f3b9
Overwrite slots instead of queuing them, add disconnect signal
...
Fix for Katana Zero and Yoshi's Crafted World
2020-12-17 14:22:46 -05:00
6b7320add4
core: Remove unnecessary enum casts in log calls
...
Follows the video core PR. fmt doesn't require casts for enum classes
anymore, so we can remove quite a few casts.
2020-12-07 23:02:23 -05:00
087f52e872
Merge pull request #4858 from lioncash/initializer
...
General: Resolve a few missing initializer warnings
2020-11-04 12:10:10 -08:00
1d4cbb92f2
service: hle: nvflinger: Fix potential shutdown crash when GPU is destroyed.
2020-11-01 01:52:38 -07:00
5553bd3ba2
General: Resolve a few missing initializer warnings
...
Resolves a few -Wmissing-initializer warnings.
2020-10-29 19:37:07 -04:00
3d592972dc
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
88d5140cf2
Merge pull request #4796 from lioncash/clang
...
core: Fix clang build
2020-10-20 19:19:12 -04:00
be1954e04c
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
1f186f34a2
hle: service: vi: Implement BufferQueue::CancelBuffer.
...
- This is used by Super Mario 3D All-Stars.
2020-10-13 22:11:52 -07:00
ff45c39578
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
b724a4d90c
General: Tidy up clang-format warnings part 2
2020-08-13 14:19:08 -04:00
9b837c6069
buffer_queue: Make use of std::nullopt
...
Allows compilers to eliminate unnecessary zeroing out of the optional's
buffer.
2020-08-03 09:31:51 -04:00
24bd068a08
buffer_queue: Make use of designated initializers
2020-08-03 09:31:51 -04:00
a7af349dae
core_timing: Make use of uintptr_t to represent user_data
...
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
2020-07-27 21:21:01 -04:00
7b070bbf62
nvflinger: Mark interface functions with return values as [[nodiscard]]
...
Not using the return value of these functions are undeniably the source
of a bug. This way we allow compilers to loudly make any future misuses
evident.
2020-07-25 19:42:45 -04:00
5dab23e017
nvflinger: Use return value of Lock()
...
comex reported in #4424 that we were incorrectly discarding the return
value of Lock() which is correct.
2020-07-25 19:04:53 -04:00
bef1844a51
core_timing: Make TimedCallback take std::chrono::nanoseconds
...
Enforces our desired time units directly with a concrete type.
2020-07-15 19:41:22 -04:00
8b50c660df
core_timing: Make use of std::chrono with ScheduleEvent
2020-07-15 18:54:15 -04:00
e486c66850
NvFlinger: Clang Format.
2020-06-27 11:36:30 -04:00
272a87127a
Services/NvFlinger: Do vSync in a sepparate thread on Multicore.
2020-06-27 11:36:20 -04:00
cc3aa95926
NVFlinger: Lock race condition between CPU, Host Timing, VSync.
2020-06-27 11:35:18 -04:00
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
6f0360690b
nv_flinger: Use enum for pixel format instead of u32
2020-05-16 13:47:55 +10:00
a9f866264d
Merge pull request #3606 from ReinUsesLisp/nvflinger
...
service/vi: Partially implement BufferQueue disconnect
2020-04-12 11:44:48 -04:00
486a42c45a
Buffer queue: Correct behavior of free buffer.
...
This corrects the behavior of free buffer after witnessing it in an
unrelated hardware test. I haven't found any games affected by it but in
name of better accuracy we'll correct such behavior.
2020-04-10 16:44:28 -04:00
8c0ba9c6fe
service/vi: Partially implement BufferQueue disconnect
2020-04-10 01:00:50 -03:00
95b804ff05
NVFlinger: Do the microprofile Flip after processing a valid frame.
2020-03-12 10:52:44 -04:00
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
319c4d2108
Merge pull request #3272 from bunnei/vi-close-layer
...
service: vi: Implement CloseLayer.
2020-01-07 12:45:34 -05:00
64c5631579
service: vi: Implement CloseLayer.
...
- Needed for Undertale.
2020-01-04 00:45:06 -05:00
cb9dd01ffd
video_core: Block in WaitFence.
...
This function is called rarely and blocks quite often for a long time.
So don't waste power and let the CPU sleep.
This might also increase the performance as the other cores might be allowed to clock higher.
2019-12-30 13:04:53 +01:00
ec0ce96c56
core_timing: Use better reference tracking for EventType. ( #3159 )
...
* core_timing: Use better reference tracking for EventType.
- Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects.
- Removes need for unique names - we won't be using this for save states anyways.
2019-11-26 21:48:56 -05: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
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
ef9b31783d
Merge pull request #2912 from FernandoS27/async-fixes
...
General fixes to Async GPU
2019-10-16 10:34:48 -04:00
574440d59f
nvflinger/buffer_queue: Remove use of a global system accessor
2019-10-12 09:17:56 -04:00
75395605d6
NvFlinger: Remove leftover from corrections and clang format.
2019-10-04 19:59:54 -04:00
782b7a0ca4
NVFlinger: Reverse the change that only signaled events on buffer acquire.
...
This has been hardware tested and it seems that NVFlinger will still
signal even if there are no buffers to present.
2019-10-04 19:59:51 -04:00
976d9ef43c
NvFlinger: Don't swap buffers if a frame is missing and always trigger event in sync gpu.
2019-10-04 19:59:49 -04:00
5b5e60ffec
GPU_Async: Correct fences, display events and more.
...
This commit uses guest fences on vSync event instead of an articial fake
fence we had.
It also corrects to keep signaling display events while loading the game
as the OS is suppose to send buffers to vSync during that time.
2019-10-04 19:59:48 -04:00
4e9f975935
Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncs
2019-10-04 19:59:47 -04:00
bd1c4ec9a0
Rebase
2019-09-22 16:41:34 +10:00
4d220964df
Deglobalize System: Vi
2019-09-22 16:38:03 +10:00
d6e830d877
Deglobalize System: NvFlinger
2019-09-22 16:35:51 +10:00
f3a39e0c9c
NVServices: Address Feedback
2019-07-05 15:49:33 -04:00
d20ede40b1
NVServices: Styling, define constructors as explicit and corrections
2019-07-05 15:49:32 -04:00
b391e5f638
NVFlinger: Correct GCC compile error
2019-07-05 15:49:31 -04:00
61697864c3
nvflinger: Make the force 30 fps still force 30 fps
2019-07-05 15:49:25 -04:00
ea97589624
nvflinger: Acquire buffers in the same order as they were queued.
2019-07-05 15:49:23 -04:00