st/xorg: Remove flushes no longer necessary thanks to context transfers.
authorMichel Dänzer <daenzer@vmware.com>
Fri, 12 Mar 2010 18:52:24 +0000 (19:52 +0100)
committerMichel Dänzer <daenzer@vmware.com>
Fri, 12 Mar 2010 18:52:24 +0000 (19:52 +0100)
src/gallium/state_trackers/xorg/xorg_composite.c
src/gallium/state_trackers/xorg/xorg_exa.c

index c50873c15088c102206e48968bf25d94cf602bdf..715a5e7b943e3b50128c49a798f775bfb62d7127 100644 (file)
@@ -359,14 +359,6 @@ bind_samplers(struct exa_context *exa, int op,
 
    exa->num_bound_samplers = 0;
 
-#if 0
-   if ((pSrc && (exa->pipe->is_texture_referenced(exa->pipe, pSrc->tex, 0, 0) &
-                 PIPE_REFERENCED_FOR_WRITE)) ||
-       (pMask && (exa->pipe->is_texture_referenced(exa->pipe, pMask->tex, 0, 0) &
-        PIPE_REFERENCED_FOR_WRITE)))
-      xorg_exa_flush(exa, PIPE_FLUSH_RENDER_CACHE, NULL);
-#endif
-
    memset(&src_sampler, 0, sizeof(struct pipe_sampler_state));
    memset(&mask_sampler, 0, sizeof(struct pipe_sampler_state));
 
index b5e7adc26ec4b1721fd5d7aa36c85030874bc82a..bdec0e254fa781b8190858e02e9b574de0221289 100644 (file)
@@ -188,10 +188,6 @@ ExaDownloadFromScreen(PixmapPtr pPix, int x,  int y, int w,  int h, char *dst,
     if (!priv || !priv->tex)
        return FALSE;
 
-    if (exa->pipe->is_texture_referenced(exa->pipe, priv->tex, 0, 0) &
-       PIPE_REFERENCED_FOR_WRITE)
-       exa->pipe->flush(exa->pipe, 0, NULL);
-
     transfer = exa->pipe->get_tex_transfer(exa->pipe, priv->tex, 0, 0, 0,
                                           PIPE_TRANSFER_READ, x, y, w, h);
     if (!transfer)
@@ -226,11 +222,6 @@ ExaUploadToScreen(PixmapPtr pPix, int x, int y, int w, int h, char *src,
     if (!priv || !priv->tex)
        return FALSE;
 
-    /* make sure that any pending operations are flushed to hardware */
-    if (exa->pipe->is_texture_referenced(exa->pipe, priv->tex, 0, 0) &
-       (PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE))
-       xorg_exa_flush(exa, 0, NULL);
-
     transfer = exa->pipe->get_tex_transfer(exa->pipe, priv->tex, 0, 0, 0,
                                           PIPE_TRANSFER_WRITE, x, y, w, h);
     if (!transfer)
@@ -270,10 +261,6 @@ ExaPrepareAccess(PixmapPtr pPix, int index)
 
     if (priv->map_count == 0)
     {
-       if (exa->pipe->is_texture_referenced(exa->pipe, priv->tex, 0, 0) &
-           PIPE_REFERENCED_FOR_WRITE)
-           exa->pipe->flush(exa->pipe, 0, NULL);
-
         assert(pPix->drawable.width <= priv->tex->width0);
         assert(pPix->drawable.height <= priv->tex->height0);