<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [r300g, bisected] multiple piglit tests crash in r300_draw_arrays_immediate"
href="https://bugs.freedesktop.org/show_bug.cgi?id=56966">56966</a>
</td>
</tr>
<tr>
<th>Keywords</th>
<td>regression
</td>
</tr>
<tr>
<th>CC</th>
<td>maraeo@gmail.com
</td>
</tr>
<tr>
<th>Assignee</th>
<td>dri-devel@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Summary</th>
<td>[r300g, bisected] multiple piglit tests crash in r300_draw_arrays_immediate
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Reporter</th>
<td>pavel.ondracka@email.cz
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/Gallium/r300
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr></table>
<p>
<div>
<pre>Crashing tests are glsl-novertexdata, glsl-vs-point-size, vp-ignore-input and
pos-array.
First bad commit
commit e73bf3b805de78299f1a652668ba4e6eab9bac94
Author: Marek Olšák <<a href="mailto:maraeo@gmail.com">maraeo@gmail.com</a>>
Date: Thu Mar 29 17:51:50 2012 +0200
gallium: add start_slot parameter to set_vertex_buffers
This allows updating only a subrange of buffer bindings.
set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that
range. Binding NULL resources unbinds buffers too (both buffer and
user_buff
must be NULL).
The meta ops are adapted to only save, change, and restore the single slot
they use. The cso_context can save and restore only one vertex buffer slot.
The clients can query which one it is using cso_get_aux_vertex_buffer_slot.
It's currently set to 0. (the Draw module breaks if it's set to non-zero)
It should decrease the CPU overhead when using a lot of meta ops, but
the drivers must be able to treat each vertex buffer slot as a separate
state (only r600g does so at the moment).
I can imagine this also being useful for optimizing some OpenGL use cases.
Backtrace from pos-array -auto :
#0 r300_draw_arrays_immediate (r300=r300@entry=0x8059c60,
info=info@entry=0xbfffeac0) at r300_render.c:375
#1 0xb6bb0bbc in r300_draw_vbo (pipe=0x8059c60, dinfo=0xbfffed10) at
r300_render.c:838
#2 0xb6e0d538 in u_vbuf_draw_vbo (mgr=0x84cd7f0, info=info@entry=0xbfffed10)
at util/u_vbuf.c:1056
#3 0xb6db16ea in cso_draw_vbo (cso=0x84cd048, info=info@entry=0xbfffed10) at
cso_cache/cso_context.c:1331
#4 0xb6c91482 in st_draw_vbo (ctx=0x845e6b0, prims=0xbfffed90, nr_prims=1,
ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=0,
tfb_vertcount=0x0) at ../../src/mesa/state_tracker/st_draw.c:265
#5 0xb6d663f2 in vbo_draw_arrays (ctx=ctx@entry=0x845e6b0, mode=mode@entry=0,
start=start@entry=0, count=count@entry=1,
numInstances=numInstances@entry=1, baseInstance=baseInstance@entry=0) at
../../src/mesa/vbo/vbo_exec_array.c:619
#6 0xb6d665e1 in vbo_exec_DrawArrays (mode=0, start=0, count=1) at
../../src/mesa/vbo/vbo_exec_array.c:649
#7 0x08049771 in test_glsl_no_arrays () at
/home/Paulie/piglit/tests/general/pos-array.c:321
#8 0x08049d68 in piglit_display () at
/home/Paulie/piglit/tests/general/pos-array.c:518
#9 0xb7eed014 in display () at
/home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:60
#10 0xb7fbe754 in fghRedrawWindow (window=0x8057758) at freeglut_main.c:207
#11 fghcbDisplayWindow (window=0x8057758, enumerator=0xbfffef74) at
freeglut_main.c:224
#12 0xb7fc2337 in fgEnumWindows (enumCallback=enumCallback@entry=0xb7fbe6c0
<fghcbDisplayWindow>, enumerator=enumerator@entry=0xbfffef74)
at freeglut_structure.c:396
#13 0xb7fbec78 in fghDisplayAll () at freeglut_main.c:247
#14 glutMainLoopEvent () at freeglut_main.c:1485
#15 0xb7fbf4f8 in glutMainLoop () at freeglut_main.c:1533
#16 0xb7eed20d in run_test (gl_fw=0xb7fa7ac0, argc=1, argv=0xbffff234)
at
/home/Paulie/piglit/tests/util/piglit-framework-gl/piglit_glut_framework.c:127
#17 0xb7eeb31c in piglit_gl_test_run (argc=1, argv=0xbffff234,
config=0xbffff16c)
at /home/Paulie/piglit/tests/util/piglit-framework-gl.c:127
#18 0x0804903f in main (argc=1, argv=0xbffff234) at
/home/Paulie/piglit/tests/general/pos-array.c:41
GPU:RV530
Mesa: 5581954c3aa0c2418440700b3763882e37728914
Kernel: 3.6.2-4.fc17.i686
Libdrm: 2.4.40</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>