i965/blorp: Don't fall back to swrast when miptrees absent.
authorPaul Berry <stereotype441@gmail.com>
Fri, 13 Jul 2012 20:59:41 +0000 (13:59 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 24 Jul 2012 21:52:57 +0000 (14:52 -0700)
Previously, the blorp engine would fall back to swrast if the source
or destination of a blit had no associated miptree.  This was
unnecessary, since _mesa_BlitFramebufferEXT() already takes care of
making the blit silently succeed if there are no buffers bound, so the
fallback paths could never actually happen in practice.

Removing these fallback paths will simplify the implementation of
correct DrawBuffers support in blorp.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp

index 038489fffbd973005069ff7f845ce78e3c3c7ce7..eb78fe1ece7f1b4a76151355f10655340ba01c66 100644 (file)
@@ -147,19 +147,15 @@ try_blorp_blit(struct intel_context *intel,
       assert(false);
    }
 
-   /* Validate source */
-   if (!src_rb) return false;
+   /* Find source miptree */
    struct intel_renderbuffer *src_irb = intel_renderbuffer(src_rb);
    struct intel_mipmap_tree *src_mt = src_irb->mt;
-   if (!src_mt) return false;
    if (buffer_bit == GL_STENCIL_BUFFER_BIT && src_mt->stencil_mt)
       src_mt = src_mt->stencil_mt;
 
-   /* Validate destination */
-   if (!dst_rb) return false;
+   /* Find destination miptree */
    struct intel_renderbuffer *dst_irb = intel_renderbuffer(dst_rb);
    struct intel_mipmap_tree *dst_mt = dst_irb->mt;
-   if (!dst_mt) return false;
    if (buffer_bit == GL_STENCIL_BUFFER_BIT && dst_mt->stencil_mt)
       dst_mt = dst_mt->stencil_mt;