[Intel-gfx] [PATCH v19 4/8] drm/i915: Refactor intel_can_enable_sagv

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Mar 18 12:50:55 UTC 2020


On Wed, Mar 18, 2020 at 11:52:13AM +0000, Lisovskiy, Stanislav wrote:
> >> @@ -5829,6 +6068,10 @@ skl_compute_wm(struct intel_atomic_state *state)
> >>                        return ret;
> >>        }
> >>
> >> +     ret = intel_compute_sagv_mask(state);
> >> +     if (ret)
> >> +             return ret;
> 
> > This seems too early. We haven't even computed the ddb yet.
> 
> 
> I was thinking about our discussion last week and actually I think there are simply two ways how
> 
> to do it.
> 
> 
> 1) What I do here is: calculate minimum amount required to fit SAGV wm levels into ddb and
> 
> based on that do the ddb allocation accordingly. I.e it is not to early because actually we have
> 
> already wm levels for sagv and non-sagv calculated - we already can check if it can fit into L0
> 
> and then act accordingly.
> 
> However one thing to consider here: as you said besides the minimal requirements for each plane
> 
> (with or without sagv) there is an extra space being allocated in proportion to plane data rate,
> 
> however here we are actually hitting the prioritization issue - i.e we need to decide whether
> 
> it is more important to have SAGV or to have more extra space allocated to different planes
> 
> proportionally to their needs.
> 
> So in this first approach we always first determine if we fit into minimum SAGV reqs, turn it
> 
> on if we do and then rest of extra space is allocated among the planes in proportion to data rate.
> 
> So that way we would be more often power efficient but but planes get less extra ddb space.
> 
> 
> 2) In your approach we should calculate ddb first, allocate extra space proportionally to plane
> 
> data rate needs and only then check if all planes got enough space for L0 SAGV wm after that.
> 
> Then we actually don't even need skl_plane_wm_level accessor, because we first would be allocating
> 
> using normal wm levels + extra ddb and only then check if all planes fit into SAGV requirement -
> 
> because that extra space is not actually distributed evenly but in proportion to data rate of each
> 
> plane, which means that some planes might lack space for SAGV theoretically, because some might be
> 
> getting more or less depending on the data_rate/total_data_rate ratio.
> 
> 
> My position is such that I'm really not like "my approach should always win" here, but more searching for
> 
> solution which is more correct from product point of view.
> 
> 
> Also could be that it doesn't really matter which approach we do take now,, but matter more like
> 
> that how fast we deliver.  Because the actual outcome difference between two
> 
> might be minor, while time overhead for changing the approach could be major.

Pls fix your MUA. Really hard to read this.

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list