i965/blorp: Enable blits on gen8
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Wed, 30 Mar 2016 17:41:30 +0000 (20:41 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Thu, 21 Apr 2016 07:20:02 +0000 (10:20 +0300)
v2 (Ken): Moved switch cases for gen8/9 in texel_fetch() to
          earlier patch adding gen8/9 sampling support.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_blorp.cpp
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index b567b42e52362cafab63421fb2112391405710a9..8c69f6f3147ffb6dbfd35f606b5536f108cb789d 100644 (file)
@@ -210,7 +210,7 @@ void
 brw_blorp_exec(struct brw_context *brw, const brw_blorp_params *params)
 {
    struct gl_context *ctx = &brw->ctx;
-   uint32_t estimated_max_batch_usage = 1500;
+   const uint32_t estimated_max_batch_usage = brw->gen >= 8 ? 1800 : 1500;
    bool check_aperture_failed_once = false;
 
    /* Flush the sampler and render caches.  We definitely need to flush the
@@ -236,6 +236,10 @@ retry:
    case 7:
       gen7_blorp_exec(brw, params);
       break;
+   case 8:
+   case 9:
+      gen8_blorp_exec(brw, params);
+      break;
    default:
       /* BLORP is not supported before Gen6. */
       unreachable("not reached");
index 15247594ed733373d0553d3b201f8c386458e72a..91a0553f03f7811641d2439579f76fbcb92365c2 100644 (file)
@@ -256,8 +256,8 @@ brw_blorp_copytexsubimage(struct brw_context *brw,
        src_mt->num_samples > 8 || dst_mt->num_samples > 8)
       return false;
 
-   /* BLORP is only supported for Gen6-7. */
-   if (brw->gen < 6 || brw->gen > 7)
+   /* BLORP is only supported from Gen6 onwards. */
+   if (brw->gen < 6)
       return false;
 
    if (_mesa_get_format_base_format(src_rb->Format) !=
@@ -359,7 +359,7 @@ brw_blorp_framebuffer(struct brw_context *brw,
                       GLbitfield mask, GLenum filter)
 {
    /* BLORP is not supported before Gen6. */
-   if (brw->gen < 6 || brw->gen >= 8)
+   if (brw->gen < 6)
       return mask;
 
    /* There is support only for four and eight samples. */
index e2d897a0b37ab5dcf28cb2d62c4a4f8683e0f0bf..da880b6a1e93ff570c7e8b861ef141f796a7a1c0 100644 (file)
@@ -2165,8 +2165,7 @@ intel_miptree_updownsample(struct brw_context *brw,
                            struct intel_mipmap_tree *dst)
 {
    /* There is support only for four and eight samples. */
-   const bool use_blorp = brw->gen < 8 &&
-                          src->num_samples != 2 && dst->num_samples != 2 &&
+   const bool use_blorp = src->num_samples != 2 && dst->num_samples != 2 &&
                           src->num_samples <= 8 && dst->num_samples <= 8;
 
    if (use_blorp) {