Turn framebuffer drivers into capture clients

Issue genodelabs/genode#3813
This commit is contained in:
Norman Feske
2020-07-08 14:19:52 +02:00
parent db415f5b1f
commit 50334e62f4
16 changed files with 186 additions and 317 deletions

View File

@@ -37,18 +37,18 @@ append config {
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Capture"> <child name="nitpicker"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
<service name="Input"/> <service name="Framebuffer"/>
</provides>
<provides> <service name="Input"/> </provides>
</start>
<start name="nitpicker">
<resource name="RAM" quantum="8M"/>
<provides><service name="Gui"/></provides>
<config>
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<config request_framebuffer="no">
<capture/>
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="default" layer="2" content="client" label="no" focus="click" hover="always" />
<policy label_prefix="pointer" domain="pointer"/>

View File

@@ -42,20 +42,21 @@ install_config {
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Capture"> <child name="nitpicker"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
<service name="Input"/> <service name="Framebuffer"/>
</provides>
<provides> <service name="Input"/> </provides>
</start>
<start name="nitpicker">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gui"/></provides>
<config>
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<config request_framebuffer="no">
<capture/>
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="default" layer="2" content="client" label="no" hover="always" focus="click" />
<domain name="default" layer="2" content="client" label="no"
hover="always" focus="click" width="1024" height="768"/>
<policy label_prefix="pointer" domain="pointer"/>
<default-policy domain="default"/>

View File

@@ -53,12 +53,11 @@ install_config {
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Capture"> <child name="nitpicker"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
<service name="Input"/> <service name="Framebuffer"/>
</provides>
<provides> <service name="Input"/> </provides>
</start>
<start name="timer">
@@ -69,10 +68,12 @@ install_config {
<start name="nitpicker">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gui"/></provides>
<config focus="rom">
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<config focus="rom" request_framebuffer="no">
<capture/>
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="default" layer="2" content="client" label="no" hover="always"/>
<domain name="default" layer="2" content="client" label="no" hover="always" width="1024" height="768"/>
<policy label_prefix="pointer" domain="pointer"/>
<default-policy domain="default"/>

View File

@@ -26,6 +26,7 @@ set build_components {
server/nitpicker
server/rom_filter
server/terminal_log
server/input_event_bridge
test/nitpicker
}
@@ -63,15 +64,22 @@ append config {
<default caps="128"/>
<start name="fb_sdl" ld="no">
<resource name="RAM" quantum="4M"/>
<provides>
<service name="Input"/>
<service name="Framebuffer"/>
</provides>
<provides> <service name="Input"/> </provides>
<config width="800" height="600"/>
<route> <any-service> <parent/> <any-child/> </any-service> </route>
</start>
<alias name="fb_drv" child="fb_sdl"/>
<alias name="input_drv" child="fb_sdl"/>
<start name="input_event_bridge">
<resource name="RAM" quantum="1M"/>
<provides>
<service name="Event"/>
<service name="Input"/>
</provides>
<config/>
<route>
<any-service> <parent/> </any-service>
</route>
</start>
<alias name="input_drv" child="input_event_bridge"/>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
@@ -99,7 +107,9 @@ append config {
<attribute name="enabled" /> </input>
<output node="config">
<attribute name="request_framebuffer" value="no"/>
<inline>
<capture/>
<report focus="yes" xray="yes" hover="yes" />
<domain name="pointer" layer="2" content="client" label="no" origin="pointer" />
</inline>
@@ -138,10 +148,9 @@ append config {
<start name="nitpicker">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gui"/></provides>
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<route>
<service name="ROM" label="config"> <child name="nitpicker_config"/> </service>
<service name="Framebuffer"> <child name="fb_drv" /> </service>
<service name="Input"> <child name="input_drv" /> </service>
<service name="Report"> <child name="report_rom" /> </service>
<any-service> <parent/> <any-child/> </any-service>
@@ -301,6 +310,7 @@ set boot_modules {
testnit
timer
global_keys_handler
input_event_bridge
}
build_boot_image $boot_modules

View File

@@ -235,11 +235,12 @@ append_if $use_interactive_pkg config {
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Capture"> <child name="nitpicker"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
<service name="Input"/> <service name="Framebuffer"/>
<service name="Input"/>
<service name="Platform"/>
</provides>
</start>}
@@ -250,7 +251,6 @@ if { !$use_interactive_pkg } {
append_if [have_spec x86] config {
<start name="intel_fb_drv" caps="1000">
<resource name="RAM" quantum="60M"/>
<provides><service name="Framebuffer"/></provides>
<route>
<any-service> <parent/> <any-child /> </any-service>
</route>
@@ -342,12 +342,13 @@ append config {
<start name="nitpicker" caps="110">
<resource name="RAM" quantum="1216K"/>
<resource name="CPU" quantum="20"/>
<provides><service name="Gui"/></provides>
<config>
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<config request_framebuffer="no">
<capture/>
<report focus="yes" />
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="panel" layer="2" content="client" label="no" focus="none" />
<domain name="client" layer="3" content="client" label="no" focus="click"/>
<domain name="client" layer="3" content="client" label="no" focus="click" width="1024" height="768"/>
<policy label_prefix="pointer" domain="pointer"/>
<default-policy domain="client"/>
</config>

View File

@@ -2,7 +2,7 @@ set build_components { test/sdl }
set app_config {
<start name="test-sdl">
<resource name="RAM" quantum="32M"/>
<resource name="RAM" quantum="48M"/>
<config>
<vfs> <dir name="dev"> <log/> </dir> </vfs>
<libc stdout="/dev/log"/>

View File

@@ -2,7 +2,7 @@ set build_components { test/sdl2 }
set app_config {
<start name="test-sdl2">
<resource name="RAM" quantum="32M"/>
<resource name="RAM" quantum="48M"/>
<config ld_verbose="yes">
<vfs> <dir name="dev"> <log/> </dir> </vfs>
<libc stdout="/dev/log"/>

View File

@@ -18,6 +18,7 @@ set build_components {
drivers/gpu/intel
server/liquid_framebuffer
server/nitpicker
server/input_event_bridge
lib/mesa/swrast
app/launchpad
app/pointer
@@ -55,20 +56,26 @@ set config {
append_if [have_spec linux] config {
<start name="fb_sdl" caps="200" ld="no">
<resource name="RAM" quantum="4M"/>
<provides> <service name="Input"/> </provides>
</start>
<start name="input_event_bridge">
<resource name="RAM" quantum="1M"/>
<provides>
<service name="Event"/>
<service name="Input"/>
<service name="Framebuffer"/>
</provides>
</start>}
<config/>
<route>
<any-service> <parent/> </any-service>
</route>
</start>
<alias name="input_drv" child="input_event_bridge"/> }
append_platform_drv_config
append_if [expr ![have_spec linux]] config {
<start name="fb_drv">
<resource name="RAM" quantum="10M"/>
<provides>
<service name="Framebuffer"/>
</provides>
<route><any-service> <parent /> <any-child/> </any-service> </route>
</start>}
@@ -76,7 +83,8 @@ append_if [have_spec ps2] config {
<start name="ps2_drv">
<resource name="RAM" quantum="2M"/>
<provides> <service name="Input"/> </provides>
</start> }
</start>
<alias name="input_drv" child="ps2_drv"/> }
append config {
<start name="timer">
@@ -85,14 +93,18 @@ append config {
</start>
<start name="nitpicker">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Gui"/> </provides>
<config>
<provides> <service name="Gui"/> <service name="Capture"/> </provides>
<config request_framebuffer="no">
<capture/>
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="default" layer="2" content="client" label="no" focus="click" hover="always" />
<policy label_prefix="pointer" domain="pointer"/>
<default-policy domain="default"/>
</config>
<route><any-service><parent/><any-child/></any-service></route>
<route>
<service name="Input"> <child name="input_drv"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="pointer">
<resource name="RAM" quantum="1M"/>
@@ -120,7 +132,7 @@ set launchpad_config {
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Nitpicker"/>
<service name="Gui"/>
<service name="Timer"/>
<service name="Gpu"/>
</parent-provides>
@@ -178,8 +190,9 @@ install_config $config
set boot_modules {
core init ld.lib.so timer nitpicker pointer liquid_fb
launchpad
input_event_bridge
libc.lib.so vfs.lib.so libm.lib.so pthread.lib.so
libc.lib.so vfs.lib.so libm.lib.so
egl.lib.so mesa.lib.so stdcxx.lib.so
expat.lib.so glapi.lib.so sdl.lib.so