[Bug 105251] [Vega10] GPU lockup on boot: VMC page fault

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Jul 3 11:08:08 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=105251

--- Comment #69 from Hleb Valoshka <375gnu at gmail.com> ---
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.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190703/9a6ddd1b/attachment.html>


More information about the dri-devel mailing list