Bug 82671

Summary: [r600g-evergreen][compute]Empty kernel execution causes crash
Product: Mesa Reporter: Damien Hilloulin <damien.hilloulin>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: damien.hilloulin
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Bug repro program source file
Fix

Description Damien Hilloulin 2014-08-15 17:57:43 UTC
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.
Comment 1 Tom Stellard 2014-08-19 23:34:15 UTC
Created attachment 104927 [details] [review]
Fix

Can you try this patch?
Comment 2 Damien Hilloulin 2014-08-20 15:31:31 UTC
Fix the bug for me :)

Thank you for giving a look at this bug!
Comment 3 Tom Stellard 2014-08-21 14:08:47 UTC
Fixed in git commit commit bf7a60f41d897be4d9804ba7c46633e38501ffe7

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.