Index | Thread | Search

From:
Jonathan Gray <jsg@jsg.id.au>
Subject:
Re: Mesa, picom and glGetQueryObjectui64v symbol lost
To:
Jose Maldonado <josemald89@gmail.com>
Cc:
tech@openbsd.org
Date:
Sat, 10 Feb 2024 12:53:14 +1100

Download raw body.

Thread
On Fri, Feb 09, 2024 at 12:12:49PM -0400, Jose Maldonado wrote:
> Hello everyone!
> 
> I have been working on a patch to be able to build picom in its v11+
> versions on OpenBSD. At the moment, the patches and solutions I have
> work, but they depend on libepoxy in OpenBSD because the
> glGetQueryObjectui64v function does not have a public symbol in libGL,
> but libepoxy (epoxy_glGetQueryObjectui64v) does.
> 
> I've pushed a PR upstream, and we're looking for a solution, but since
> they don't have a way to build test with OpenBSD, they can't reliably
> test anything themselves. And what I have tried, it all ends in the
> same point: libepoxy.
> 
> Despite this, I have a question: Why does Mesa on other systems expose
> glGetQueryObjectui64v and OpenBSD's Mesa doesn't?

It could be libGL elsewhere isn't Mesa, but libglvnd or something from
nvidia.

> 
> This behavior is strange, because if that symbol were exposed, we could
> compile picom without major problems or code modifications.

I don't think it is supposed to be exposed directly, but only through
something like glXGetProcAddress() as it depends on the context version.

https://registry.khronos.org/OpenGL/extensions/ARB/ARB_timer_query.txt
"This extension is written against the OpenGL 3.2 specification."

https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGetQueryObject.xhtml
"glGetQueryObjecti64v and glGetQueryObjectui64v are available only if
the GL version is 3.3 or greater."