Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Wed, Jul 23, 2014 at 11:00 PM, Grigori Goronzy <g...@chown.ath.cx> wrote: > Passes corrected piglit test and should also handle signed vs unsigned > float correctly. > --- > src/gallium/drivers/radeonsi/si_state.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/src/gallium/drivers/radeonsi/si_state.c > b/src/gallium/drivers/radeonsi/si_state.c > index 3dec536..6b64e7c 100644 > --- a/src/gallium/drivers/radeonsi/si_state.c > +++ b/src/gallium/drivers/radeonsi/si_state.c > @@ -1102,6 +1102,22 @@ static uint32_t si_translate_texformat(struct > pipe_screen *screen, > } > } > > + if (desc->layout == UTIL_FORMAT_LAYOUT_BPTC) { > + if (!enable_s3tc) > + goto out_unknown; > + > + switch (format) { > + case PIPE_FORMAT_BPTC_RGBA_UNORM: > + case PIPE_FORMAT_BPTC_SRGBA_UNORM: > + return V_008F14_IMG_DATA_FORMAT_BC7; > + case PIPE_FORMAT_BPTC_RGB_FLOAT: > + case PIPE_FORMAT_BPTC_RGB_UFLOAT: > + return V_008F14_IMG_DATA_FORMAT_BC6; > + default: > + goto out_unknown; > + } > + } > + > if (desc->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED) { > switch (format) { > case PIPE_FORMAT_R8G8_B8G8_UNORM: > @@ -2467,12 +2483,16 @@ static struct pipe_sampler_view > *si_create_sampler_view(struct pipe_context *ctx > case PIPE_FORMAT_DXT1_SRGBA: > case PIPE_FORMAT_DXT3_SRGBA: > case PIPE_FORMAT_DXT5_SRGBA: > + case PIPE_FORMAT_BPTC_SRGBA_UNORM: > num_format = > V_008F14_IMG_NUM_FORMAT_SRGB; > break; > case PIPE_FORMAT_RGTC1_SNORM: > case PIPE_FORMAT_LATC1_SNORM: > case PIPE_FORMAT_RGTC2_SNORM: > case PIPE_FORMAT_LATC2_SNORM: > + /* implies float, so use SNORM/UNORM to > determine > + whether data is signed or not */ > + case PIPE_FORMAT_BPTC_RGB_FLOAT: > num_format = > V_008F14_IMG_NUM_FORMAT_SNORM; > break; > default: > -- > 1.8.3.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev