summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_screen.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-05-06 10:51:08 -0700
committerKeith Packard <keithp@keithp.com>2008-05-06 10:51:08 -0700
commit537bbe6dec780f6f85838fe7e6036579c509f8a6 (patch)
tree7dc9de58092c619a32d7b14d8ab5b575812c8a70 /src/mesa/drivers/dri/intel/intel_screen.c
parentdf4b49c2cedde60c02f869977ee426f280b2985b (diff)
[intel-GEM] Add tiling support to swrast.
Accessing tiled surfaces without using the fence registers requires that software deal with the address swizzling itself.
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_screen.c')
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 356e50e726..a243324a39 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -524,20 +524,23 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
/* setup the hardware-based renderbuffers */
{
- intel_fb->color_rb[0] = intel_create_renderbuffer(rgbFormat);
+ intel_fb->color_rb[0] = intel_create_renderbuffer(rgbFormat,
+ screen->ttm ? screen->front.tiled : INTEL_TILE_NONE);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_FRONT_LEFT,
&intel_fb->color_rb[0]->Base);
}
if (mesaVis->doubleBufferMode) {
- intel_fb->color_rb[1] = intel_create_renderbuffer(rgbFormat);
+ intel_fb->color_rb[1] = intel_create_renderbuffer(rgbFormat,
+ screen->ttm ? screen->back.tiled : INTEL_TILE_NONE);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_BACK_LEFT,
&intel_fb->color_rb[1]->Base);
if (screen->third.handle) {
struct gl_renderbuffer *tmp_rb = NULL;
- intel_fb->color_rb[2] = intel_create_renderbuffer(rgbFormat);
+ intel_fb->color_rb[2] = intel_create_renderbuffer(rgbFormat,
+ screen->ttm ? screen->third.tiled : INTEL_TILE_NONE);
_mesa_reference_renderbuffer(&tmp_rb, &intel_fb->color_rb[2]->Base);
}
}
@@ -546,7 +549,8 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
if (mesaVis->stencilBits == 8) {
/* combined depth/stencil buffer */
struct intel_renderbuffer *depthStencilRb
- = intel_create_renderbuffer(GL_DEPTH24_STENCIL8_EXT);
+ = intel_create_renderbuffer(GL_DEPTH24_STENCIL8_EXT,
+ screen->ttm ? screen->depth.tiled : INTEL_TILE_NONE);
/* note: bind RB to two attachment points */
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH,
&depthStencilRb->Base);
@@ -554,7 +558,8 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
&depthStencilRb->Base);
} else {
struct intel_renderbuffer *depthRb
- = intel_create_renderbuffer(GL_DEPTH_COMPONENT24);
+ = intel_create_renderbuffer(GL_DEPTH_COMPONENT24,
+ screen->ttm ? screen->depth.tiled : INTEL_TILE_NONE);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH,
&depthRb->Base);
}
@@ -562,7 +567,8 @@ intelCreateBuffer(__DRIscreenPrivate * driScrnPriv,
else if (mesaVis->depthBits == 16) {
/* just 16-bit depth buffer, no hw stencil */
struct intel_renderbuffer *depthRb
- = intel_create_renderbuffer(GL_DEPTH_COMPONENT16);
+ = intel_create_renderbuffer(GL_DEPTH_COMPONENT16,
+ screen->ttm ? screen->depth.tiled : INTEL_TILE_NONE);
_mesa_add_renderbuffer(&intel_fb->Base, BUFFER_DEPTH, &depthRb->Base);
}