[Mesa-dev] Clover Image Writes and CS Lockups

Dorrington, Albert albert.dorrington at lmco.com
Mon Apr 21 14:04:00 PDT 2014


I have been working on integrating image support into a hybrid Clover build.
I managed to get 2D image reads working a week or so ago, and have moved on to implementing 2D image writes.

I have an issue where when writing 4x4 images, things are working fine. When I move on to larger images, I get stalls of the CS from libDRM.

>From what I can tell, when I try to write images larger than 4x4, the code starts using a fetch shader to move the image.

I am assuming that there is some sort of conflict between running a compute shader and a fetch shader at the same time, but I'm not sure what I need to do to get them to cooperate with each other.

With image reads, I initially had a problem with I tried reading images larger than 4x4, due to the use of a pixel shader, where I'd get CS stalls from libDRM.
Although it may not have been the right way to fix it, I managed to get this working, by adding a EVENT_TYPE_PS_PARTIAL_FLUSH, in evergreen_compute.c's evergreen_init_atom_start_compute_cs(), after the EVENT_TYPE_CS_PARTIAL_FLUSH.

I have been trying to figure out if there is something similar that I can do with the fetch shader, but have not had any luck quite yet.
Maybe I'm off the mark, and just need to reconfigure the fetch shader to emit with the RADEON_CP_PACKET3_COMPUTE_MODE flag set?

I have myself rather confused at the moment...

Al Dorrington
Software Engineer Sr
Lockheed Martin, Mission Systems and Training

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140421/c506895a/attachment.html>


More information about the mesa-dev mailing list