summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakob Bornecrantz <[email protected]>2009-11-06 16:40:54 +0000
committerJakob Bornecrantz <[email protected]>2009-11-06 16:40:54 +0000
commit2eb6b0defe65b01a7ed1562c2f16c17125242c16 (patch)
tree5d5585169f9d18376cd852eb723029a011bd3887
parent215b49ae1e44cc9ec2fcf7b9ca3711c07bcc95bc (diff)
i965g: Fix texture blanket function
-rw-r--r--src/gallium/drivers/i965/brw_screen_texture.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/gallium/drivers/i965/brw_screen_texture.c b/src/gallium/drivers/i965/brw_screen_texture.c
index 911f4825f23..adc0aaa8a98 100644
--- a/src/gallium/drivers/i965/brw_screen_texture.c
+++ b/src/gallium/drivers/i965/brw_screen_texture.c
@@ -387,12 +387,14 @@ brw_texture_blanket_winsys_buffer(struct pipe_screen *screen,
enum brw_buffer_type buffer_type;
enum pipe_error ret;
- if (pf_is_compressed(templ->format))
+ if (templ->target != PIPE_TEXTURE_2D ||
+ templ->last_level != 0 ||
+ templ->depth[0] != 1)
return NULL;
- if (pf_is_depth_or_stencil(templ->format))
+ if (pf_is_compressed(templ->format))
return NULL;
-
+
tex = CALLOC_STRUCT(brw_texture);
if (!tex)
return NULL;
@@ -408,6 +410,9 @@ brw_texture_blanket_winsys_buffer(struct pipe_screen *screen,
if (1)
tex->tiling = BRW_TILING_NONE;
+ else if (bscreen->chipset.is_965 &&
+ pf_is_depth_or_stencil(templ->format))
+ tex->tiling = BRW_TILING_Y;
else
tex->tiling = BRW_TILING_X;
@@ -424,17 +429,13 @@ brw_texture_blanket_winsys_buffer(struct pipe_screen *screen,
tex->bo = buffer;
- if (tex->pitch != pitch)
- goto fail;
-
+ tex->pitch = pitch;
-/* fix this warning
+ /* fix this warning */
+#if 0
if (tex->size > buffer->size)
goto fail;
- */
-
- if (ret)
- goto fail;
+#endif
tex->ss.ss0.mipmap_layout_mode = BRW_SURFACE_MIPMAPLAYOUT_BELOW;
tex->ss.ss0.surface_type = translate_tex_target(tex->base.target);