| Age | Commit message (Collapse) | Author |
|
with the host GPU
|
|
|
|
Allows us to directly calculate the GPU tick without double conversion to and from the host clock tick.
|
|
Previously, we were mixing the raw CPU frequency and CNTFRQ.
The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
|
|
|
|
|
|
The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows.
Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution.
This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop.
|
|
Call rasterizer->ReleaseFences() directly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
core:hle:service:nvflinger Implement few type in bufferqueue query method
|
|
|
|
This reverts commit e7733544779f2706d108682dd027d44e7fa5ff4b, reversing
changes made to abbbdc2bc027ed7af236625ae8427a46df63f7e7.
|
|
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
|
|
|
|
|
|
|
|
This seems to only be used to protect a later gpu function call. So we can move the lock into that call instead.
|
|
|
|
|
|
|
|
|
|
- Fixes a hang on shutdown when NVFlinger thread is waiting on a syncpoint that will never occur.
- Commonly observed when stopping emulation in Super Mario Odyssey.
|
|
The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case.
This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics.
The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values.
The status bar update frequency was also changed from 2 seconds to 500ms.
|
|
Implements the OnClose method of the nvhost_vic device, and removes the remnants of an older implementation.
Also cleans up some of the surrounding code.
|
|
nvdrv: Cleanup CDMA Processor on device closure
|
|
|
|
- Removes a dependency on core and input_common from common.
|
|
This was implicitly done by `is_powered_on = false`, however the explicit method allows us to block until the GPU is actually gone.
This should fix a race condition while removing the other subsystems while the GPU is still active.
|
|
Brings us a step closer to unifying all channels to share a common interface.
|
|
This commit removes early placeholders for an implementation of async nvdec. With recent changes to the source code, the placeholders are no longer accurate, and can cause a nullptr dereference due to the nature of the cdma_pusher lifetime.
|
|
|
|
|
|
Instead of using a two step initialization to report errors, initialize
the GPU renderer and rasterizer on the constructor and report errors
through std::runtime_error.
|
|
|
|
- We must always use a GPU thread now, even with synchronous GPU.
|
|
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.
Reduces the line noise a bit.
|
|
Resolves variable shadowing scenarios up to the end of the OpenGL code
to make it nicer to review. The rest will be resolved in a following
commit.
|