summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2009-03-21 14:31:14 +1000
committerDave Airlie <airlied@linux.ie>2009-03-21 14:31:14 +1000
commitffde891a0390a915716087ca7d99b3ddf7f1ef89 (patch)
treece9bc8b1b3b7986e4af3b570375ab176628a5e0b /src
parent22443d5cc036ddebfd97ade17711cd1306721754 (diff)
radeon: fix up span function setting
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_fbo.c12
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_span.c8
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_span.h1
3 files changed, 15 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c
index 01978ec293..0e3ac9c405 100644
--- a/src/mesa/drivers/dri/radeon/radeon_fbo.c
+++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c
@@ -180,7 +180,14 @@ radeon_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
}
else {
/* TODO Alloc a BO */
-
+ uint32_t size = width * height * cpp;
+
+ rrb->bo = radeon_bo_open(radeon->radeonScreen->bom,
+ 0,
+ size,
+ 0,
+ RADEON_GEM_DOMAIN_VRAM,
+ 0);
// rrb->bo = radeon_bo_open();
rb->Width = width;
rb->Height = height;
@@ -313,8 +320,6 @@ radeon_create_renderbuffer(GLenum format, __DRIdrawablePrivate *driDrawPriv)
rrb->base.AllocStorage = radeon_alloc_window_storage;
rrb->base.GetPointer = radeon_get_pointer;
- radeonSetSpanFunctions(rrb);
-
rrb->bo = NULL;
return &rrb->base;
}
@@ -338,7 +343,6 @@ radeon_new_renderbuffer(GLcontext * ctx, GLuint name)
return &rrb->base;
}
-
static void
radeon_bind_framebuffer(GLcontext * ctx, GLenum target,
struct gl_framebuffer *fb, struct gl_framebuffer *fbread)
diff --git a/src/mesa/drivers/dri/radeon/radeon_span.c b/src/mesa/drivers/dri/radeon/radeon_span.c
index 49ec2c378e..503a1e0b86 100644
--- a/src/mesa/drivers/dri/radeon/radeon_span.c
+++ b/src/mesa/drivers/dri/radeon/radeon_span.c
@@ -49,6 +49,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define DBG 0
+static void radeonSetSpanFunctions(struct radeon_renderbuffer *rrb);
+
static GLubyte *radeon_ptr32(const struct radeon_renderbuffer * rrb,
GLint x, GLint y)
{
@@ -366,6 +368,8 @@ static void map_buffer(struct gl_renderbuffer *rb, GLboolean write)
__FUNCTION__, r);
}
}
+
+ radeonSetSpanFunctions(rrb);
}
static void unmap_buffer(struct gl_renderbuffer *rb)
@@ -375,6 +379,8 @@ static void unmap_buffer(struct gl_renderbuffer *rb)
if (rrb->bo) {
radeon_bo_unmap(rrb->bo);
}
+ rb->GetRow = NULL;
+ rb->PutRow = NULL;
}
static void radeonSpanRenderStart(GLcontext * ctx)
@@ -446,7 +452,7 @@ void radeonInitSpanFuncs(GLcontext * ctx)
/**
* Plug in the Get/Put routines for the given driRenderbuffer.
*/
-void radeonSetSpanFunctions(struct radeon_renderbuffer *rrb)
+static void radeonSetSpanFunctions(struct radeon_renderbuffer *rrb)
{
if (rrb->base.InternalFormat == GL_RGB5) {
radeonInitPointers_RGB565(&rrb->base);
diff --git a/src/mesa/drivers/dri/radeon/radeon_span.h b/src/mesa/drivers/dri/radeon/radeon_span.h
index dd44ab517a..ea6a2e7fb4 100644
--- a/src/mesa/drivers/dri/radeon/radeon_span.h
+++ b/src/mesa/drivers/dri/radeon/radeon_span.h
@@ -44,5 +44,4 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
extern void radeonInitSpanFuncs(GLcontext * ctx);
-extern void radeonSetSpanFunctions(struct radeon_renderbuffer *rrb);
#endif