From 38fb9aa1aa8a25443196a6fdbe21d538ba91a347 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michel=20D=C3=A4nzer?= Date: Wed, 2 Nov 2016 18:43:37 +0900 Subject: [PATCH] gallium/radeon: Only loop up to last_level for drm<->winsys conversion MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes spurious assertion failure in surf_level_drm_to_winsys when starting X, due to processing a miplevel which was never initialized. Fixes: e9c76eeeaa67 ("gallium/radeon: remove radeon_surf_level::pitch_bytes") Reviewed-by: Nicolai Hähnle Reviewed-by: Marek Olšák --- src/gallium/winsys/radeon/drm/radeon_drm_surface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_surface.c b/src/gallium/winsys/radeon/drm/radeon_drm_surface.c index c6fa475fc4a..e3eea597ce0 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_surface.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_surface.c @@ -157,7 +157,7 @@ static void surf_winsys_to_drm(struct radeon_surface *surf_drm, surf_drm->tile_split = surf_ws->tile_split; surf_drm->stencil_tile_split = surf_ws->stencil_tile_split; - for (i = 0; i < RADEON_SURF_MAX_LEVELS; i++) { + for (i = 0; i <= surf_drm->last_level; i++) { surf_level_winsys_to_drm(&surf_drm->level[i], &surf_ws->level[i], bpe); surf_level_winsys_to_drm(&surf_drm->stencil_level[i], &surf_ws->stencil_level[i], bpe); @@ -192,7 +192,7 @@ static void surf_drm_to_winsys(struct radeon_drm_winsys *ws, surf_ws->macro_tile_index = cik_get_macro_tile_index(surf_ws); - for (i = 0; i < RADEON_SURF_MAX_LEVELS; i++) { + for (i = 0; i <= surf_drm->last_level; i++) { surf_level_drm_to_winsys(&surf_ws->level[i], &surf_drm->level[i], surf_drm->bpe * surf_drm->nsamples); surf_level_drm_to_winsys(&surf_ws->stencil_level[i], -- 2.30.2