Commit Graph

246 Commits

Author SHA1 Message Date
Zephyron a7af4d001b service/vi: Improve OpenDisplay validation
Updates the OpenDisplay function in IApplicationDisplayService to properly
validate display names. Instead of only accepting "Default", now validates
against all known valid display names: "Default", "External", "Edid",
"Internal", and "Null".

- Changes log level from WARNING to DEBUG since this is no longer stubbed
- Adds proper validation for all valid display names
- Returns ResultOperationFailed for invalid display names
- Improves logging by including the requested display name
2025-02-16 11:57:23 +10:00
Zephyron a6063bbd64 service: vi: Implement missing IApplicationDisplayService functions
Implements missing functions and improves permission handling in the VI
(Visual Interface) IApplicationDisplayService based on official documentation.

Key changes:
- Add session type enum to properly handle vi:u/vi:s/vi:m permissions
- Implement GetIndirectLayerImageCropMap for handling cropped layer images
- Implement GetDisplayVsyncEventForDebug for debug vsync event handling
- Add proper permission checks for GetSystemDisplayService and GetManagerDisplayService
- Improve AppletResourceUserId validation in OpenLayer
- Clean up logging and error handling

The changes follow the official documentation for permission handling:
- vi:u sessions can only use GetRelayService
- vi:s sessions can use everything except GetManagerDisplayService
- vi:m sessions can use all commands

REFS: switchbrew.org/wiki/Display_services#IApplicationDisplayService
2025-01-26 13:27:06 +10:00
Zephyron 6d225eb94a service: vi: Remove stubbed warning from GetManagerDisplayService
- The GetManagerDisplayService function in IApplicationDisplayService is fully implemented, so remove the stubbed warning and change the log level to DEBUG to match its implementation status.
2025-01-20 16:03:43 +10:00
Zephyron 9ae0eeeb87 Revert incorrect copyright attribution for non-contributed files
- In commit b3facaa6bb, the copyright header was
  updated to include "Citron Homebrew Project" across multiple files, regardless
  of whether any contributions were made.

- This commit removes the incorrect attribution and reverts the copyright header
  to its previous state.

- Copyright attribution should only be added when meaningful contributions have
  been made to the file.

- This commit ensures proper compliance with copyright standards and maintains
  correct attribution to the respective contributors.

- Special thanks to Tachi for pointing out the need for these corrections and
  ensuring that proper attribution practices are followed.
2025-01-14 15:33:24 +10:00
Zephyron b3facaa6bb
chore: update project references and add Citron copyright
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
2024-12-31 17:07:49 +10:00
Liam 812754edec vi: workaround conductor includes 2024-02-23 10:34:49 -05:00
Liam 5f7608a7c6 vi: ignore shared buffer destruction failure on termination 2024-02-20 00:02:56 -05:00
Liam 668ff0db3a vi: remove superfluous locking in shared buffer manager 2024-02-19 23:59:35 -05:00
Liam 9f159dd62c nvnflinger/vi: don't recreate buffer queue on open/close 2024-02-19 23:59:35 -05:00
Liam 940a71422e nvnflinger: check for layers before compose 2024-02-18 11:25:52 -05:00
german77 a07f0883b9 service: vi: Implement ListDisplayMode 2024-02-17 18:08:41 -05:00
Liam 812f23d05c vi: manage resources independently of nvnflinger and refactor 2024-02-17 18:08:38 -05:00
Liam dcce9837d2 vi: move shared buffer management from nvnflinger 2024-02-17 18:01:41 -05:00
Liam ee8eccc5fa nvnflinger: convert to process 2024-02-17 18:01:41 -05:00
Liam 1842df1da5 vi: rewrite IApplicationDisplayService 2024-02-14 12:03:32 -05:00
Liam 8863940bf5 vi: rewrite ISystemDisplayService 2024-02-14 12:03:32 -05:00
Liam b1c71f976c vi: rewrite IManagerDisplayService 2024-02-14 12:03:32 -05:00
Liam 59011a04a1 vi: rewrite IHOSBinderDriver 2024-02-14 12:03:32 -05:00
Liam c448001d47 vi: rewrite IApplicationRootService, IManagerRootService, ISystemRootService 2024-02-14 12:03:32 -05:00
Liam 2e8c0e9247 vi: split into implementation files 2024-02-14 12:03:32 -05:00
Liam db871677b0 vi: extract types 2024-02-14 12:03:31 -05:00
Liam 962c82540c nvnflinger/gpu: implement blending 2024-02-09 09:20:53 -05:00
Liam a595e9e8a7 nvnflinger/gpu: implement layer stack composition 2024-01-31 11:27:21 -05:00
Liam 68303ed601 core: support offline web applet 2024-01-29 20:17:33 -05:00
Liam 182137a9a4 am: migrate global state to per-applet state structure 2024-01-29 20:17:33 -05:00
Narr the Reg fc5d76e6e2 service: properly convert buffers to strings 2024-01-23 10:24:05 -06:00
Liam e4bbb24dcf vi: check layer state before opening or closing 2024-01-17 22:03:40 -05:00
Liam ce89580749 nvnflinger: ensure display abandonment considers all layers and future layers 2024-01-17 18:45:39 -05:00
Liam ea710e6523 vi: connect vsync event handle lifetime to application display service interface 2024-01-07 21:47:41 -05:00
Liam ae88ea79b2 vi: fix name of nvnflinger 2024-01-07 21:31:03 -05:00
Liam adc3079613 vi: fix confusion between closing and destroying layers 2023-12-12 12:14:23 -05:00
Liam 79e7d7f4ba nvnflinger: use graphic buffer lifetime for map handle 2023-10-29 22:12:16 -04:00
Narr the Reg 35f25882e0 service: nvnflinger: Implement shared buffer
Co-authored-by: Liam <byteslice@airmail.cc>
2023-10-01 11:38:30 -06:00
lat9nq 3c45452fae general: Use console mode helper across project 2023-08-22 21:58:23 -04:00
lat9nq 387ede76d2 general: Convert use_docked_mode to an enumeration
Allows some special interactions with it in the Qt frontend.
2023-08-22 16:07:52 -04:00
Liam 37b278a9a8 general: fix incorrect conversions 2023-08-08 11:09:37 -04:00
Liam 84cb20bc72 core: remove ResultVal type 2023-08-08 11:09:37 -04:00
Liam bb94beed15 nvnflinger: fix Parcel serialization 2023-05-11 17:09:19 -04:00
Liam 809148e1a5 nvnflinger: fix name 2023-03-01 10:39:49 -05:00
Liam 65be230fdd service: move hle_ipc from kernel 2023-03-01 10:39:49 -05:00
liamwhite 97f7a560f3
Merge pull request #9832 from liamwhite/hle-mp
service: HLE multiprocess
2023-03-01 10:38:20 -05:00
Narr the Reg 39ca7b2928 core: Update service function tables to 16.0.0+ 2023-02-24 18:17:36 -06:00
Liam a936972614 service: refactor server architecture
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
ameerj 2d2522693e Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
This reverts commit 25fc5c0e11, reversing
changes made to af20e25081.
2023-02-03 00:08:45 -05:00
liamwhite b01698775b
Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer" 2023-02-02 15:53:28 -05:00
ameerj 32d01a39b0 nvflinger: Split Parcel class into InputParcel and OutputParcel
The usages of the Parcel class were already unique to either Read or Write operations.
Avoids needing a vector of the input payload for the InputParcel use-case, instead it can remain as a span.
2022-12-25 17:19:10 -05:00
Liam cdb9fe978f vi: implement CloseDisplay 2022-10-27 08:27:38 -04:00
Morph bffbaddb79 general: Add missing pragma once 2022-10-17 03:14:31 -04:00
Liam a9ace6856d kernel: remove KWritableEvent 2022-10-12 20:29:29 -04:00
VonChenPlus 9982cff98b Core: Fix get nvmap object random crash 2022-10-06 21:00:53 +02:00