i965/miptree: Add a return for updating of winsys
There is nothing particularly useful to do currently if the update fails, but there is no point carrying on either. As a result, this has a behavior change. v2: Make the return type a bool (Topi) v3: Don't leak the bo if update_winsys_renderbuffer fails. (Jason) Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> (v2) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Chad Versace <chadversary@chromium.org>
This commit is contained in:

committed by
Jason Ekstrand

parent
30cfed57ce
commit
aadd37298c
@@ -1504,9 +1504,12 @@ intel_process_dri2_buffer(struct brw_context *brw,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
intel_update_winsys_renderbuffer_miptree(brw, rb, bo,
|
if (!intel_update_winsys_renderbuffer_miptree(brw, rb, bo,
|
||||||
drawable->w, drawable->h,
|
drawable->w, drawable->h,
|
||||||
buffer->pitch);
|
buffer->pitch)) {
|
||||||
|
brw_bo_unreference(bo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (_mesa_is_front_buffer_drawing(fb) &&
|
if (_mesa_is_front_buffer_drawing(fb) &&
|
||||||
(buffer->attachment == __DRI_BUFFER_FRONT_LEFT ||
|
(buffer->attachment == __DRI_BUFFER_FRONT_LEFT ||
|
||||||
@@ -1562,9 +1565,10 @@ intel_update_image_buffer(struct brw_context *intel,
|
|||||||
if (last_mt && last_mt->bo == buffer->bo)
|
if (last_mt && last_mt->bo == buffer->bo)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo,
|
if (!intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo,
|
||||||
buffer->width, buffer->height,
|
buffer->width, buffer->height,
|
||||||
buffer->pitch);
|
buffer->pitch))
|
||||||
|
return;
|
||||||
|
|
||||||
if (_mesa_is_front_buffer_drawing(fb) &&
|
if (_mesa_is_front_buffer_drawing(fb) &&
|
||||||
buffer_type == __DRI_IMAGE_BUFFER_FRONT &&
|
buffer_type == __DRI_IMAGE_BUFFER_FRONT &&
|
||||||
|
@@ -1112,7 +1112,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
|
|||||||
* that will contain the actual rendering (which is lazily resolved to
|
* that will contain the actual rendering (which is lazily resolved to
|
||||||
* irb->singlesample_mt).
|
* irb->singlesample_mt).
|
||||||
*/
|
*/
|
||||||
void
|
bool
|
||||||
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
|
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
|
||||||
struct intel_renderbuffer *irb,
|
struct intel_renderbuffer *irb,
|
||||||
struct brw_bo *bo,
|
struct brw_bo *bo,
|
||||||
@@ -1168,12 +1168,12 @@ intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
|
|||||||
irb->mt = multisample_mt;
|
irb->mt = multisample_mt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return true;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
intel_miptree_release(&irb->singlesample_mt);
|
intel_miptree_release(&irb->singlesample_mt);
|
||||||
intel_miptree_release(&irb->mt);
|
intel_miptree_release(&irb->mt);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct intel_mipmap_tree*
|
struct intel_mipmap_tree*
|
||||||
|
@@ -691,7 +691,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
|
|||||||
__DRIimage *image,
|
__DRIimage *image,
|
||||||
GLenum target);
|
GLenum target);
|
||||||
|
|
||||||
void
|
bool
|
||||||
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
|
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
|
||||||
struct intel_renderbuffer *irb,
|
struct intel_renderbuffer *irb,
|
||||||
struct brw_bo *bo,
|
struct brw_bo *bo,
|
||||||
|
Reference in New Issue
Block a user