<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Unable to create compatibility profile]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">We're upgrading an existing application to use Qt.  Most of the transition has been smooth, but we're having trouble with context creation on one of our computers.</p>
<p dir="auto">This application currently uses some legacy OpenGL functions, so we need to request a compatibility profile.  This works fine for three of our machines, which are all running Windows 10 with newer (last 2-3 years) graphics cards.  But one of our machines (running an AMD 6900 series and Windows 7) creates a context with a core profile rather than a compatibility profile.</p>
<p dir="auto">The 6900 series is a bit older (5+ years) at this point, but they're still moderately powerful cards.  We had no issues accessing compatibility functions when we used GLEW.  But perhaps those cards do not fully support all compatibility functionality?</p>
<p dir="auto">Any suggestions on where we'd start debugging this?  I've found several 3rd-party utilities that list the supported core profiles of the hardware, but haven't found any that list the compatibility profiles.</p>
<p dir="auto">Here's how we're setting up our default context (before QApplication is created):</p>
<pre><code>	QSurfaceFormat defaultSurfaceFormat;
	defaultSurfaceFormat.setVersion(3, 2);
	defaultSurfaceFormat.setProfile(QSurfaceFormat::CompatibilityProfile);
	defaultSurfaceFormat.setDepthBufferSize(24);
	defaultSurfaceFormat.setStencilBufferSize(8);
	defaultSurfaceFormat.setSamples(8);
	QSurfaceFormat::setDefaultFormat(defaultSurfaceFormat);
</code></pre>
<p dir="auto">And here's how we're getting the equivalent typesafe functions in our QOpenGLWidget:</p>
<pre><code>	QOpenGLContext* context = QOpenGLContext::currentContext();
	// Returns NULL on the problem PC
	QOpenGLFunctions_3_2_Compatibility* functions = context-&gt;versionFunctions&lt;QOpenGLFunctions_3_2_Compatibility&gt;();
</code></pre>
<p dir="auto">When we query for the actual context version on that machine, it shows that it creates the same profile version (3.2 in this case), but uses a Core rather than Compatibility profile.</p>
]]></description><link>https://forum.qt.io/topic/76934/unable-to-create-compatibility-profile</link><generator>RSS for Node</generator><lastBuildDate>Mon, 20 Apr 2026 16:18:15 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/76934.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Mar 2017 08:26:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unable to create compatibility profile on Thu, 16 Mar 2017 00:03:58 GMT]]></title><description><![CDATA[<p dir="auto">We found that the problem does not appear to occur if do <em>not</em> specify the version and profile explicitly (i.e. comment out the calls to setVersion and setProfile in my previous post).</p>
<p dir="auto">We'll run with that for now, but this behavior is definitely confusing.  The default profile is OpenGLContextProfile::NoProfile, and the documentation for NoProfile states "OpenGL version is lower than 3.2. For 3.2 and newer this is same as CoreProfile."</p>
<p dir="auto">It's definitely unexpected that we can successfully query compatibility functions if we don't specify a compatibility profile.</p>
]]></description><link>https://forum.qt.io/post/382316</link><guid isPermaLink="true">https://forum.qt.io/post/382316</guid><dc:creator><![CDATA[dethtoll]]></dc:creator><pubDate>Thu, 16 Mar 2017 00:03:58 GMT</pubDate></item></channel></rss>