<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - World of Zoo (in Wine) has rendering issues"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91170#c6">Comment # 6</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - World of Zoo (in Wine) has rendering issues"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91170">bug 91170</a>
from <span class="vcard"><a class="email" href="mailto:imirkin@alum.mit.edu" title="Ilia Mirkin <imirkin@alum.mit.edu>"> <span class="fn">Ilia Mirkin</span></a>
</span></b>
<pre>Created <span class=""><a href="attachment.cgi?id=116925" name="attach_116925" title="another bs fix">attachment 116925</a> <a href="attachment.cgi?id=116925&action=edit" title="another bs fix">[details]</a></span> <a href='page.cgi?id=splinter.html&bug=91170&attachment=116925'>[review]</a>
another bs fix
This is very worrying... emitting more fences seems to fix it. Another place
where it helped was in nouveau_transfer_write. The joke of it is that emitting
a fence doesn't even kick the pushbuf, just writes the commands.
But since I'm not actually changing *which* fences are attached, I really don't
see how this changes anything. Waiting on fence instead of fence_wr doesn't
seem to affect it either.
What this game does is totally NUTS btw. It has a 512KB vertex buffer, and
every time it maps it is with GL_MAP_INVALIDATE_BUFFER_BIT and writes all 512KB
each time. Which is fine, just... inefficient (probably).
It also has a 128KB index buffer, of which it maps the whole range with
GL_MAP_READ_BIT | GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT. And then draws,
immediately maps it again, draws, etc. This is like the definition of how not
to use these buffers. Anyways, this forces the creation of a staging bo (in
GART), which receives a copy of the old 128KB of data, and returns a pointer to
that. Then the program updates the 12 or whatever bytes of data, and flushes
them, so *just* those 12 bytes get written. [I'm not kidding, it literally
updates 12 bytes a lot of the time.]
I tried adding kicks in copy_data & co, but that (expectedly) didn't help.</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>