<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Guild Wars 2 crash on nouveau DX11 cards"
href="https://bugs.freedesktop.org/show_bug.cgi?id=93004#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Guild Wars 2 crash on nouveau DX11 cards"
href="https://bugs.freedesktop.org/show_bug.cgi?id=93004">bug 93004</a>
from <span class="vcard"><a class="email" href="mailto:siro@das-labor.org" title="Patrick Rudolph <siro@das-labor.org>"> <span class="fn">Patrick Rudolph</span></a>
</span></b>
<pre>For the second crash I found I simple solution:
It crashes in nvc0_vbo.c:static void nvc0_validate_vertex_buffers_shared(struct
nvc0_context *nvc0), as buf is NULL:
396: buf = nv04_resource(vb->buffer);
397: offset = vb->buffer_offset;
398: limit = buf->base.width0 - 1;
I'm not sure why it is possible to get to this point with a NULL vertex buffer
and a NULL user_buffer. Nine seems to take care and only sets non NULL buffers.
For some reason nvc0->num_vtxbufs always includes an additional NULL vb...
I fixed this problem by adding:
396: buf = nv04_resource(vb->buffer);
if (!buf) continue;
397: offset = vb->buffer_offset;
398: limit = buf->base.width0 - 1;
With this fixed Guild Wars 2 doesn't crash in every pipe->draw_vbo.
I was able to play the game for a few minutes.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>