<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [Vega10] GPU lockup on boot: VMC page fault"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105251#c69">Comment # 69</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [Vega10] GPU lockup on boot: VMC page fault"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105251">bug 105251</a>
from <span class="vcard"><a class="email" href="mailto:375gnu@gmail.com" title="Hleb Valoshka <375gnu@gmail.com>"> <span class="fn">Hleb Valoshka</span></a>
</span></b>
<pre>I have this fault with 2400G and mesa 18.3 & 19.1.1 with Linux 4.19 (other
versions haven't been tested).
It seems that Vega is unable to handle tiny VBO correctly. I have an old
application that uses a lot of immediate mode GL functions to create small
billboards using GL_QUADS like the following one:
glTexCoord2f(0, 0); glVertex(v0 * Size);
glTexCoord2f(1, 0); glVertex(v1 * Size);
glTexCoord2f(1, 1); glVertex(v2 * Size);
glTexCoord2f(0, 1); glVertex(v3 * Size);
Initially I have replaced this code with
static GLfloat Vtx[] =
{
-1, -1, 0, 0, 0,
1, -1, 0, 1, 0,
1, 1, 0, 1, 1,
-1, 1, 0, 0, 1
};
glBufferData(GL_ARRAY_BUFFER, sizeof(Vtx), Vtx, GL_STATIC_DRAW);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, 5*sizeof(GLfloat), 0);
glTexCoordPointer(2, GL_FLOAT, 5*sizeof(GLfloat), 3*sizeof(GLfloat));
+ I use VAO if it's available.
As a variant I used independent arrays for position and texture coordinates.
But with the same fault.
So as a result I added required data to another related VBO which contains 8192
vertices. Now I don't have this fault.
I know that OpenGL doesn't like herds of small VBOs, but the hardware failure
is not an expected result if we use them.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>