summaryrefslogtreecommitdiff
diff options
authorAristo Chen <aristo.chen@canonical.com>2023-06-20 17:32:06 +0800
committerMichael Vogt <michael.vogt@gmail.com>2023-07-12 10:08:47 +0200
commit85cdda5c732c6e6de04f522a5b076badb0c7b393 (patch)
tree9be22a1044df23b55cdba24c065efbbf11eeb225
parentd8f6ff32f10ef2a080d0de6a92af6ce0316929aa (diff)
interfaces/opengl: add support for ARM Mali
Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
-rw-r--r--interfaces/builtin/opengl.go4
-rw-r--r--interfaces/builtin/opengl_test.go8
2 files changed, 11 insertions, 1 deletions
diff --git a/interfaces/builtin/opengl.go b/interfaces/builtin/opengl.go
index 1d39204c8e..0375e122c6 100644
--- a/interfaces/builtin/opengl.go
+++ b/interfaces/builtin/opengl.go
@@ -127,6 +127,8 @@ unix (bind,listen) type=seqpacket addr="@cuda-uvmfd-[0-9a-f]*",
# ARM Mali driver
/dev/mali[0-9]* rw,
/dev/dma_buf_te rw,
+/dev/dma_heap/linux,cma rw,
+/dev/dma_heap/system rw,
# NXP i.MX driver
# https://github.com/Freescale/kernel-module-imx-gpu-viv
@@ -174,6 +176,8 @@ unix (send, receive) type=dgram peer=(addr="@var/run/nvidia-xdriver-*"),
// will be added by snap-confine.
var openglConnectedPlugUDev = []string{
`SUBSYSTEM=="drm", KERNEL=="card[0-9]*"`,
+ `SUBSYSTEM=="dma_heap", KERNEL=="linux,cma"`,
+ `SUBSYSTEM=="dma_heap", KERNEL=="system"`,
`KERNEL=="vchiq"`,
`KERNEL=="vcsm-cma"`,
`KERNEL=="renderD[0-9]*"`,
diff --git a/interfaces/builtin/opengl_test.go b/interfaces/builtin/opengl_test.go
index 0787480233..3c0b7abf0c 100644
--- a/interfaces/builtin/opengl_test.go
+++ b/interfaces/builtin/opengl_test.go
@@ -83,6 +83,8 @@ func (s *OpenglInterfaceSuite) TestAppArmorSpec(c *C) {
c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/nvidia* rw,`)
c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/dri/renderD[0-9]* rw,`)
c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/mali[0-9]* rw,`)
+ c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/dma_heap/linux,cma rw,`)
+ c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/dma_heap/system rw,`)
c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/dev/galcore rw,`)
c.Assert(spec.SnippetForTag("snap.consumer.app"), testutil.Contains, `/usr/share/libdrm/amdgpu.ids r,`)
}
@@ -90,10 +92,14 @@ func (s *OpenglInterfaceSuite) TestAppArmorSpec(c *C) {
func (s *OpenglInterfaceSuite) TestUDevSpec(c *C) {
spec := &udev.Specification{}
c.Assert(spec.AddConnectedPlug(s.iface, s.plug, s.slot), IsNil)
- c.Assert(spec.Snippets(), HasLen, 13)
+ c.Assert(spec.Snippets(), HasLen, 15)
c.Assert(spec.Snippets(), testutil.Contains, `# opengl
SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="snap_consumer_app"`)
c.Assert(spec.Snippets(), testutil.Contains, `# opengl
+SUBSYSTEM=="dma_heap", KERNEL=="linux,cma", TAG+="snap_consumer_app"`)
+ c.Assert(spec.Snippets(), testutil.Contains, `# opengl
+SUBSYSTEM=="dma_heap", KERNEL=="system", TAG+="snap_consumer_app"`)
+ c.Assert(spec.Snippets(), testutil.Contains, `# opengl
KERNEL=="renderD[0-9]*", TAG+="snap_consumer_app"`)
c.Assert(spec.Snippets(), testutil.Contains, `# opengl
KERNEL=="nvhost-*", TAG+="snap_consumer_app"`)