Module: Mesa Branch: master Commit: ffac81fa5c26d1c1a42f52d3f938ba5edd48cf53 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffac81fa5c26d1c1a42f52d3f938ba5edd48cf53
Author: Nanley Chery <[email protected]> Date: Mon Jun 11 11:01:52 2018 -0700 i965/miptree: Refactor miptree_create Enable a future patch to create the r8stencil_mt in this function. v2: Explicitly set etc_format to MESA_FORMAT_NONE (Topi). Reviewed-by: Topi Pohjolainen <[email protected]> --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 48 +++++++-------------------- 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index b0ca75d3c5..820c1d8593 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -722,48 +722,24 @@ miptree_create(struct brw_context *brw, intel_depth_format_for_depthstencil_format(format); } - if (format == MESA_FORMAT_S_UINT8) - return make_surface(brw, target, mt_fmt, first_level, last_level, - width0, height0, depth0, num_samples, - tiling_flags, - mt_surf_usage(mt_fmt), - alloc_flags, - 0, - NULL); + struct intel_mipmap_tree *mt = + make_surface(brw, target, mt_fmt, first_level, last_level, + width0, height0, depth0, num_samples, + tiling_flags, mt_surf_usage(mt_fmt), + alloc_flags, 0, NULL); - const GLenum base_format = _mesa_get_format_base_format(format); - if ((base_format == GL_DEPTH_COMPONENT || - base_format == GL_DEPTH_STENCIL)) { - struct intel_mipmap_tree *mt = make_surface( - brw, target, mt_fmt, - first_level, last_level, - width0, height0, depth0, num_samples, tiling_flags, - mt_surf_usage(mt_fmt), - alloc_flags, 0, NULL); - - if (needs_separate_stencil(brw, mt, format) && - !make_separate_stencil_surface(brw, mt)) { + if (mt == NULL) + return NULL; + + if (needs_separate_stencil(brw, mt, format)) { + if (!make_separate_stencil_surface(brw, mt)) { intel_miptree_release(&mt); return NULL; } - - if (!(flags & MIPTREE_CREATE_NO_AUX)) - intel_miptree_choose_aux_usage(brw, mt); - - return mt; } - struct intel_mipmap_tree *mt = make_surface( - brw, target, mt_fmt, - first_level, last_level, - width0, height0, depth0, - num_samples, tiling_flags, - mt_surf_usage(mt_fmt), - alloc_flags, 0, NULL); - if (!mt) - return NULL; - - mt->etc_format = (mt_fmt != format) ? format : MESA_FORMAT_NONE; + mt->etc_format = (_mesa_is_format_color_format(format) && mt_fmt != format) ? + format : MESA_FORMAT_NONE; if (!(flags & MIPTREE_CREATE_NO_AUX)) intel_miptree_choose_aux_usage(brw, mt); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
