summaryrefslogtreecommitdiffstats
path: root/src/intel/blorp
diff options
context:
space:
mode:
authorJordan Justen <[email protected]>2016-11-22 17:20:42 -0800
committerJordan Justen <[email protected]>2016-12-07 09:00:49 -0800
commitd6526d724765e14fc9bb25cd2a53463a4d1c5fff (patch)
treefb2420037e71738d0992291a112e98a14965d14a /src/intel/blorp
parentda381ae6475dfd35f1ab8c6063b4dce368ef7588 (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.c12
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;