Priority | medium |
---|---|
Bug ID | 82671 |
Assignee | dri-devel@lists.freedesktop.org |
Summary | [r600g-evergreen][compute]Empty kernel execution causes crash |
Severity | normal |
Classification | Unclassified |
OS | Linux (All) |
Reporter | damien.hilloulin@supelec.fr |
Hardware | All |
Status | NEW |
Version | git |
Component | Drivers/Gallium/r600 |
Product | Mesa |
Created attachment 104687 [details]
Bug repro program source file
I gave a shot to opencl support on my evergreen card (cedar) with mesa git.
I noticed that with an empty kernel the program crash with:
evergreen_state.c:1827:evergreen_emit_vertex_buffers: Assertion `rbuffer'
failed.
I made a little debugging and I think that this is du to a bug in
evergreen_init_compute_state_functions from evergreen_compute.c .
The two concerned lines are
/* We always use at least one vertex buffer for parameters (id = 1)*/
ctx->cs_vertex_buffer_state.enabled_mask =
ctx->cs_vertex_buffer_state.dirty_mask = 0x2;
With an empty kernel there is in fact no vertex buffer used as far as I can
see.
By changing the two lines to
ctx->cs_vertex_buffer_state.enabled_mask =
ctx->cs_vertex_buffer_state.dirty_mask = 0x0;
It doesn't crash for me anymore.
However I am a total driver development noob so my interpretation (and
therefore fix) can be wrong.
You can find attacted the very small program to be able to cause the crash.