diff options
author | Jordan Justen <[email protected]> | 2016-11-22 17:20:42 -0800 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2016-12-07 09:00:49 -0800 |
commit | d6526d724765e14fc9bb25cd2a53463a4d1c5fff (patch) | |
tree | fb2420037e71738d0992291a112e98a14965d14a /src/intel/blorp | |
parent | da381ae6475dfd35f1ab8c6063b4dce368ef7588 (diff) |
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 <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/blorp')
-rw-r--r-- | src/intel/blorp/blorp_blit.c | 12 |
1 files changed, 9 insertions, 3 deletions
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; |