[Mesa-dev] [PATCH 2/2] st/clover: Always flush the queue when waiting on an hard_event
Niels Ole Salscheider
niels_ole at salscheider-online.de
Sun Oct 6 11:45:45 PDT 2013
Am Donnerstag, 3. Oktober 2013, 11:08:26 schrieb Francisco Jerez:
> Niels Ole Salscheider <niels_ole at salscheider-online.de> writes:
> >> Do you have any example of a real world application that relies on this?
> >> Or at least some reasonable use case?
> > The problem is that the queue is only cleared from already signalled
> > events
> > when we flush it. And we might not do this if the user only calls
> > clWaitForEvents once the corresponding event has already been signalled.
> > I am fine with not flushing the queue, but we should at least make sure
> > that signalled events are freed early enough.
> So your application doesn't call clFlush() explicitly nor any blocking
> call on that specific event and it stalls forever polling an event with
> clGetEventInfo() that never gets flushed to the GPU? Is that the
> problem you've seen? Is it an open source application?
Unfortunately, the application is not open source and I am not allowed to give
the code to someone else, even though I have access to it.
The application calls clFinish and clWaitForEvents, but not clFlush. I think
the problem is that the kernels might already have finished execution when the
application calls these functions. Because of that the queue is not flushed and
thus not cleared.
However, I cannot reproduce it right now.
More information about the mesa-dev