[Intel-gfx] [PATCH igt 1/3] lib/igt_fb: also call __gem_set_tiling for Y tiling
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Jan 29 11:06:05 PST 2016
On Fri, Jan 29, 2016 at 04:46:30PM -0200, Paulo Zanoni wrote:
> The interesting thing is that if we don't do this, we still get a
> Y tiled framebuffer, but there won't be a fence around it, which makes
> the GTT mmaps less interesting. Is this a Kernel bug?
I think some tests currently depend on not having a fence for Y tiled
fbs. So this could break stuff.
>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
> ---
> lib/igt_fb.c | 39 ++++++++++++++++++++-------------------
> 1 file changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 5f23136..efdd793 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -73,6 +73,22 @@ static struct format_desc_struct {
> #define for_each_format(f) \
> for (f = format_desc; f - format_desc < ARRAY_SIZE(format_desc); f++)
>
> +static unsigned int fb_mod_to_obj_tiling(uint64_t fb_mod)
> +{
> + switch (fb_mod) {
> + case LOCAL_DRM_FORMAT_MOD_NONE:
> + return I915_TILING_NONE;
> + case LOCAL_I915_FORMAT_MOD_X_TILED:
> + return I915_TILING_X;
> + case LOCAL_I915_FORMAT_MOD_Y_TILED:
> + return I915_TILING_Y;
> + case LOCAL_I915_FORMAT_MOD_Yf_TILED:
> + return I915_TILING_Yf;
> + default:
> + igt_assert(0);
> + }
> +}
> +
> static void igt_get_fb_tile_size(int fd, uint64_t tiling, int fb_bpp,
> unsigned *width_ret, unsigned *height_ret)
> {
> @@ -191,9 +207,10 @@ static int create_bo_for_fb(int fd, int width, int height, int bpp,
>
> gem_handle = gem_create(fd, bo_size);
>
> - if (tiling == LOCAL_I915_FORMAT_MOD_X_TILED)
> - ret = __gem_set_tiling(fd, gem_handle, I915_TILING_X,
> - bo_stride);
> + if (tiling == LOCAL_I915_FORMAT_MOD_X_TILED ||
> + tiling == LOCAL_I915_FORMAT_MOD_Y_TILED)
> + ret = __gem_set_tiling(fd, gem_handle,
> + fb_mod_to_obj_tiling(tiling), bo_stride);
>
> *stride_ret = bo_stride;
> *size_ret = bo_size;
> @@ -862,22 +879,6 @@ struct fb_blit_upload {
> } linear;
> };
>
> -static unsigned int fb_mod_to_obj_tiling(uint64_t fb_mod)
> -{
> - switch (fb_mod) {
> - case LOCAL_DRM_FORMAT_MOD_NONE:
> - return I915_TILING_NONE;
> - case LOCAL_I915_FORMAT_MOD_X_TILED:
> - return I915_TILING_X;
> - case LOCAL_I915_FORMAT_MOD_Y_TILED:
> - return I915_TILING_Y;
> - case LOCAL_I915_FORMAT_MOD_Yf_TILED:
> - return I915_TILING_Yf;
> - default:
> - igt_assert(0);
> - }
> -}
> -
> static void destroy_cairo_surface__blit(void *arg)
> {
> struct fb_blit_upload *blit = arg;
> --
> 2.7.0.rc3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list