Merge branch 'mesa_7_5_branch' into mesa_7_6_branch
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_fbo.c
index f28efa33e9ac5f720a54e4368ef6bf98d420bc2a..d83b166742c781014cc842b756c9f13f6b103d83 100644 (file)
 #include "main/context.h"
 #include "main/texformat.h"
 #include "main/texrender.h"
+#include "drivers/common/meta.h"
 
 #include "radeon_common.h"
 #include "radeon_mipmap_tree.h"
 
-#define FILE_DEBUG_FLAG DEBUG_TEXTURE
+#define FILE_DEBUG_FLAG RADEON_TEXTURE
 #define DBG(...) do {                                           \
         if (RADEON_DEBUG & FILE_DEBUG_FLAG)                      \
                 _mesa_printf(__VA_ARGS__);                      \
@@ -177,30 +178,21 @@ radeon_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
                                              width, height);
    }
    else {
-     uint32_t size = width * height * cpp;
+     uint32_t size;
      uint32_t pitch = ((cpp * width + 63) & ~63) / cpp;
 
      fprintf(stderr,"Allocating %d x %d radeon RBO (pitch %d)\n", width,
          height, pitch);
 
+     size = pitch * height * cpp;
      rrb->pitch = pitch * cpp;
      rrb->cpp = cpp;
-#ifdef RADEON_DEBUG_BO
-     rrb->bo = radeon_bo_open(radeon->radeonScreen->bom,
-                             0,
-                             size,
-                             0,
-                             RADEON_GEM_DOMAIN_VRAM,
-                             0,
-                  "Radeon RBO");
-#else
      rrb->bo = radeon_bo_open(radeon->radeonScreen->bom,
                              0,
                              size,
                              0,
                              RADEON_GEM_DOMAIN_VRAM,
                              0);
-#endif /* RADEON_DEBUG_BO */
      rb->Width = width;
      rb->Height = height;
        return GL_TRUE;
@@ -291,7 +283,7 @@ radeon_create_renderbuffer(GLenum format, __DRIdrawablePrivate *driDrawPriv)
            rrb->base.RedBits = 8;
            rrb->base.GreenBits = 8;
            rrb->base.BlueBits = 8;
-           rrb->base.AlphaBits = 8;
+           rrb->base.AlphaBits = 0;
            rrb->base.DataType = GL_UNSIGNED_BYTE;
            break;
        case GL_RGBA8:
@@ -407,7 +399,7 @@ restart:
                rrb->cpp = 2;
                rrb->base._ActualFormat = GL_RGB5;
                rrb->base._BaseFormat = GL_RGB;
-               rrb->base.DataType = GL_UNSIGNED_SHORT;
+               rrb->base.DataType = GL_UNSIGNED_BYTE;
                DBG("Render to RGB5 texture OK\n");
        }
        else if (texImage->TexFormat == &_mesa_texformat_argb1555) {
@@ -581,14 +573,6 @@ radeon_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb)
 {
 }
 
-static void
-radeon_blit_framebuffer(GLcontext *ctx,
-                       GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
-                       GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
-                       GLbitfield mask, GLenum filter)
-{
-}
-
 void radeon_fbo_init(struct radeon_context *radeon)
 {
   radeon->glCtx->Driver.NewFramebuffer = radeon_new_framebuffer;
@@ -599,7 +583,7 @@ void radeon_fbo_init(struct radeon_context *radeon)
   radeon->glCtx->Driver.FinishRenderTexture = radeon_finish_render_texture;
   radeon->glCtx->Driver.ResizeBuffers = radeon_resize_buffers;
   radeon->glCtx->Driver.ValidateFramebuffer = radeon_validate_framebuffer;
-  radeon->glCtx->Driver.BlitFramebuffer = radeon_blit_framebuffer;
+  radeon->glCtx->Driver.BlitFramebuffer = _mesa_meta_blit_framebuffer;
 }