diff --git a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
index 535e3e39fe..fc0cf1089c 100644
--- a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
+++ b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
@@ -35,6 +35,9 @@
+
+
+
@@ -244,12 +247,13 @@
-
+
+
diff --git a/repos/gems/recipes/src/sculpt_manager/used_apis b/repos/gems/recipes/src/sculpt_manager/used_apis
index e213a51c5a..e7262d88d2 100644
--- a/repos/gems/recipes/src/sculpt_manager/used_apis
+++ b/repos/gems/recipes/src/sculpt_manager/used_apis
@@ -15,3 +15,4 @@ rtc_session
input_session
event_session
capture_session
+gpu_session
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index 328648f7b0..651c58b233 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -240,8 +240,8 @@ install_config {
-
-
+
+
@@ -273,6 +273,7 @@ install_config {
+
@@ -474,6 +475,7 @@ install_config {
+
diff --git a/repos/gems/src/app/depot_autopilot/child.cc b/repos/gems/src/app/depot_autopilot/child.cc
index fe2ae72b42..07978439d4 100644
--- a/repos/gems/src/app/depot_autopilot/child.cc
+++ b/repos/gems/src/app/depot_autopilot/child.cc
@@ -320,6 +320,7 @@ void Child::gen_start_node(Xml_generator &xml,
_gen_provides_sub_node(xml, service, "log", "LOG");
_gen_provides_sub_node(xml, service, "nic", "Nic");
_gen_provides_sub_node(xml, service, "gui", "Gui");
+ _gen_provides_sub_node(xml, service, "gpu", "Gpu");
_gen_provides_sub_node(xml, service, "report", "Report");
_gen_provides_sub_node(xml, service, "rom", "ROM");
_gen_provides_sub_node(xml, service, "terminal", "Terminal");
diff --git a/repos/gems/src/app/depot_deploy/child.h b/repos/gems/src/app/depot_deploy/child.h
index f0e0cf16cf..eb13eaec0f 100644
--- a/repos/gems/src/app/depot_deploy/child.h
+++ b/repos/gems/src/app/depot_deploy/child.h
@@ -481,6 +481,7 @@ void Depot_deploy::Child::gen_start_node(Xml_generator &xml, Xml_node common,
_gen_provides_sub_node(xml, service, "log", "LOG");
_gen_provides_sub_node(xml, service, "nic", "Nic");
_gen_provides_sub_node(xml, service, "gui", "Gui");
+ _gen_provides_sub_node(xml, service, "gpu", "Gpu");
_gen_provides_sub_node(xml, service, "report", "Report");
_gen_provides_sub_node(xml, service, "rom", "ROM");
_gen_provides_sub_node(xml, service, "terminal", "Terminal");
diff --git a/repos/gems/src/app/driver_manager/main.cc b/repos/gems/src/app/driver_manager/main.cc
index 11ff0a94ee..743775c242 100644
--- a/repos/gems/src/app/driver_manager/main.cc
+++ b/repos/gems/src/app/driver_manager/main.cc
@@ -132,9 +132,11 @@ struct Driver_manager::Intel_gpu_driver : Device_driver
void generate_start_node(Xml_generator &xml) const override
{
+ _gen_forwarded_service(xml, "intel_gpu_drv");
+
xml.node("start", [&] () {
_gen_common_start_node_content(xml, "intel_gpu_drv", "intel_gpu_drv",
- Ram_quota{32*1024*1024}, Cap_quota{800},
+ Ram_quota{64*1024*1024}, Cap_quota{1400},
Priority{0}, version);
xml.node("provides", [&] () {
xml.node("service", [&] () {
diff --git a/repos/gems/src/app/sculpt_manager/main.cc b/repos/gems/src/app/sculpt_manager/main.cc
index c608bf1a10..d4baba6379 100644
--- a/repos/gems/src/app/sculpt_manager/main.cc
+++ b/repos/gems/src/app/sculpt_manager/main.cc
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
/* included from depot_deploy tool */
#include
@@ -1732,6 +1733,7 @@ void Sculpt::Main::_generate_runtime_config(Xml_generator &xml) const
gen_parent_service(xml);
gen_parent_service(xml);
gen_parent_service(xml);
+ gen_parent_service(xml);
});
xml.node("affinity-space", [&] () {
diff --git a/repos/gems/src/app/sculpt_manager/model/route.h b/repos/gems/src/app/sculpt_manager/model/route.h
index 233dec4e7a..a004bbbe5b 100644
--- a/repos/gems/src/app/sculpt_manager/model/route.h
+++ b/repos/gems/src/app/sculpt_manager/model/route.h
@@ -36,6 +36,7 @@ struct Sculpt::Route : List_model::Element
case Service::Type::FILE_SYSTEM: return "file_system";
case Service::Type::NIC: return "nic";
case Service::Type::GUI: return "gui";
+ case Service::Type::GPU: return "gpu";
case Service::Type::RM: return "rm";
case Service::Type::IO_MEM: return "io_mem";
case Service::Type::IO_PORT: return "io_port";
@@ -65,6 +66,7 @@ struct Sculpt::Route : List_model::Element
case Service::Type::FILE_SYSTEM: return "File system";
case Service::Type::NIC: return "Network";
case Service::Type::GUI: return "GUI";
+ case Service::Type::GPU: return "GPU";
case Service::Type::RM: return "Region maps";
case Service::Type::IO_MEM: return "Direct memory-mapped I/O";
case Service::Type::IO_PORT: return "Direct port I/O";
diff --git a/repos/gems/src/app/sculpt_manager/model/runtime_config.h b/repos/gems/src/app/sculpt_manager/model/runtime_config.h
index c67b4fdba3..2ef936f607 100644
--- a/repos/gems/src/app/sculpt_manager/model/runtime_config.h
+++ b/repos/gems/src/app/sculpt_manager/model/runtime_config.h
@@ -329,6 +329,7 @@ class Sculpt::Runtime_config
_backdrop { _r, Type::GUI, "desktop background", "backdrop" },
_lockscreen{ _r, Type::GUI, "desktop lock screen", "lock_screen" },
_nitpicker { _r, Type::GUI, "system GUI server" },
+ _gpu { _r, Type::GPU, "system GPU" },
_lz_event { _r, Type::EVENT, "management GUI events", "leitzentrale" },
_event { _r, Type::EVENT, "system input events", "global" },
_lz_capture{ _r, Type::CAPTURE, "management GUI", "leitzentrale" },
diff --git a/repos/gems/src/app/sculpt_manager/model/service.h b/repos/gems/src/app/sculpt_manager/model/service.h
index 930c8982c5..4fa0fb7b81 100644
--- a/repos/gems/src/app/sculpt_manager/model/service.h
+++ b/repos/gems/src/app/sculpt_manager/model/service.h
@@ -25,7 +25,7 @@ struct Sculpt::Service
typedef String<32> Info;
enum class Type {
- AUDIO_IN, AUDIO_OUT, BLOCK, EVENT, CAPTURE, FILE_SYSTEM, NIC, GUI,
+ AUDIO_IN, AUDIO_OUT, BLOCK, EVENT, CAPTURE, FILE_SYSTEM, NIC, GUI, GPU,
RM, IO_MEM, IO_PORT, IRQ, REPORT, ROM, TERMINAL, TRACE, USB, RTC,
PLATFORM, VM, PD, UNDEFINED };
@@ -51,6 +51,7 @@ struct Sculpt::Service
case Type::FILE_SYSTEM: return "File_system";
case Type::NIC: return "Nic";
case Type::GUI: return "Gui";
+ case Type::GPU: return "Gpu";
case Type::RM: return "RM";
case Type::IO_MEM: return "IO_MEM";
case Type::IO_PORT: return "IO_PORT";