glGetUniformLocation fails in confinement mode

Spencer Parkin spencertparkin at
Mon Jan 30 06:56:11 UTC 2017


I have a program that has successfully snapped and run in confinement mode,
but then I added a pixel and vertex shader which works when run on my
classic system, but not in strict confinement as a snap.  I've tried to
narrow down the earliest fail point, and I believe it is at the point where
I'm calling glGetUniformFromLocation.  This is returning -1 in confinement
mode.  I'm able to read, compile and link my shader program, and bind it,
but the first call to glGetUniformFromLocation fails.  Is OpenGL being
denied read-access to a portion of protected memory?  If so, it certainly
would fail to write there as well with a call to glUniform3f, for example.

I've tried hooking up the snappy-debug's log-observe plug to that of ubuntu
core's, then running the scanlog, but the only app-armer denial I get is, I
believe, unrelated to the problem.  In any case, I will give it here...

Log: apparmer="DENIED" operation="open"
name="/usr/share/glib-2.0/schemas/" pid=23593 comm="desktop-launch"
request_mask="r" denied_mask="r" fsuid=1000 ouid=0
File: /usr/share/glib-2.0/schemas/ (read)

Hmmm.  After looking up "glib" on the internet, perhaps this is the
problem?  It seems like a generic low-level library that OpenGL extensions
may be built upon.

I have uploaded my snap on the release channel despite this error.  You can
take a look at it using...

sudo snap install twistypuzzle

Thanks for any help or ideas anyone is able to provide in trying to
trouble-shoot this problem.  I have no idea how to go further with this for

My code can be found here...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Snapcraft mailing list