intel/blorp_blit: Split blorp blits if they are too large
authorJordan Justen <jordan.l.justen@intel.com>
Mon, 7 Nov 2016 22:06:56 +0000 (14:06 -0800)
committerJordan Justen <jordan.l.justen@intel.com>
Wed, 7 Dec 2016 17:00:49 +0000 (09:00 -0800)
commit12e0a6e25967e097f9d18e9ee25b30248f617b28
treea01bc531611bcbdff9b896c5f4e1b2e7ba179d40
parentb74d4f6ca02715470d8f7726d19aff342873dbc6
intel/blorp_blit: Split blorp blits if they are too large

We rename do_blorp_blit() to try_blorp_blit(), and add a return error
if the surface size for the blit is too large. Now, do_blorp_blit() is
rewritten to try to split the blit into smaller operations if
try_blorp_blit() fails.

Note: In this commit, try_blorp_blit() will always attempt to blit and
never return an error, which matches the previous behavior. We will
enable the size checking and splitting in a future commit.

The motivation for this splitting is that in some cases when we
flatten an image, it's dimensions grow, and this can then exceed the
programmable hardware limits. An example is w-tiled+MSAA blits.

v2:
 * Use double instead of float. (Jason)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/blorp/blorp_blit.c