Liam
dcce9837d2
vi: move shared buffer management from nvnflinger
2 years ago
Liam
ee8eccc5fa
nvnflinger: convert to process
2 years ago
Liam
962c82540c
nvnflinger/gpu: implement blending
2 years ago
Liam
2c421a7046
hardware_composer: implement speed limit extensions
2 years ago
Liam
a595e9e8a7
nvnflinger/gpu: implement layer stack composition
2 years ago
Liam
68303ed601
core: support offline web applet
2 years ago
Liam
e4bbb24dcf
vi: check layer state before opening or closing
2 years ago
Liam
adc3079613
vi: fix confusion between closing and destroying layers
2 years ago
Liam
a872030a35
nvnflinger: implement consumer abandonment
2 years ago
Liam
8c59543ee3
kernel: update KProcess
2 years ago
Narr the Reg
35f25882e0
service: nvnflinger: Implement shared buffer
Co-authored-by: Liam <byteslice@airmail.cc>
2 years ago
Liam
84cb20bc72
core: remove ResultVal type
3 years ago
Liam
1586f1c0b1
general: remove atomic signal and wait
3 years ago
Liam
809148e1a5
nvnflinger: fix name
3 years ago
Liam
2f2ef5b147
nvnflinger: correct swap interval handling
3 years ago
Liam
9737615948
general: fix compile for Apple Clang
3 years ago
Liam
cdb9fe978f
vi: implement CloseDisplay
3 years ago
Liam
2d90a927c9
core: barrier service thread shutdown
3 years ago
Liam
a9ace6856d
kernel: remove KWritableEvent
3 years ago
Fernando Sahmkow
af35dbcf63
NVDRV: Fix Open/Close and make sure each device is correctly created.
4 years ago
Morph
41e855bd42
service: vi: Retrieve vsync event once per display
The display vsync event can only be retrieved once per display. Returns VI::ResultPermissionDenied if we attempt to retrieve the vsync event for the same display.
Prevents games such as .hack//G.U. Last Recode from consuming all the handles in the handle table by spamming vsync event retrievals and allows it to go in game.
3 years ago
Kelebek1
9d3b190465
Rework multi-core vsync
4 years ago
Morph
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.
4 years ago
bunnei
81eefcaa76
hle: nvflinger: Remove unused unordered_map include.
4 years ago
bunnei
ca12a77670
hle: nvflinger: Migrate android namespace -> Service::android.
4 years ago
bunnei
7f4165fc05
hle: vi: Integrate new NVFlinger and HosBinderDriverServer service.
4 years ago
ameerj
71e19153ef
nvflinger: Use jthread and stop_token for VSync thread
Avoids a destruction data race that may occur on the vsync thread
4 years ago
bunnei
fb3e9314b9
core: hle: service: nvflinger/vi: Improve management of KEvent.
5 years ago
bunnei
0c8594b225
Revert "kernel: Various improvements to scheduler"
5 years ago
bunnei
36cf96857e
core: hle: service: nvflinger/vi: Improve management of KEvent.
5 years ago
Lioncash
9a07ed53eb
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
da62e92784
nvflinger: Create layers when they are queried but not found
Fixes Shantae softlock on boot.
5 years ago
bunnei
bf380b8584
hle: kernel: Remove deprecated Object class.
5 years ago
bunnei
2e8d6fe9a0
hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
5 years ago
bunnei
addc0bf037
hle: kernel: Migrate KEvent to KAutoObject.
5 years ago
bunnei
3f942c01f0
hle: kernel: Rename WritableEvent to KWritableEvent.
5 years ago
bunnei
e86a7e3691
hle: kernel: Rename ReadableEvent to KReadableEvent.
5 years ago
bunnei
6433b1dfd6
service: nvflinger: Improve synchronization for BufferQueue.
- Use proper mechanisms for blocking on DequeueBuffer.
- Ensure service thread terminates on emulation Shutdown.
5 years ago
bunnei
19a8f03ad5
hle: service: nvflinger: Refactor locking and interfaces.
5 years ago
Lioncash
b724a4d90c
General: Tidy up clang-format warnings part 2
6 years ago
Lioncash
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.
6 years ago
Lioncash
5dab23e017
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
Fernando Sahmkow
e486c66850
NvFlinger: Clang Format.
6 years ago
Fernando Sahmkow
272a87127a
Services/NvFlinger: Do vSync in a sepparate thread on Multicore.
6 years ago
Fernando Sahmkow
cc3aa95926
NVFlinger: Lock race condition between CPU, Host Timing, VSync.
6 years ago
bunnei
64c5631579
service: vi: Implement CloseLayer.
- Needed for Undertale.
6 years ago
bunnei
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.
6 years ago
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.
6 years ago
Fernando Sahmkow
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.
7 years ago
Fernando Sahmkow
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.
7 years ago