From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 82586] New: UBO matrix in std140 struct does not work
Date: Wed, 13 Aug 2014 21:54:47 +0000
Message-ID:
Priority
medium
Bug ID
82586
Assignee
dri-devel@lists.freedesktop.org
Summary
UBO matrix in std140 struct does not work
Severity
normal
Classification
Unclassified
OS
All
Reporter
pavol@klacansky.com
Hardware
Other
Status
NEW
Version
git
Component
Drivers/Gallium/r600
Product
Mesa
I am not sure if the problem is actually in my code, but I tested it on nVidia
driver and it worked (but their compiler might have a fix for it internally).
Here is vertex shader:
#version 330
layout(location = 0) in vec4 position;
layout(std140) uniform Matrices {
mat4 model;
mat4 view;
mat4 projection;
} matrices;
out gl_PerVertex {
vec4 gl_Position;
};
/* interpolate to compute normal in fragment shader */
out vec3 v_position;
void main(void)
{
v_position = vec3(matrices.view * matrices.model * position);
gl_Position = matrices.projection * matrices.view * matrices.model *
position;
}
If I use only one matrix from the uniform it works. I have printed UBOs values
and they are just identity matrices.