From f4314d06e8b7ac2ecd0adf67a885f9af84dcf557 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 26 Jul 2016 11:47:05 -0700 Subject: [PATCH] isl/state: Add some asserts about format capabilities This keeps invalid surface states from leaking through and potentially hanging the GPU. We shouldn't actually be hitting this on a regular basis, but a helpful assert is better than a hang. Signed-off-by: Jason Ekstrand Reviewed-by: Jordan Justen Reviewed-by: Anuj Phogat --- src/intel/isl/isl_surface_state.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index 4a7e921a798..979e1402e8c 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -210,6 +210,11 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, struct GENX(RENDER_SURFACE_STATE) s = { 0 }; s.SurfaceType = get_surftype(info->surf->dim, info->view->usage); + + if (info->view->usage & ISL_SURF_USAGE_RENDER_TARGET_BIT) + assert(isl_format_supports_rendering(dev->info, info->view->format)); + else if (info->view->usage & ISL_SURF_USAGE_TEXTURE_BIT) + assert(isl_format_supports_sampling(dev->info, info->view->format)); s.SurfaceFormat = info->view->format; #if GEN_IS_HASWELL -- 2.30.2