mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 12:40:23 +01:00
i965: Fix miptree layout for EGLImage-based renderbuffers
When glEGLImageTargetRenderbufferStorageOES() was given an EGLImage
created from the non-base slice of a miptree,
intel_image_target_renderbuffer_storage() forgot to apply the intra-tile
offsets __DRIimage::tile_x,tile_y to the miptree layout.
This patch fixes the problem with a quick hack suitable for
cherry-picking. A proper fix requires more thorough plumbing in
intel_miptree_create_layout() and brw_tex_layout().
Patch 1/2 that fixes test
'dEQP-EGL.functional.image.create.gles2_cubemap_*'.
Reported-by: Haixia Shi <hshi@chromium.org>
Diagnosed-by: Haixia Shi <hshi@chromium.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
Change-Id: I8a64b0048a1ee9e714ebb3f33fffd8334036450b
(cherry picked from commit c82f99e883)
This commit is contained in:
parent
9aa4e400d2
commit
6898eb5859
1 changed files with 13 additions and 0 deletions
|
|
@ -374,6 +374,19 @@ intel_image_target_renderbuffer_storage(struct gl_context *ctx,
|
|||
if (!irb->mt)
|
||||
return;
|
||||
|
||||
/* Adjust the miptree's upper-left coordinate.
|
||||
*
|
||||
* FIXME: Adjusting the miptree's layout outside of
|
||||
* intel_miptree_create_layout() is fragile. Plumb the adjustment through
|
||||
* intel_miptree_create_layout() and brw_tex_layout().
|
||||
*/
|
||||
irb->mt->level[0].level_x = image->tile_x;
|
||||
irb->mt->level[0].level_y = image->tile_y;
|
||||
irb->mt->level[0].slice[0].x_offset = image->tile_x;
|
||||
irb->mt->level[0].slice[0].y_offset = image->tile_y;
|
||||
irb->mt->total_width += image->tile_x;
|
||||
irb->mt->total_height += image->tile_y;
|
||||
|
||||
rb->InternalFormat = image->internal_format;
|
||||
rb->Width = image->width;
|
||||
rb->Height = image->height;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue