ameerj
8badb6f4a7
Revert "Merge pull request #7668 from ameerj/fence-stop-token"
This reverts commit 5a612e9217 , reversing
changes made to 2e61bc3d51 .
4 years ago
ameerj
0585c60227
gpu: Use std::stop_token in WaitFence for VSync thread
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
4 years ago
ameerj
7a94851e9b
nvflinger: Use jthread and stop_token for VSync thread
Avoids a destruction data race that may occur on the vsync thread
4 years ago
ameerj
3e19187560
nvflinger: Use external surface format for framebuffer creation
The format member the IGBPBuffer may not always specify the correct desired format. Using the external format member ensures a valid format is provided when creating the framebuffer.
Fixes homebrew using the wrong framebuffer format.
4 years ago
bunnei
b690071dd5
core: hle: service: buffer_queue: Improve management of KEvent.
4 years ago
bunnei
a1a415914d
core: hle: service: nvflinger/vi: Improve management of KEvent.
4 years ago
bunnei
5e600cba3a
Revert "kernel: Various improvements to scheduler"
4 years ago
bunnei
1b1b33993b
core: hle: service: buffer_queue: Improve management of KEvent.
4 years ago
bunnei
8cbb66daf8
core: hle: service: nvflinger/vi: Improve management of KEvent.
4 years ago
ameerj
8c0d6af843
config, nvflinger: Add FPS cap setting
Allows finer tuning of the FPS limit.
5 years ago
ameerj
72a4091aec
nvflinger: Add toggle to disable buffer swap interval limits
Enabling this setting will allow some titles to present more frames to
the screen as they become available in the nvflinger buffer queue.
5 years ago
Lioncash
eeae5217ba
core: Make variable shadowing a compile-time error
Now that we have most of core free of shadowing, we can enable the
warning as an error to catch anything that may be remaining and also
eliminate this class of logic bug entirely.
5 years ago
ameerj
16528cb361
nvflinger: Create layers when they are queried but not found
Fixes Shantae softlock on boot.
5 years ago
bunnei
617803fb5d
hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
5 years ago
bunnei
949231d69c
hle: kernel: Migrate KEvent to KAutoObject.
5 years ago
Lioncash
b25f44f4d7
service: Eliminate cases of member shadowing
Resolves a few localized instances of member variable shadowing. Brings
us a little closer to turning shadowing warnings into errors.
5 years ago
bunnei
7a76bc30fa
common: Move settings to common from core.
- Removes a dependency on core and input_common from common.
5 years ago
bunnei
284a4d9283
hle: kernel: Rename ReadableEvent to KReadableEvent.
5 years ago
bunnei
7f4d928f77
core: hle: Add missing calls to MicroProfileOnThreadExit.
5 years ago
bunnei
b1b4edec05
service: nvflinger: Improve synchronization for BufferQueue.
- Use proper mechanisms for blocking on DequeueBuffer.
- Ensure service thread terminates on emulation Shutdown.
5 years ago
bunnei
eeabd0cc31
hle: service: nvflinger: Refactor locking and interfaces.
5 years ago
bunnei
d787a5bfde
service: hle: nvflinger: Fix potential shutdown crash when GPU is destroyed.
5 years ago
bunnei
deb3536936
Revert "core: Fix clang build"
5 years ago
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
5 years ago
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.
5 years ago
Lioncash
7decda6bc2
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.
6 years ago
Lioncash
94ae1a0bf1
nvflinger: Use return value of Lock()
comex reported in #4424 that we were incorrectly discarding the return
value of Lock() which is correct.
6 years ago
Lioncash
56054fe86d
core_timing: Make TimedCallback take std::chrono::nanoseconds
Enforces our desired time units directly with a concrete type.
6 years ago
Lioncash
9e113a2b67
core_timing: Make use of std::chrono with ScheduleEvent
6 years ago
Fernando Sahmkow
fda5651072
Services/NvFlinger: Do vSync in a sepparate thread on Multicore.
6 years ago
Fernando Sahmkow
2c0431e5ed
NVFlinger: Lock race condition between CPU, Host Timing, VSync.
6 years ago
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.
6 years ago
Fernando Sahmkow
babc572a47
NVFlinger: Do the microprofile Flip after processing a valid frame.
6 years ago
Fernando Sahmkow
6fc0790f3a
Core: Set all hardware emulation constants in a single file.
6 years ago
bunnei
cbaf3b3c40
service: vi: Implement CloseLayer.
- Needed for Undertale.
6 years ago
Markus Wick
4bdaebe33e
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.
6 years ago
bunnei
8b35acbd29
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.
6 years ago
bunnei
5cb0f276fe
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.
6 years ago
Lioncash
b546e106d1
nvflinger/buffer_queue: Remove use of a global system accessor
6 years ago
Fernando Sahmkow
5a98b5a19f
NvFlinger: Remove leftover from corrections and clang format.
6 years ago
Fernando Sahmkow
3897935493
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.
6 years ago
Fernando Sahmkow
13d4774389
NvFlinger: Don't swap buffers if a frame is missing and always trigger event in sync gpu.
6 years ago
Fernando Sahmkow
1df31e4b65
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.
6 years ago
Fernando Sahmkow
a248bd1c3e
Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncs
6 years ago
David Marcec
4b13f6cfcb
Rebase
6 years ago
David Marcec
b48f1cbbb5
Deglobalize System: Vi
6 years ago
David Marcec
d927a700da
Deglobalize System: NvFlinger
6 years ago
Fernando Sahmkow
b8b874005f
NVServices: Styling, define constructors as explicit and corrections
7 years ago
Fernando Sahmkow
a156731a9c
NVFlinger: Correct GCC compile error
7 years ago
Fernando Sahmkow
bd05d92c26
nvflinger: Make the force 30 fps still force 30 fps
7 years ago