From: Jordan Justen Date: Wed, 23 Nov 2016 01:20:42 +0000 (-0800) Subject: intel/blorp_blit: Add split_blorp_blit_debug switch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d6526d724765e14fc9bb25cd2a53463a4d1c5fff;p=mesa.git intel/blorp_blit: Add split_blorp_blit_debug switch Enabling this debug switch causes surface shrinking to happen by default, and lowers the surface size limit which causes blorp blits to be split. Signed-off-by: Jordan Justen Reviewed-by: Jason Ekstrand --- diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c index 280d6e19436..8abe3a810a1 100644 --- a/src/intel/blorp/blorp_blit.c +++ b/src/intel/blorp/blorp_blit.c @@ -28,6 +28,8 @@ #define FILE_DEBUG_FLAG DEBUG_BLORP +static const bool split_blorp_blit_debug = false; + /** * Enum to specify the order of arguments in a sampler message */ @@ -1517,9 +1519,13 @@ can_shrink_surfaces(const struct blorp_params *params) } static unsigned -get_max_surface_size() +get_max_surface_size(const struct gen_device_info *devinfo, + const struct blorp_params *params) { - return 16384; + if (split_blorp_blit_debug && can_shrink_surfaces(params)) + return 16384 >> 4; /* A smaller restriction when debug is enabled */ + else + return 16384; } struct blt_axis { @@ -1940,7 +1946,7 @@ do_blorp_blit(struct blorp_batch *batch, y_scale = -y_scale; bool x_done, y_done; - bool shrink = false; + bool shrink = split_blorp_blit_debug && can_shrink_surfaces(orig_params); do { params = *orig_params; blit_coords = split_coords;