Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> Wouldn't be a bad idea to do this for all compressed formats. It doesn't really matter though since blorp will nuke the format the moment it cones into blorp_copy anyway.
On Nov 2, 2016 4:56 PM, "Nanley Chery" <nanleych...@gmail.com> wrote: > Such a surface is not possible on our hardware. Without this change, ISL > surface creation would fail with the next patch. > > Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> > --- > > This series requires the following extra patch, seemingly due to the > recent changes with blorp. > > src/intel/vulkan/anv_blorp.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c > index 87f242c..0feb5d5 100644 > --- a/src/intel/vulkan/anv_blorp.c > +++ b/src/intel/vulkan/anv_blorp.c > @@ -126,6 +126,22 @@ get_blorp_surf_for_anv_buffer(struct anv_device > *device, > struct blorp_surf *blorp_surf, > struct isl_surf *isl_surf) > { > + const struct isl_format_layout *fmtl = > + isl_format_get_layout(format); > + > + /* ASTC is the only format which doesn't support linear layouts. > + * Create an equivalently sized surface with ISL to get around this. > + */ > + if (fmtl->txc == ISL_TXC_ASTC) { > + /* Use an equivalently sized format */ > + format = ISL_FORMAT_R32G32B32A32_UINT; > + assert(fmtl->bpb == isl_format_get_layout(format)->bpb); > + > + /* Shrink the dimensions for the new format */ > + width = DIV_ROUND_UP(width, fmtl->bw); > + height = DIV_ROUND_UP(height, fmtl->bh); > + } > + > *blorp_surf = (struct blorp_surf) { > .surf = isl_surf, > .addr = { > -- > 2.10.2 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev