Summary: | [r600g-evergreen][compute]Empty kernel execution causes crash | ||
---|---|---|---|
Product: | Mesa | Reporter: | Damien Hilloulin <damien.hilloulin> |
Component: | Drivers/Gallium/r600 | Assignee: | 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 |
Created attachment 104927 [details] [review] Fix Can you try this patch? Fix the bug for me :) Thank you for giving a look at this bug! 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.
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.