On Tue, Sep 27, 2016 at 09:22:00AM -0700, Jason Ekstrand wrote: > Compressed 1-D textures are not well-defined thing in either GL or Vulkan. > However, auxiliary surfaces are treated as compressed textures in ISL and > we can do HiZ and CCS with 1-D so we need to be able to create them. In > order to prevent actually using them (the docs say no), we assert in the > state setup code. > > Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net> > --- > src/intel/isl/isl.c | 5 ++--- > src/intel/isl/isl_surface_state.c | 9 +++++++++ > 2 files changed, 11 insertions(+), 3 deletions(-)
This patch is Reviewed-by: Nanley Chery <nanley.g.ch...@intel.com> > > diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c > index a75fddf..185984d 100644 > --- a/src/intel/isl/isl.c > +++ b/src/intel/isl/isl.c > @@ -518,7 +518,6 @@ isl_calc_phys_level0_extent_sa(const struct isl_device > *dev, > assert(info->height == 1); > assert(info->depth == 1); > assert(info->samples == 1); > - assert(!isl_format_is_compressed(info->format)); > > switch (dim_layout) { > case ISL_DIM_LAYOUT_GEN4_3D: > @@ -527,8 +526,8 @@ isl_calc_phys_level0_extent_sa(const struct isl_device > *dev, > case ISL_DIM_LAYOUT_GEN9_1D: > case ISL_DIM_LAYOUT_GEN4_2D: > *phys_level0_sa = (struct isl_extent4d) { > - .w = info->width, > - .h = 1, > + .w = isl_align_npot(info->width, fmtl->bw), > + .h = fmtl->bh, > .d = 1, > .a = info->array_len, > }; > diff --git a/src/intel/isl/isl_surface_state.c > b/src/intel/isl/isl_surface_state.c > index 979e140..210308c 100644 > --- a/src/intel/isl/isl_surface_state.c > +++ b/src/intel/isl/isl_surface_state.c > @@ -215,6 +215,15 @@ isl_genX(surf_fill_state_s)(const struct isl_device > *dev, void *state, > assert(isl_format_supports_rendering(dev->info, info->view->format)); > else if (info->view->usage & ISL_SURF_USAGE_TEXTURE_BIT) > assert(isl_format_supports_sampling(dev->info, info->view->format)); > + > + /* From the Sky Lake PRM Vol. 2d, RENDER_SURFACE_STATE::SurfaceFormat > + * > + * This field cannot be a compressed (BC*, DXT*, FXT*, ETC*, EAC*) > + * format if the Surface Type is SURFTYPE_1D > + */ > + if (info->surf->dim == ISL_SURF_DIM_1D) > + assert(!isl_format_is_compressed(info->view->format)); > + > s.SurfaceFormat = info->view->format; > > #if GEN_IS_HASWELL > -- > 2.5.0.400.gff86faf > > _______________________________________________ > 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