llvmpipe: remove scissor cliprect derived state
authorKeith Whitwell <keithw@vmware.com>
Wed, 6 Jan 2010 18:41:42 +0000 (18:41 +0000)
committerKeith Whitwell <keithw@vmware.com>
Mon, 11 Jan 2010 11:06:15 +0000 (11:06 +0000)
Was previously calculating the intersection of the scissor rectangle
and the framebuffer dimensions.  Rendering is already restricted to
framebuffer dimensions by other means, so scissor testing (when
implemented) can just use the scissor state directly.

src/gallium/drivers/llvmpipe/lp_context.h
src/gallium/drivers/llvmpipe/lp_state_derived.c

index 1ede6a6a72f9bc69bce5c690194dc3145962601d..5390a713699e3944784736b3760632b08e216b97 100644 (file)
@@ -96,9 +96,6 @@ struct llvmpipe_context {
    /** Which vertex shader output slot contains point size */
    int psize_slot;
 
-   /** Derived from scissor and surface bounds: */
-   struct pipe_scissor_state cliprect;
-
    /** The tiling engine */
    struct setup_context *setup;
 
index 78d046985b9dc50e0426da573483fe1277753e11..af02fcfec90c5781384f853e2b1400cb7e32ec3a 100644 (file)
@@ -136,39 +136,6 @@ compute_vertex_info(struct llvmpipe_context *llvmpipe)
 
 
 
-/**
- * Recompute cliprect from scissor bounds, scissor enable and surface size.
- */
-static void
-compute_cliprect(struct llvmpipe_context *lp)
-{
-   /* LP_NEW_FRAMEBUFFER
-    */
-   uint surfWidth = lp->framebuffer.width;
-   uint surfHeight = lp->framebuffer.height;
-
-   /* LP_NEW_RASTERIZER
-    */
-   if (lp->rasterizer->scissor) {
-
-      /* LP_NEW_SCISSOR
-       *
-       * clip to scissor rect:
-       */
-      lp->cliprect.minx = MAX2(lp->scissor.minx, 0);
-      lp->cliprect.miny = MAX2(lp->scissor.miny, 0);
-      lp->cliprect.maxx = MIN2(lp->scissor.maxx, surfWidth);
-      lp->cliprect.maxy = MIN2(lp->scissor.maxy, surfHeight);
-   }
-   else {
-      /* clip to surface bounds */
-      lp->cliprect.minx = 0;
-      lp->cliprect.miny = 0;
-      lp->cliprect.maxx = surfWidth;
-      lp->cliprect.maxy = surfHeight;
-   }
-}
-
 
 /* Hopefully this will remain quite simple, otherwise need to pull in
  * something like the state tracker mechanism.
@@ -189,11 +156,6 @@ void llvmpipe_update_derived( struct llvmpipe_context *llvmpipe )
                           LP_NEW_VS))
       compute_vertex_info( llvmpipe );
 
-   if (llvmpipe->dirty & (LP_NEW_SCISSOR |
-                          LP_NEW_RASTERIZER |
-                          LP_NEW_FRAMEBUFFER))
-      compute_cliprect(llvmpipe);
-
    if (llvmpipe->dirty & (LP_NEW_FS |
                           LP_NEW_BLEND |
                           LP_NEW_DEPTH_STENCIL_ALPHA |