Tested-by: Mark Janes <mark.a.ja...@intel.com> Jason Ekstrand <ja...@jlekstrand.net> writes:
> Cc: "13.0 17.0" <mesa-sta...@lists.freedesktop.org> > --- > src/intel/blorp/blorp_clear.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c > index afc505d..f8ac6dc 100644 > --- a/src/intel/blorp/blorp_clear.c > +++ b/src/intel/blorp/blorp_clear.c > @@ -349,6 +349,25 @@ blorp_clear(struct blorp_batch *batch, > if (format == ISL_FORMAT_R9G9B9E5_SHAREDEXP) { > clear_color.u32[0] = float3_to_rgb9e5(clear_color.f32); > format = ISL_FORMAT_R32_UINT; > + } else if (format == ISL_FORMAT_A4B4G4R4_UNORM) { > + /* Broadwell and earlier cannot render to this format so we need to > work > + * around it by swapping the colors around and using B4G4R4A4 instead. > + */ > + > + /* First, we apply the swizzle. */ > + union isl_color_value old; > + old.u32[swizzle.r - ISL_CHANNEL_SELECT_RED] = clear_color.u32[0]; > + old.u32[swizzle.g - ISL_CHANNEL_SELECT_RED] = clear_color.u32[1]; > + old.u32[swizzle.b - ISL_CHANNEL_SELECT_RED] = clear_color.u32[2]; > + old.u32[swizzle.a - ISL_CHANNEL_SELECT_RED] = clear_color.u32[3]; > + swizzle = ISL_SWIZZLE_IDENTITY; > + > + /* Now we re-order for the new format */ > + clear_color.u32[0] = old.u32[1]; > + clear_color.u32[1] = old.u32[2]; > + clear_color.u32[2] = old.u32[3]; > + clear_color.u32[3] = old.u32[0]; > + format = ISL_FORMAT_B4G4R4A4_UNORM; > } > > memcpy(¶ms.wm_inputs.clear_color, clear_color.f32, sizeof(float) * 4); > -- > 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