Op 06-01-16 om 20:34 schreef Matt Roper: > In addition to calculating final watermarks, let's also pre-calculate a > set of intermediate watermark values at atomic check time. These > intermediate watermarks are a combination of the watermarks for the old > state and the new state; they should satisfy the requirements of both > states which means they can be programmed immediately when we commit the > atomic state (without waiting for a vblank). Once the vblank does > happen, we can then re-program watermarks to the more optimal final > value. > > v2: Significant rebasing/rewriting. > > v3: > - Move 'need_postvbl_update' flag to CRTC state (Daniel) > - Don't forget to check intermediate watermark values for validity > (Maarten) > - Don't due async watermark optimization; just do it at the end of the > atomic transaction, after waiting for vblanks. We do want it to be > async eventually, but adding that now will cause more trouble for > Maarten's in-progress work. (Maarten) > - Don't allocate space in crtc_state for intermediate watermarks on > platforms that don't need it (gen9+). > - Move WaCxSRDisabledForSpriteScaling:ivb into intel_begin_crtc_commit > now that ilk_update_wm is gone. > > v4: > - Add a wm_mutex to cover updates to intel_crtc->active and the > need_postvbl_update flag. Since we don't have async yet it isn't > terribly important yet, but might as well add it now. > - Change interface to program watermarks. Platforms will now expose > .initial_watermarks() and .optimize_watermarks() functions to do > watermark programming. These should lock wm_mutex, copy the > appropriate state values into intel_crtc->active, and then call > the internal program watermarks function. > > v5: > - Skip intermediate watermark calculation/check during initial hardware > readout since we don't trust the existing HW values (and don't have > valid values of our own yet). > - Don't try to call .optimize_watermarks() on platforms that don't have > atomic watermarks yet. (Maarten) > > v6: > - Rebase > > v7: > - Further rebase > > v8: > - A few minor indentation and line length fixes > > v9: > - Yet another rebase since Maarten's patches reworked a bunch of the > code (wm_pre, wm_post, etc.) that this was previously based on. > > v10: > - Move wm_mutex to dev_priv to protect against racing commits against > disjoint CRTC sets. (Maarten) > - Drop unnecessary clearing of cstate->wm.need_postvbl_update (Maarten) > > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> > Pushed, thanks. _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx