On Tue, Jun 30, 2015 at 03:59:08PM +0100, Peter Antoine wrote:
> +int intel_rcs_context_init_mocs(struct drm_i915_gem_request *req)
> +{
> +     int ret = 0;
> +     struct drm_i915_mocs_table t;
> +
> +     if (get_mocs_settings(req->ring->dev, &t)) {
> +             u32 table_size;
> +
> +             /*
> +              * OK. For each supported ring:
> +              *  number of mocs entries * 2 dwords for each control_value
> +              *  plus number of mocs entries /2 dwords for l3cc values.
> +              *
> +              *  Plus 1 for the load command and 1 for the NOOP per ring
> +              *  and the l3cc programming.
> +              */
> +             table_size = GEN9_NUM_MOCS_RINGS *
> +                             ((2 * GEN9_NUM_MOCS_ENTRIES) + 2) +
> +                             GEN9_NUM_MOCS_ENTRIES + 2;
> +
> +             ret = intel_logical_ring_begin(req, table_size);
> +             if (ret) {
> +                     DRM_DEBUG("intel_logical_ring_begin failed %d\n", ret);
> +                     return ret;
> +             }
> +
> +             /* program the control registers */
> +             emit_mocs_control_table(req->ringbuf, &t, GEN9_GFX_MOCS_0);

I wanted the ring_begin pushed down a level so that I didn't need a pen
and paper to review your calculations of space required, and reduce it
down a notch from trying to immediately reserve almost the entire skl 
ring buffer for itself.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to