From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 82671] New: [r600g-evergreen][compute]Empty kernel execution
causes crash
Date: Fri, 15 Aug 2014 17:57:43 +0000
Message-ID:
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.