intel/decoder: Make get_state_size take a full 64-bit address and a base
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_span.c
index 6a7df730a19f506d1a7130222e839841dc2485d0..fa5b2d98ff41e9f3816e1deeb36b097a55280d7e 100644 (file)
@@ -36,7 +36,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  * Authors:
  *   Kevin E. Martin <martin@valinux.com>
  *   Gareth Hughes <gareth@valinux.com>
- *   Keith Whitwell <keith@tungstengraphics.com>
+ *   Keith Whitwell <keithw@vmware.com>
  *
  */
 
@@ -44,6 +44,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "main/texformat.h"
 #include "main/renderbuffer.h"
 #include "main/samplerobj.h"
+#include "main/framebuffer.h"
 #include "swrast/swrast.h"
 #include "swrast/s_renderbuffer.h"
 
@@ -52,7 +53,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 static void
-radeon_renderbuffer_map(struct gl_context *ctx, struct gl_renderbuffer *rb)
+radeon_renderbuffer_map(struct gl_context *ctx,
+                       struct gl_renderbuffer *rb,
+                       bool flip_y)
 {
        struct radeon_renderbuffer *rrb = radeon_renderbuffer(rb);
        GLubyte *map;
@@ -63,7 +66,7 @@ radeon_renderbuffer_map(struct gl_context *ctx, struct gl_renderbuffer *rb)
 
        ctx->Driver.MapRenderbuffer(ctx, rb, 0, 0, rb->Width, rb->Height,
                                    GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
-                                   &map, &stride);
+                                   &map, &stride, flip_y);
 
        rrb->base.Map = map;
        rrb->base.RowStride = stride;
@@ -95,9 +98,11 @@ radeon_map_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
 
        /* check for render to textures */
        for (i = 0; i < BUFFER_COUNT; i++)
-               radeon_renderbuffer_map(ctx, fb->Attachment[i].Renderbuffer);
+               radeon_renderbuffer_map(ctx, fb->Attachment[i].Renderbuffer,
+                       fb->FlipY);
 
-       radeon_check_front_buffer_rendering(ctx);
+        if (_mesa_is_front_buffer_drawing(fb))
+               RADEON_CONTEXT(ctx)->front_buffer_dirty = true;
 }
 
 static void
@@ -113,7 +118,8 @@ radeon_unmap_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
        for (i = 0; i < BUFFER_COUNT; i++)
                radeon_renderbuffer_unmap(ctx, fb->Attachment[i].Renderbuffer);
 
-       radeon_check_front_buffer_rendering(ctx);
+        if (_mesa_is_front_buffer_drawing(fb))
+               RADEON_CONTEXT(ctx)->front_buffer_dirty = true;
 }
 
 static void radeonSpanRenderStart(struct gl_context * ctx)