[igt-dev] [PATCH i-g-t 4/4] lib/igt_fb: Generalize the slow read from gtt mmap handling
Chris Wilson
chris at chris-wilson.co.uk
Fri Nov 2 19:17:03 UTC 2018
Quoting Ville Syrjala (2018-11-02 19:06:51)
> +static void *convert_src_get(const struct fb_convert *cvt)
> +{
> + void *buf;
> +
> + if (!cvt->src.slow_reads)
> + return cvt->src.ptr;
> +
> + /*
> + * Reading from the BO is awfully slow because of lack of read caching,
> + * it's faster to copy the whole BO to a temporary buffer and convert
> + * from there.
> + */
> + buf = malloc(cvt->src.fb->size);
if (!buf)
return cvt->src.ptr;
> + igt_memcpy_from_wc(buf, cvt->src.ptr, cvt->src.fb->size);
> +
> + return buf;
> +}
> +
> +static void convert_src_put(const struct fb_convert *cvt,
> + void *src_buf)
> +{
> + /*
> + * Reading from the BO is awfully slow because of lack of read caching,
> + * it's faster to copy the whole BO to a temporary buffer and convert
> + * from there.
> + */
> + if (cvt->src.slow_reads)
if (src_buf != cvt->src.ptr)
> + free(src_buf);
> +}
More information about the igt-dev
mailing list