<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>OpenGL Discussion and Help Forums - OpenGL drivers</title>
		<link>http://www.opengl.org/discussion_boards/</link>
		<description>Driver specific - performance tips, extension support, issues, new releases</description>
		<language>en</language>
		<lastBuildDate>Tue, 21 May 2013 06:49:42 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>http://www.opengl.org/discussion_boards/images/misc/rss.png</url>
			<title>OpenGL Discussion and Help Forums - OpenGL drivers</title>
			<link>http://www.opengl.org/discussion_boards/</link>
		</image>
		<item>
			<title>Quality of Implementation: Debug shader variable locations</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181718-Quality-of-Implementation-Debug-shader-variable-locations?goto=newpost</link>
			<pubDate>Fri, 17 May 2013 02:34:04 GMT</pubDate>
			<description><![CDATA[Now that OpenGL's debug context concept is a bit more well-defined (thanks to language in KHR_debug and the like), let's expand on this. NVIDIA...]]></description>
			<content:encoded><![CDATA[<div>Now that OpenGL's debug context concept is a bit more well-defined (thanks to language in KHR_debug and the like), let's expand on this. NVIDIA already starts spamming stdout when you're in debug, so let's close another source of errors:<br />
<br />
Accidentally using the correct variable locations.<br />
<br />
Unless you explicit assign a variable location in OpenGL, you must query its location to know where it is. However, most implementations will assign locations sequentially, starting from 0. Which means that code can be written which accidentally does the right thing.<br />
<br />
I would suggest that, upon every shader compilation (in debug only), generating a random number and starting the location assignments from there. This will help show where a program is accidentally forgetting an explicit assignment or a query.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>Alfonse Reinheart</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181718-Quality-of-Implementation-Debug-shader-variable-locations</guid>
		</item>
		<item>
			<title>Catalyst 13.1 Legacy: possible ubo/struct bug</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181663-Catalyst-13-1-Legacy-possible-ubo-struct-bug?goto=newpost</link>
			<pubDate>Thu, 09 May 2013 16:47:01 GMT</pubDate>
			<description><![CDATA[Could not post this bug on devgurus so I try it here: 
   
<div class="bbcode_container"> 
                <div class="bbcode_description">Code...]]></description>
			<content:encoded><![CDATA[<div>Could not post this bug on devgurus so I try it here:<br />
  <br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">Create a struct:
struct Something {
...
    float a;
    float b;
    float c;
};</pre></div></code><hr />
</div><br />
Create an uniform block:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">uniform wonderful {        
    mat4 has;
     mat4 heppend;
    Something dontPanik;
};</pre></div></code><hr />
</div><br />
try to query the offsets with:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">glGetActiveUniformsiv(programId, uboSIze, uNames, GL_UNIFORM_OFFSET, ubOffsets);</pre></div></code><hr />
</div><br />
<br />
All floats are assigned to the same offset.<br />
<br />
If the struct is alterated:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">Create an struct:
struct SomethingElse {
...
    float a;
    vec3 cute;
    float b;
    vec3 little;
    float c;
    vec3 problems;
&nbsp;
};</pre></div></code><hr />
</div><br />
<br />
The floats are accessible.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>yousry</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181663-Catalyst-13-1-Legacy-possible-ubo-struct-bug</guid>
		</item>
		<item>
			<title>AMD catalyst: set GL_UNPACK_ROW_LENGTH will lead to corrupted texture</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181634-AMD-catalyst-set-GL_UNPACK_ROW_LENGTH-will-lead-to-corrupted-texture?goto=newpost</link>
			<pubDate>Tue, 07 May 2013 03:09:37 GMT</pubDate>
			<description>It seems that there is a bug in Catalyst driver, when I set  GL_UNPACK_ROW_LENGTH to a value other than zero, under some specific  image width, the...</description>
			<content:encoded><![CDATA[<div>It seems that there is a bug in Catalyst driver, when I set  GL_UNPACK_ROW_LENGTH to a value other than zero, under some specific  image width, the texture copied from PBO will be corrupted. I have an  AMD radeon HD 7770 card and use Catalyst 13.1 driver in Windows 7 x64.     I have uploaded a sample program in <a href="http://devgurus.amd.com/servlet/JiveServlet/download/1288187-3622/TestPBO.rar.zip" target="_blank" rel="nofollow">http://devgurus.amd.com/servlet/Jive...estPBO.rar.zip</a>, the sample project can reproduce this issue. Please build it  with VS 2010 in 64 bit mode, run the program and two bmp files named  &quot;correct.bmp&quot; and &quot;bad.bmp&quot; will be generated, you can see the corrupted  image in bad.bmp</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>jianliang79</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181634-AMD-catalyst-set-GL_UNPACK_ROW_LENGTH-will-lead-to-corrupted-texture</guid>
		</item>
		<item>
			<title>AMD Catalyst 13.4  - GL_ARB_multi_draw_indirect BUG</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181619-AMD-Catalyst-13-4-GL_ARB_multi_draw_indirect-BUG?goto=newpost</link>
			<pubDate>Fri, 03 May 2013 17:31:09 GMT</pubDate>
			<description><![CDATA[I noticed the MultiDrawElementsIndirect ignores baseInstance in commands. It always has zero value. 
Dear AMD's residents, please fix it. This...]]></description>
			<content:encoded><![CDATA[<div>I noticed the MultiDrawElementsIndirect ignores baseInstance in commands. It always has zero value.<br />
Dear AMD's residents, please fix it. This feature is very useful.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>YarUnderoaker</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181619-AMD-Catalyst-13-4-GL_ARB_multi_draw_indirect-BUG</guid>
		</item>
		<item>
			<title>Poser and the Firepro V3900 graphics card</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181613-Poser-and-the-Firepro-V3900-graphics-card?goto=newpost</link>
			<pubDate>Thu, 02 May 2013 16:50:41 GMT</pubDate>
			<description>I hope this is the right place to ask. These issues are way outside my knowledge base. 
 
I recently purchased a FirePro V3900 card specifically to...</description>
			<content:encoded><![CDATA[<div>I hope this is the right place to ask. These issues are way outside my knowledge base.<br />
<br />
I recently purchased a FirePro V3900 card specifically to use with Poser. My previous card worked fine but got fried. <br />
<br />
I am finding that with this card the Preview window frequently hangs when in OpenGL mode. Sometimes when I try to move the camera nothing happens, but sometimes part of the window responds to the camera movement and part doesn't. After much experimentation I have figured out how to replicate the problem:<br />
<br />
1. Place a second window (e.g Library window) over the Preview window.<br />
2. Move the second window just a bit.<br />
3. Rotate the camera. Once you move the second window out of the way you can see that the part of the Preview window behind the second window had moved as it should, but the visible part had not. <br />
<br />
I have updated the drivers several times and have cleaned out the registry of any orphaned driver settings. <br />
<br />
I have posted this issue to the technical support staffs at both AMD and Smith Micro (Poser), but they seemed to be stumped. I am hoping you folks might have some ideas.<br />
<br />
My OS is Windows Vista Business 32-bit Service Pack 2. The device driver for the card is version 8.982.8.3000 released on 9/30/2012. I've also tried this with version 9.3.3.3000 released 2/6/2013 with the same results.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>ElZagna</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181613-Poser-and-the-Firepro-V3900-graphics-card</guid>
		</item>
		<item>
			<title>Bugs in 13.4 GL 4.3 exts:compute shader, SBOs and no_attachments</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181579-Bugs-in-13-4-GL-4-3-exts-compute-shader-SBOs-and-no_attachments?goto=newpost</link>
			<pubDate>Mon, 29 Apr 2013 12:43:48 GMT</pubDate>
			<description>Hi, 
I have been testing new OGL compute shader and storage buffer objects extension and found following bugs (13.4 on 7950): 
(please note all the...</description>
			<content:encoded><![CDATA[<div>Hi,<br />
I have been testing new OGL compute shader and storage buffer objects extension and found following bugs (13.4 on 7950):<br />
(please note all the samples I use for testing this work correctly on Nvidia OGL 4.3 cards)<br />
*using atomicMax and atomicMin on shared variables hang the GLSL compiler others like atomicOr are OK!<br />
<br />
groupshared uint ldsZMax;<br />
uint z;<br />
atomicMax( ldsZMax, z );<br />
<br />
*using a compute shader with following launch size and shared arrays usage:<br />
#define BLOCK_SIZE 32<br />
layout (local_size_x = BLOCK_SIZE, local_size_y = BLOCK_SIZE) in;<br />
shared double As[BLOCK_SIZE*BLOCK_SIZE];<br />
shared double Bs[BLOCK_SIZE*BLOCK_SIZE];<br />
crashes with:<br />
Compute shader(s) failed to link.<br />
Compute link error: HW_UNSUPPORTED.<br />
Compute shader not supported by hardware<br />
<br />
diminishing BLOCK_SIZE to less than 32 seems to work.. I have tested using<br />
layout (local_size_x = 32, local_size_y = 32) in;<br />
isn't a issue so 32 should work as for this conf each of this two shared arrays is size 8192 (sizeof(double)*32*32) so total shared mem usage is 2*8192 and is equal to reported max <br />
<br />
size (GL_MAX_COMPUTE_SHARED_MEMORY_SIZE: 32768).. I verify this issue is on shared mem size usage as using something like<br />
(with BLOCK_SIZE=32):<br />
shared double As[BLOCK_SIZE*BLOCK_SIZE-1];<br />
shared double Bs[BLOCK_SIZE*BLOCK_SIZE];<br />
seems to compile so please fix to be able to use not only 32767 bytes of shared mem but full 32768 bytes..<br />
<br />
*using sbo on non compute shaders (like fragment shaders seems no be not correct)<br />
*getting GL_MAX_COMPUTE_WORK_GROUP_COUNT and GL_MAX_COMPUTE_WORK_GROUP_SIZE I get using debug_output bug:<br />
glGetIntegerv parameter &lt;pname&gt; has an invalid enum '0x91be' (GL_INVALID_ENUM)<br />
other new like GL_MAX_COMPUTE_ATOMIC_COUNTERS seem to work..<br />
<br />
Related altough no_attachments extension is not adversited new entry points are present so I played with it using default and seems a simple test works on 79xx but not on 58xx <br />
<br />
series..<br />
glGenFramebuffers(1,&amp;noat);<br />
glBindFramebuffer(GL_FRAMEBUFFER_EXT,noat);<br />
glFramebufferParameteri(GL_FRAMEBUFFER_EXT,GL_FRAM  EBUFFER_DEFAULT_WIDTH, w);<br />
glFramebufferParameteri (GL_FRAMEBUFFER_EXT,GL_FRAMEBUFFER_DEFAULT_HEIGHT, h);<br />
a sample using this works on 7xxx series but not on 5xxx series..</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>oscarbg</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181579-Bugs-in-13-4-GL-4-3-exts-compute-shader-SBOs-and-no_attachments</guid>
		</item>
		<item>
			<title>Trouble with OpenGL version</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181529-Trouble-with-OpenGL-version?goto=newpost</link>
			<pubDate>Mon, 22 Apr 2013 18:56:29 GMT</pubDate>
			<description><![CDATA[Hi ! 
 
I have machine under CentOS 5.6 with Nvidia Tesla C1060 GPU: 
 
>01:00.0 3D controller [0302]: nVidia Corporation GT200 [Tesla C1060]...]]></description>
			<content:encoded><![CDATA[<div>Hi !<br />
<br />
I have machine under CentOS 5.6 with Nvidia Tesla C1060 GPU:<br />
<br />
&gt;01:00.0 3D controller [0302]: nVidia Corporation GT200 [Tesla C1060] [10de:05e7] (rev a1)<br />
&gt;        Subsystem: nVidia Corporation Device [10de:066a]<br />
&gt;        Kernel driver in use: nvidia<br />
&gt;        Kernel modules: nvidiafb, nvidia<br />
<br />
I have installed 310.32 driver for Tesla:<br />
<br />
&gt; Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (310.32):<br />
<br />
I expect, at least, 2.1 version of OpenGL for this machine, but glxinfo gives me:<br />
<br />
OpenGL vendor string: Mesa Project<br />
OpenGL renderer string: Software Rasterizer<br />
OpenGL version string: 1.4 (2.1 Mesa 7.11-devel)<br />
<br />
What is wrong in my installation?<br />
<br />
In particular, I have another similar machine without GPU Tesla and only<br />
with ATI controller:<br />
<br />
0a:01.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)<br />
<br />
And the OpenGL version is the same on it:<br />
<br />
OpenGL vendor string: Mesa Project<br />
OpenGL renderer string: Software Rasterizer<br />
OpenGL version string: 1.4 (2.1 Mesa 7.11-devel)<br />
<br />
How to provide OpenGL version &gt;= 2.0 on the first machine?<br />
<br />
Thanks.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>YurySerdyuk</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181529-Trouble-with-OpenGL-version</guid>
		</item>
		<item>
			<title>AMD Catalyst 13.3 Beta Linux - Interface Block Redeclaration - GLSL Bugs</title>
			<link>http://www.opengl.org/discussion_boards/showthread.php/181528-AMD-Catalyst-13-3-Beta-Linux-Interface-Block-Redeclaration-GLSL-Bugs?goto=newpost</link>
			<pubDate>Mon, 22 Apr 2013 15:37:15 GMT</pubDate>
			<description>Ahoi. Reading this (http://www.opengl.org/discussion_boards/showthread.php/181523-Generating-pipelines-attaching-shaders-working-code-anyone) thread...</description>
			<content:encoded><![CDATA[<div>Ahoi. Reading <a href="http://www.opengl.org/discussion_boards/showthread.php/181523-Generating-pipelines-attaching-shaders-working-code-anyone" target="_blank">this</a> thread triggered my curiosity once again. So I tried my luck with redeclaration of built-in interface blocks and, if I haven't fallen victim to my own incredible stupidity here, the GLSL compiler seems to violate a multitude of compilation/linkage rules from the spec (all quotes from the GLSL 4.30 Spec):<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Quote:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			The gl_PerVertex block can be redeclared in a shader to explicitly indicate what subset of the fixed pipeline interface will be used. This is necessary to establish the interface between multiple programs. [..] It must be a subset of the built-in members of gl_PerVertex.
			
		<hr />
	</div>
</div>First of all, the wording is awful. The words <i>can </i>and <i>necessary</i> don't go well together. They <i>can</i> be redeclared when using non-separable programs, they are <i>necessary</i>, however, when using a program pipeline. Maybe a spec bug - maybe a driver. At least the driver seems to be sure that <i>can</i> isn't the right wording. Anyway, using the following shaders separably works just fine, even though as per the GLSL spec it shouldn't:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">// vertex shader
#version 420
layout(location = 0) in vec4 position;
&nbsp;
out gl_PerVertex
{
    vec4 gl_Position;
    vec2 wtf_AMD;
};
&nbsp;
void main()
{
    gl_Position = position;
    wtf_AMD    = position.xy;
}
&nbsp;
// geometry shader
#version 420
&nbsp;
layout(points) in;
layout(points, max_vertices = 1) out;
&nbsp;
in gl_PerVertex
{
    vec4 gl_Position;
    vec2 wtf_AMD;
} gl_in&#91;&#93;;
&nbsp;
out gl_PerVertex
{
    vec4  gl_Position;
    float  gl_PointSize;
};
&nbsp;
void main()
{
    gl_PointSize = 5.f;
    gl_Position  = gl_in&#91;0&#93;.gl_Position + vec4(gl_in&#91;0&#93;.wtf_AMD, 0.0, 0.0);
&nbsp;
    EmitVertex  ();
    EndPrimitive();
}</pre></div></code><hr />
</div><br />
No complaints whatsoever - not even when insulting the compiler with a nasty &quot;WTF&quot;. Clearly, the vec2 is not a built-in member of gl_PerVertex and therefore does not belong to aforementioned subset.<br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Quote:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			If a built-in interface block is redeclared, it must appear in the shader before any use of any member included in the built-in declaration, or a compile-time error will result.
			
		<hr />
	</div>
</div>Unless my interpretation is wrong, this simply means, the block needs to appear before any use of any of its members. However, this compiles and works:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">#version 420
in vec4 position;
&nbsp;
void main()
{
    gl_Position = position;
    amd_WTF  = position.xy;
}
&nbsp;
out gl_PerVertex
{
    vec4  gl_Position;
    vec2  amd_WTF;
};</pre></div></code><hr />
</div><br />
This seems to violate the spec on <i>two </i>counts... As I understand it, I should not be able to use a member of a redeclared interface <i>prior </i>to its redeclaration and I assumed this goes for gl_Position as well. However, the compiler will only complain about the vec2 not being declared at that point.<br />
<br />
Now, what happens if we do all this with an old-school, linked program? The following will compile fine even though it clearly violates the rules of interface matching (which don't only apply to separable programs):<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Quote:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			Matched block names within an interface (as defined above) must match in terms of having the same number of declarations with the same sequence of types and the same sequence of member names, as well as having the same member-wise layout qualification (see next section).[..] Any mismatch will generate a link-time error.
			
		<hr />
	</div>
</div>Consider the following clearly mismatching interfaces:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">// vertex shader
out gl_PerVertex
{
    vec4 gl_Position;
    float wtf_AMD_float;
    vec2 wtf_AMD;
    float wtf_Padding;
};
&nbsp;
// geometry shader
in gl_PerVertex
{
    vec4 gl_Position;
    vec2 wtf_AMD;
    float wtf_AMD_float;
} gl_in&#91;&#93;;</pre></div></code><hr />
</div><br />
The only thing that matches is the number of declarations. Neither the type sequence nor the sequence of names match. Two violations. Does the linker complain is it should? No. Actually it compiles, links and runs but generates no primitives - at least not until wtf_AMD_float is actually used:<br />
<br />
<div class="bbcode_container">
                <div class="bbcode_description">Code :</div>
                <hr /><code class="bbcode_code"><div class="" style="font-family:monospace;"><pre style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">// write position in the GS
gl_Position  = gl_in&#91;0&#93;.gl_Position + vec4(gl_in&#91;0&#93;.wtf_AMD * gl_in&#91;0&#93;.wtf_AMD_float, 0.0, 0.0);</pre></div></code><hr />
</div><br />
This will link and run just as fine but, oh wonder, generate incorrect output primitives for which actual fragments are rasterized which can addtionally be controlled by adjusting the point size... It shouldn't even link - and seriously, if for linked programs it also applies that the redeclared members must be a subset of the built-in members of gl_PerVertex, it should even compile IMHO. Too bad the spec doesn't explicitly state that the latter actually should occur. <br />
<br />
Please, someone tell me that I'm making some horrible mistakes above. Otherwise, the whole redeclaration thing seems broken as ****.<br />
<br />
EDIT: Just some of it with 13.1 again. The first example simply flickers, i.e. sometimes it generates primtives and sometimes it doesn't but the compiler/linker still don't complain. The last example, ironically, generates the correct primitives. Obviously, 13.3 has regressed from incorrect to even more incorrect behavior.</div>

]]></content:encoded>
			<category domain="http://www.opengl.org/discussion_boards/forumdisplay.php/17-OpenGL-drivers">OpenGL drivers</category>
			<dc:creator>thokra</dc:creator>
			<guid isPermaLink="true">http://www.opengl.org/discussion_boards/showthread.php/181528-AMD-Catalyst-13-3-Beta-Linux-Interface-Block-Redeclaration-GLSL-Bugs</guid>
		</item>
	</channel>
</rss>
