Re: [Mesa-dev] [PATCH 11/13] i965/miptree: Refactor miptree_create
On Wed, Jun 13, 2018 at 09:44:14AM +0300, Pohjolainen, Topi wrote: > On Tue, Jun 12, 2018 at 12:22:03PM -0700, Nanley Chery wrote: > > Enable a future patch to create the r8stencil_mt in this function. > > --- > > 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 5e00da86d32..b078c759243 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > @@ -726,48 +726,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; > > + if (_mesa_is_format_color_format(format) && mt_fmt != format) > > + mt->etc_format = format; > > This relies on MESA_FORMAT_NONE == 0 and make_surface() to use calloc(). > Should we play safe and: > > else > mt->etc_format = MESA_FORMAT_NONE; > Sure, I plan to change it to this: mt->etc_format = (_mesa_is_format_color_format(format) && mt_fmt != format) ? format : MESA_FORMAT_NONE; v2: Explicitly set etc_format to MESA_FORMAT_NONE (Topi) > > > > if (!(flags & MIPTREE_CREATE_NO_AUX)) > >intel_miptree_choose_aux_usage(brw, mt); > > -- > > 2.17.0 > > > > ___ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 11/13] i965/miptree: Refactor miptree_create
On Tue, Jun 12, 2018 at 12:22:03PM -0700, Nanley Chery wrote: > Enable a future patch to create the r8stencil_mt in this function. > --- > 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 5e00da86d32..b078c759243 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -726,48 +726,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; > + if (_mesa_is_format_color_format(format) && mt_fmt != format) > + mt->etc_format = format; This relies on MESA_FORMAT_NONE == 0 and make_surface() to use calloc(). Should we play safe and: else mt->etc_format = MESA_FORMAT_NONE; > > if (!(flags & MIPTREE_CREATE_NO_AUX)) >intel_miptree_choose_aux_usage(brw, mt); > -- > 2.17.0 > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 11/13] i965/miptree: Refactor miptree_create
Enable a future patch to create the r8stencil_mt in this function. --- 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 5e00da86d32..b078c759243 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -726,48 +726,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; + if (_mesa_is_format_color_format(format) && mt_fmt != format) + mt->etc_format = format; if (!(flags & MIPTREE_CREATE_NO_AUX)) intel_miptree_choose_aux_usage(brw, mt); -- 2.17.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev