On Fri, Mar 07, 2014 at 01:17:17PM +0000, Gupta, Sourab wrote: > Hi Daniel/Chris, > > > As Chris said, instead of rolling your own code to track when flips are emitted to the ring simply add a real request (with the add_request function) like the execbuf paths.Then add any additional trackin you need to our request structure. > > We can use the 'add_request' function. But since we already have & can track the seqno of the object (for which we want the rendering to complete), we think there shall be no additional benefit in adding a new request & then tracking the same. > > > Rather exporting deep magic from i915_gem, just emit the request after the mmio flip and use the normal signalling mechanisms. There are other users who could also use a request after a flip. > > We had the following point in mind, when implementing the Mmio based Page flips : > We wanted to completely avoid locking of the device mutex from the flip path. As we had seen sometimes the flips getting delayed because of concurrent exec buffers processing, while we are waiting for them to release the mutex. > Since the public functions (i915_wait_seqno ) require mutex to be taken beforehand, we had no choice but to expose the private __wait_seqno function in order to do so. > Also, we couldn't find any other signaling mechanism (other than wait_seqno type of functions) to do so. > > Can you please provide your feedback on the above points. I'd like to move this towards the atomic age. In my atomic branch I had an interrupt driven mechanism for issuing the flips when the target seqno(s) is/are reached. So my hope would be to move towards something similar so that it can be easily used for the nuclear flip later. Here's my latest code for that: https://gitorious.org/vsyrjala/linux/commit/4cad93ab1ac09d4649419789a80408c5d8505cdc -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx