Преглед на файлове

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>
tags/17.2-branchpoint
Ben Widawsky преди 8 години
родител
ревизия
aadd37298c
променени са 3 файла, в които са добавени 14 реда и са изтрити 10 реда
  1. 10
    6
      src/mesa/drivers/dri/i965/brw_context.c
  2. 3
    3
      src/mesa/drivers/dri/i965/intel_mipmap_tree.c
  3. 1
    1
      src/mesa/drivers/dri/i965/intel_mipmap_tree.h

+ 10
- 6
src/mesa/drivers/dri/i965/brw_context.c Целия файл

@@ -1504,9 +1504,12 @@ intel_process_dri2_buffer(struct brw_context *brw,
return;
}

intel_update_winsys_renderbuffer_miptree(brw, rb, bo,
drawable->w, drawable->h,
buffer->pitch);
if (!intel_update_winsys_renderbuffer_miptree(brw, rb, bo,
drawable->w, drawable->h,
buffer->pitch)) {
brw_bo_unreference(bo);
return;
}

if (_mesa_is_front_buffer_drawing(fb) &&
(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)
return;

intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo,
buffer->width, buffer->height,
buffer->pitch);
if (!intel_update_winsys_renderbuffer_miptree(intel, rb, buffer->bo,
buffer->width, buffer->height,
buffer->pitch))
return;

if (_mesa_is_front_buffer_drawing(fb) &&
buffer_type == __DRI_IMAGE_BUFFER_FRONT &&

+ 3
- 3
src/mesa/drivers/dri/i965/intel_mipmap_tree.c Целия файл

@@ -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
* irb->singlesample_mt).
*/
void
bool
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
struct intel_renderbuffer *irb,
struct brw_bo *bo,
@@ -1168,12 +1168,12 @@ intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
irb->mt = multisample_mt;
}
}
return;
return true;

fail:
intel_miptree_release(&irb->singlesample_mt);
intel_miptree_release(&irb->mt);
return;
return false;
}

struct intel_mipmap_tree*

+ 1
- 1
src/mesa/drivers/dri/i965/intel_mipmap_tree.h Целия файл

@@ -691,7 +691,7 @@ intel_miptree_create_for_dri_image(struct brw_context *brw,
__DRIimage *image,
GLenum target);

void
bool
intel_update_winsys_renderbuffer_miptree(struct brw_context *intel,
struct intel_renderbuffer *irb,
struct brw_bo *bo,

Loading…
Отказ
Запис