summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2016-11-02 18:43:37 +0900
committerMichel Dänzer <[email protected]>2016-11-04 16:47:43 +0900
commit38fb9aa1aa8a25443196a6fdbe21d538ba91a347 (patch)
tree902416dbe9acaa87271cb22f9b53fb3de7b6de23 /src
parent1e3f7bfc9ae4c35f75e6843dda451fde7c107e5c (diff)
gallium/radeon: Only loop up to last_level for drm<->winsys conversion
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 <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_surface.c4
1 files 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],