Module: Mesa
Branch: mesa_7_7_branch
Commit: 6810ce005a067f20c04f0b3abd1e422adec71d28
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6810ce005a067f20c04f0b3abd1e422adec71d28

Author: Keith Whitwell <[email protected]>
Date:   Fri Nov 27 14:03:10 2009 +0000

Revert "st/xorg: fix composite after texture size changes"

This reverts commit 124ae596806f1a77af46f1f0e446d448da6e953a.

Pushed by mistake

---

 src/gallium/state_trackers/xorg/xorg_exa.c      |   32 +++-------------------
 src/gallium/state_trackers/xorg/xorg_renderer.c |   16 +++--------
 2 files changed, 10 insertions(+), 38 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c 
b/src/gallium/state_trackers/xorg/xorg_exa.c
index cbada42..a22f15f 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -48,7 +48,6 @@
 #include "util/u_debug.h"
 
 #define DEBUG_PRINT 0
-#define ROUND_UP_TEXTURES 1
 
 /*
  * Helper functions
@@ -274,18 +273,13 @@ ExaPrepareAccess(PixmapPtr pPix, int index)
            PIPE_REFERENCED_FOR_WRITE)
            exa->pipe->flush(exa->pipe, 0, NULL);
 
-        assert(pPix->drawable.width <= priv->tex->width[0]);
-        assert(pPix->drawable.height <= priv->tex->height[0]);
-
        priv->map_transfer =
            exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
 #ifdef EXA_MIXED_PIXMAPS
                                        PIPE_TRANSFER_MAP_DIRECTLY |
 #endif
                                        PIPE_TRANSFER_READ_WRITE,
-                                       0, 0, 
-                                        pPix->drawable.width,
-                                        pPix->drawable.height );
+                                       0, 0, priv->tex->width[0], 
priv->tex->height[0]);
        if (!priv->map_transfer)
 #ifdef EXA_MIXED_PIXMAPS
            return FALSE;
@@ -826,22 +820,6 @@ xorg_exa_get_pixmap_handle(PixmapPtr pPixmap, unsigned 
*stride_out)
 }
 
 static Bool
-size_match( int width, int tex_width )
-{
-#if ROUND_UP_TEXTURES
-   if (width > tex_width)
-      return FALSE;
-
-   if (width * 2 < tex_width)
-      return FALSE;
-
-   return TRUE;
-#else
-   return width == tex_width;
-#endif
-}
-
-static Bool
 ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
                      int depth, int bitsPerPixel, int devKind,
                      pointer pPixData)
@@ -887,9 +865,9 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int 
height,
     /* Deal with screen resize */
     if ((exa->accel || priv->flags) &&
         (!priv->tex ||
-         !size_match(priv->tex->width[0], width) ||
-         !size_match(priv->tex->height[0], height) ||
-         priv->tex_flags != priv->flags)) {
+         (priv->tex->width[0] != width ||
+          priv->tex->height[0] != height ||
+          priv->tex_flags != priv->flags))) {
        struct pipe_texture *texture = NULL;
        struct pipe_texture template;
 
@@ -897,7 +875,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int 
height,
        template.target = PIPE_TEXTURE_2D;
        exa_get_pipe_format(depth, &template.format, &bitsPerPixel, 
&priv->picture_format);
        pf_get_block(template.format, &template.block);
-#if ROUND_UP_TEXTURES
+#if 1
        template.width[0] = util_next_power_of_two(width);
        template.height[0] = util_next_power_of_two(height);
 #else
diff --git a/src/gallium/state_trackers/xorg/xorg_renderer.c 
b/src/gallium/state_trackers/xorg/xorg_renderer.c
index 4f8985a..9cb65b0 100644
--- a/src/gallium/state_trackers/xorg/xorg_renderer.c
+++ b/src/gallium/state_trackers/xorg/xorg_renderer.c
@@ -313,25 +313,21 @@ setup_vertex_data_yuv(struct xorg_renderer *r,
  * these concepts are linked.
  */
 void renderer_bind_destination(struct xorg_renderer *r,
-                               struct pipe_surface *surface,
-                               int width,
-                               int height )
+                               struct pipe_surface *surface )
 {
 
    struct pipe_framebuffer_state fb;
    struct pipe_viewport_state viewport;
+   int width = surface->width;
+   int height = surface->height;
 
-   /* Framebuffer uses actual surface width/height
-    */
    memset(&fb, 0, sizeof fb);
-   fb.width  = surface->width;
-   fb.height = surface->height;
+   fb.width  = width;
+   fb.height = height;
    fb.nr_cbufs = 1;
    fb.cbufs[0] = surface;
    fb.zsbuf = 0;
 
-   /* Viewport sets us up to just touch the bit we're interested in:
-    */
    viewport.scale[0] =  width / 2.f;
    viewport.scale[1] =  height / 2.f;
    viewport.scale[2] =  1.0;
@@ -341,8 +337,6 @@ void renderer_bind_destination(struct xorg_renderer *r,
    viewport.translate[2] = 0.0;
    viewport.translate[3] = 0.0;
 
-   /* Constant buffer set up to match viewport dimensions:
-    */
    if (r->fb_width != width ||
        r->fb_height != height) 
    {

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to