summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2015-01-08 12:23:46 -0800
committerJason Ekstrand <jason.ekstrand@intel.com>2015-01-22 10:21:07 -0800
commit404660e3c7bc6d13ae1d40185a02bfff6b956ac9 (patch)
tree99899675b6b237d319c769239db649dc6a5a4b11
parent3298b1235a303ad1fa261c52b22174430b2e90ff (diff)
downloadexternal_mesa3d-404660e3c7bc6d13ae1d40185a02bfff6b956ac9.zip
external_mesa3d-404660e3c7bc6d13ae1d40185a02bfff6b956ac9.tar.gz
external_mesa3d-404660e3c7bc6d13ae1d40185a02bfff6b956ac9.tar.bz2
i965/mipmap_tree: Add a depth parameter to create_for_bo
Reviewed-by: Neil Roberts <neil@linux.intel.com>
-rw-r--r--src/mesa/drivers/dri/i965/intel_fbo.c1
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.c9
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.h1
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_draw.c2
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_read.c2
-rw-r--r--src/mesa/drivers/dri/i965/intel_tex_image.c6
6 files changed, 14 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c
index d12f4ae..7bdf995 100644
--- a/src/mesa/drivers/dri/i965/intel_fbo.c
+++ b/src/mesa/drivers/dri/i965/intel_fbo.c
@@ -389,6 +389,7 @@ intel_image_target_renderbuffer_storage(struct gl_context *ctx,
image->offset,
image->width,
image->height,
+ 1,
image->pitch);
if (!irb->mt)
return;
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index d44df18..26e137d 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -671,10 +671,12 @@ intel_miptree_create_for_bo(struct brw_context *brw,
uint32_t offset,
uint32_t width,
uint32_t height,
+ uint32_t depth,
int pitch)
{
struct intel_mipmap_tree *mt;
uint32_t tiling, swizzle;
+ GLenum target;
drm_intel_bo_get_tiling(bo, &tiling, &swizzle);
@@ -689,9 +691,11 @@ intel_miptree_create_for_bo(struct brw_context *brw,
*/
assert(pitch >= 0);
- mt = intel_miptree_create_layout(brw, GL_TEXTURE_2D, format,
+ target = depth > 1 ? GL_TEXTURE_2D_ARRAY : GL_TEXTURE_2D;
+
+ mt = intel_miptree_create_layout(brw, target, format,
0, 0,
- width, height, 1,
+ width, height, depth,
true, 0, false);
if (!mt) {
free(mt);
@@ -742,6 +746,7 @@ intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
0,
width,
height,
+ 1,
pitch);
if (!singlesample_mt)
goto fail;
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
index 44ddc60..ee9cf1e 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
@@ -526,6 +526,7 @@ intel_miptree_create_for_bo(struct brw_context *brw,
uint32_t offset,
uint32_t width,
uint32_t height,
+ uint32_t depth,
int pitch);
void
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_draw.c b/src/mesa/drivers/dri/i965/intel_pixel_draw.c
index 8222f33..e0904de 100644
--- a/src/mesa/drivers/dri/i965/intel_pixel_draw.c
+++ b/src/mesa/drivers/dri/i965/intel_pixel_draw.c
@@ -110,7 +110,7 @@ do_blit_drawpixels(struct gl_context * ctx,
src_buffer,
irb->mt->format,
src_offset,
- width, height,
+ width, height, 1,
src_stride);
if (!pbo_mt)
return false;
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c
index beb3152..688a919 100644
--- a/src/mesa/drivers/dri/i965/intel_pixel_read.c
+++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c
@@ -142,7 +142,7 @@ do_blit_readpixels(struct gl_context * ctx,
dst_buffer,
irb->mt->format,
dst_offset,
- width, height,
+ width, height, 1,
dst_stride);
if (!intel_miptree_blit(brw,
diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c
index 855a6b4..b533dbd 100644
--- a/src/mesa/drivers/dri/i965/intel_tex_image.c
+++ b/src/mesa/drivers/dri/i965/intel_tex_image.c
@@ -143,7 +143,7 @@ try_pbo_upload(struct gl_context *ctx,
src_buffer,
intelImage->mt->format,
src_offset,
- image->Width, image->Height,
+ image->Width, image->Height, 1,
src_stride);
if (!pbo_mt)
return false;
@@ -236,7 +236,7 @@ intel_set_texture_image_bo(struct gl_context *ctx,
ctx->Driver.FreeTextureImageBuffer(ctx, image);
intel_image->mt = intel_miptree_create_for_bo(brw, bo, image->TexFormat,
- 0, width, height, pitch);
+ 0, width, height, 1, pitch);
if (intel_image->mt == NULL)
return;
intel_image->mt->target = target;
@@ -489,7 +489,7 @@ blit_texture_to_pbo(struct gl_context *ctx,
dst_buffer,
intelImage->mt->format,
dst_offset,
- texImage->Width, texImage->Height,
+ texImage->Width, texImage->Height, 1,
dst_stride);
if (!pbo_mt)