Since the renderbuffer tracks the miptree level and layer that it wraps, the 'tex_image' and 'zoffset' params are no longer needed to calculate the draw offsets.
Not only are they no longer needed, but their presence would prevent calculating the renderbuffer draw offsets in situations where there were no texture image. Such situations will occur during the HiZ meta-op and during scatter/gather of separate stencil textures. Signed-off-by: Chad Versace <chad.vers...@linux.intel.com> --- src/mesa/drivers/dri/intel/intel_fbo.c | 16 +++++++--------- src/mesa/drivers/dri/intel/intel_fbo.h | 4 +--- src/mesa/drivers/dri/intel/intel_tex_image.c | 4 ++-- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index ed58078..8e4f7a9 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -1043,17 +1043,15 @@ intel_wrap_texture(struct gl_context * ctx, } void -intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb, - struct intel_texture_image *intel_image, - int zoffset) +intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb) { unsigned int dst_x, dst_y; /* compute offset of the particular 2D image within the texture region */ - intel_miptree_get_image_offset(intel_image->mt, - intel_image->base.Base.Level, - intel_image->base.Base.Face, - zoffset, + intel_miptree_get_image_offset(irb->mt, + irb->mt_level, + 0, /* face, which we ignore */ + irb->mt_layer, &dst_x, &dst_y); irb->draw_x = dst_x; @@ -1162,7 +1160,7 @@ intel_render_texture(struct gl_context * ctx, att->Texture->Name, image->Width, image->Height, irb->Base.RefCount); - intel_renderbuffer_set_draw_offset(irb, intel_image, att->Zoffset); + intel_renderbuffer_set_draw_offset(irb); intel_image->used_as_render_target = true; #ifndef I915 @@ -1188,7 +1186,7 @@ intel_render_texture(struct gl_context * ctx, true); intel_miptree_copy_teximage(intel, intel_image, new_mt); - intel_renderbuffer_set_draw_offset(irb, intel_image, att->Zoffset); + intel_renderbuffer_set_draw_offset(irb); intel_miptree_reference(&irb->mt, intel_image->mt); intel_miptree_release(&new_mt); diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h index 3a21374..6da370d 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.h +++ b/src/mesa/drivers/dri/intel/intel_fbo.h @@ -175,9 +175,7 @@ extern void intel_flip_renderbuffers(struct gl_framebuffer *fb); void -intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb, - struct intel_texture_image *intel_image, - int zoffset); +intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb); uint32_t intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb, diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index 90e4090..024490a 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -316,8 +316,8 @@ intel_tex_image_s8z24_create_renderbuffers(struct intel_context *intel, return false; } - intel_renderbuffer_set_draw_offset(idrb, image, 0); - intel_renderbuffer_set_draw_offset(isrb, image, 0); + intel_renderbuffer_set_draw_offset(idrb); + intel_renderbuffer_set_draw_offset(isrb); _mesa_reference_renderbuffer(&image->depth_rb, drb); _mesa_reference_renderbuffer(&image->stencil_rb, srb); -- 1.7.7.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev