Commit Graph

53 Commits

Author SHA1 Message Date
Maufeat be97bf3c1b [nvnflinger] add GetBufferHistory from sudachi (#82)
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/82

This commit adds a working implementation of the `GetBufferHistory` transaction in `BufferQueueProducer`, removing the previous stub.

Adapted by Jarrod Norwell for Sudachi, this implementation references the behavior in Ryujinx; commit rescued by Maufeat and another Eden teammate from Sudachi's reference, fixed and adapted for Eden usage.

It helps improve compatibility with Unreal Engine 4 titles and others that depend on proper surface history tracking for rendering pipelines, especially with regard to lighting, bloom, and alpha transitions.

Functionality has been tested for stability and does not introduce regressions, though further validation is recommended.
Co-authored-by: Maufeat <maufeat@eden-emu.dev>
Co-committed-by: Maufeat <maufeat@eden-emu.dev>
2025-07-21 07:16:26 +02:00
Liam 6fabb06764 nvnflinger/vi: don't recreate buffer queue on open/close 2024-02-19 23:59:35 -05:00
Liam d082a80d79 nvnflinger: check for layers before compose 2024-02-18 11:25:52 -05:00
Liam f5d736af4b vi: manage resources independently of nvnflinger and refactor 2024-02-17 18:08:38 -05:00
Liam e34074861c vi: move shared buffer management from nvnflinger 2024-02-17 18:01:41 -05:00
Liam b1f1beae41 nvnflinger: convert to process 2024-02-17 18:01:41 -05:00
Liam 33daf4463b vi: rewrite IHOSBinderDriver 2024-02-14 12:03:32 -05:00
Liam ce72818075 nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
Liam 1c32e4157c nvnflinger/gpu: implement blending 2024-02-09 09:20:53 -05:00
Liam d52e9b0f82 nvnflinger: release buffers before presentation sleep 2024-02-03 17:14:43 -05:00
Liam 7aed3eb94b hardware_composer: implement speed limit extensions 2024-01-31 11:27:21 -05:00
Liam 5ec76db392 nvnflinger/gpu: implement layer stack composition 2024-01-31 11:27:21 -05:00
Liam 7df27bbef6 core: support offline web applet 2024-01-29 20:17:33 -05:00
Liam 9bfb67051e am: add new datatypes for per-applet state 2024-01-29 18:43:45 -05:00
liamwhite 5a6b3a0125 Merge pull request #12579 from FernandoS27/smmu
Core: Implement Device Mapping & GPU SMMU
2024-01-22 10:55:39 -05:00
Liam bf2dab5b2b nvdrv: use static typing for SessionId, smmu Asid types 2024-01-18 21:12:30 -05:00
Fernando Sahmkow b206089ea7 Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
Fernando Sahmkow aaf5f8c831 SMMU: Fix software rendering and cleanup 2024-01-18 21:12:30 -05:00
Fernando Sahmkow eb4f7f35ea NVDRV: Implement sessions and initial implementation of SMMU 2024-01-18 21:12:30 -05:00
Liam c6dc206cd6 vi: check layer state before opening or closing 2024-01-17 22:03:40 -05:00
Liam 5f9a3c23db nvnflinger: ensure display abandonment considers all layers and future layers 2024-01-17 18:45:39 -05:00
Liam 1d7fb4cffb vi: connect vsync event handle lifetime to application display service interface 2024-01-07 21:47:41 -05:00
Liam b9545c5a0e core_timing: remove user data value 2023-12-23 15:36:44 -05:00
Fernando S 23ce66de64 Merge pull request #12304 from liamwhite/flinger-wtf
nvnflinger: mark buffer as acquired when acquired
2023-12-19 16:12:56 +01:00
Liam e6973a159d nvnflinger: mark buffer as acquired when acquired 2023-12-16 13:40:04 -05:00
Liam ccef7d7326 vi: fix confusion between closing and destroying layers 2023-12-12 12:14:23 -05:00
Liam ca5bda4ce9 fbshare: set external format correctly 2023-12-09 14:51:15 -05:00
liamwhite 8a84cfff20 Merge pull request #11912 from liamwhite/nv-graphic-buffer
nvnflinger: use graphic buffer lifetime for map handle
2023-11-17 20:41:34 -05:00
liamwhite 1096b8a8c0 Merge pull request #11917 from liamwhite/abandonment
nvnflinger: implement consumer abandonment
2023-11-17 20:41:23 -05:00
liamwhite 694cbdefec Merge pull request #11896 from liamwhite/crop
renderer_vulkan: fix cropping for presentation
2023-11-06 12:08:03 -05:00
liamwhite c2b363e9b5 Merge pull request #11873 from liamwhite/buffer-control
nvdrv: add ioctl command serialization wrapper
2023-11-06 12:07:50 -05:00
Liam bf43b80a2b nvnflinger: implement consumer abandonment 2023-10-29 23:38:24 -04:00
Liam 2e8b7e4a40 nvnflinger: use graphic buffer lifetime for map handle 2023-10-29 22:12:16 -04:00
liamwhite 72202eb15f Merge pull request #11843 from liamwhite/sync-process
kernel: update KProcess
2023-10-29 11:24:52 -04:00
liamwhite 56341c3b8d Merge pull request #11827 from liamwhite/preallocated
nvnflinger: fix reporting and freeing of preallocated buffers
2023-10-29 11:24:44 -04:00
Liam 00d53a6ca9 renderer_vulkan: fix cropping for presentation 2023-10-28 00:05:06 -04:00
Liam a059aedaf1 nvdrv: convert nvmap 2023-10-25 13:05:56 -04:00
Liam 62e106dbe8 kernel: update KProcess 2023-10-21 20:03:41 -04:00
Liam e95745685a nvnflinger: fix reporting and freeing of preallocated buffers
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
2023-10-20 10:17:32 -04:00
Liam 144ae38fb3 kernel: split Io memory state, add PermissionLocked attribute 2023-10-20 02:34:15 -04:00
Narr the Reg 9567f9aaed service: nvnflinger: Implement shared buffer
Co-authored-by: Liam <byteslice@airmail.cc>
2023-10-01 11:38:30 -06:00
Liam dedb9a1132 nvnflinger: add missing scale mode 2023-08-13 13:57:02 -04:00
Liam 5f2c56cd15 core: remove ResultVal type 2023-08-08 11:09:37 -04:00
Morph acfb053333 parcel: Optimize small_vector sizes 2023-06-30 22:05:28 -04:00
liamwhite fa8419f54e Merge pull request #10859 from liamwhite/no-more-atomic-wait
general: remove atomic signal and wait
2023-06-23 09:27:14 -04:00
Liam db40a2f430 general: remove atomic signal and wait 2023-06-22 09:25:23 -04:00
Kelebek1 c7430e51e3 Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
bunnei 72a469b967 Merge pull request #10086 from Morph1984/coretiming-ng-1
core_timing: Use CNTPCT as the guest CPU tick
2023-06-21 21:12:46 -07:00
Liam 1b33ebdde2 nvnflinger: allow locking framerate during video playback 2023-06-08 01:15:51 -04:00
Morph fb3bb63880 nvnflinger: Acquire lock prior to signaling the vsync variable 2023-06-07 21:44:42 -04:00