<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Performance: extra&costly SSBO validation even when SSBO aren't used"
href="https://bugs.freedesktop.org/show_bug.cgi?id=96355">96355</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Performance: extra&costly SSBO validation even when SSBO aren't used
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/DRI/nouveau
</td>
</tr>
<tr>
<th>Assignee</th>
<td>nouveau@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>gregory.hainaut@gmail.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>nouveau@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Hello,
I'm currently trying to profile my application (PCSX2) with Mesa. I don't know
if my GPU (GTX760) is properly reclocked but my app is often CPU limited. It
could just be the IO operation that are very slow.
Anyway, Perf-Event shows that nvc0_validate_buffers is (too) often called.
+ 8.78% 7.98% pcsx2_GSReplayL nouveau_dri.so nvc0_validate_buffers
My understanding of the code is that every time we switch a shader program, a
full SSBO bind/validation is called. nvc0_set_shader_buffers will dirty buffer
state (NVC0_NEW_3D_BUFFERS). The trick is that my application doesn't use SSBO
(only UBO). Is it expected to call SSBO validation code when the shader program
doesn't use them? If not, a validation shortcut will be nice.
If it can help, here the backtrace from nvc0_set_shader_buffers
#0 nvc0_set_shader_buffers (pipe=0x87c51e0, shader=0, start=16, nr=16,
buffers=0x0) at nvc0/nvc0_state.c:1331
#1 0xf464acc4 in st_bind_ssbos (shader=0x8b106bc, shader_type=0, st=0x877ca38,
st=0x877ca38) at state_tracker/st_atom_storagebuf.c:86
#2 0xf464ad0d in bind_vs_ssbos (st=0x877ca38) at
state_tracker/st_atom_storagebuf.c:101
#3 0xf4647411 in st_validate_state (st=0x877ca38, pipeline=ST_PIPELINE_RENDER)
at state_tracker/st_atom.c:289
#4 0xf46638ef in st_draw_vbo (ctx=0x8801f60, prims=0xffffa990, nr_prims=1,
ib=0xffffa980, index_bounds_valid=0 '\000', min_index=4294967295,
max_index=4294967295, tfb_vertcount=0x0,
stream=0, indirect=0x0) at state_tracker/st_draw.c:176
#5 0xf46270f9 in vbo_validated_drawrangeelements (ctx=ctx@entry=0x8801f60,
mode=mode@entry=4, index_bounds_valid=0 '\000', start=4294967295,
end=4294967295, count=6, type=5125,
indices=0x25258, basevertex=19047, numInstances=1, baseInstance=0) at
vbo/vbo_exec_array.c:849
#6 0xf46274bc in vbo_exec_DrawElementsBaseVertex (mode=4, count=6, type=5125,
indices=0x25258, basevertex=19047) at vbo/vbo_exec_array.c:1007
#7 0xf6ddf422 in shared_dispatch_stub_702 (mode=4, count=6, type=5125,
indices=0x25258, basevertex=19047) at shared-glapi/glapi_mapi_tmp.h:21235
#8 0xf6362e0a in Draw (this=<optimized out>, this=<optimized out>,
basevertex=<optimized out>, mode=<optimized out>)
Feel free to ask trace/debug info.
Best regards</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>