summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2011-04-25 09:53:22 -0400
committerKristian Høgsberg <[email protected]>2011-04-26 13:26:34 -0400
commit5dfba09d49ccec2655e4d22ef6f46b9c67862bc9 (patch)
tree73031f0fabdaf9175d457e85941537bbb494ec0a /src
parent7363088f9f9558b2bad3ac6da48947514a8cd790 (diff)
intel: Use tiling for dri2AllocateBuffer implementation
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index bfbfec5f93e..7de0d12beba 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -672,12 +672,21 @@ intelAllocateBuffer(__DRIscreen *screen,
{
struct intel_buffer *intelBuffer;
struct intel_screen *intelScreen = screen->private;
+ uint32_t tiling;
intelBuffer = CALLOC(sizeof *intelBuffer);
if (intelBuffer == NULL)
return NULL;
- intelBuffer->region = intel_region_alloc(intelScreen, I915_TILING_NONE,
+ if ((attachment == __DRI_BUFFER_DEPTH ||
+ attachment == __DRI_BUFFER_STENCIL ||
+ attachment == __DRI_BUFFER_DEPTH_STENCIL) &&
+ intelScreen->gen >= 4)
+ tiling = I915_TILING_Y;
+ else
+ tiling = I915_TILING_X;
+
+ intelBuffer->region = intel_region_alloc(intelScreen, tiling,
format / 8, width, height, GL_TRUE);
if (intelBuffer->region == NULL) {