Hi Marek, This patch landed tagged for 17.2 stable and has been collected for 17.2.0-rc4.
However, it seems like it could be also interesting for 17.1.x (?) WDYT? Br. On Thu, 2017-08-10 at 22:33 +0200, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > This fixes corrupted shadows in Unigine Valley. > The corruption disappeared when I stopped setting IMG_DATA_FORMAT_24_8 > for depth. > > Cc: 17.2 <mesa-sta...@lists.freedesktop.org> > --- > src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 2 +- > src/gallium/drivers/radeonsi/si_state.c | 12 +----------- > 2 files changed, 2 insertions(+), 12 deletions(-) > > diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > index 42f977d..f8c99ff 100644 > --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c > @@ -1385,21 +1385,21 @@ static void tex_fetch_args( > z = coords[ref_pos]; > } > > /* TC-compatible HTILE promotes Z16 and Z24 to Z32_FLOAT, > * so the depth comparison value isn't clamped for Z16 and > * Z24 anymore. Do it manually here. > * > * It's unnecessary if the original texture format was > * Z32_FLOAT, but we don't know that here. > */ > - if (ctx->screen->b.chip_class == VI) > + if (ctx->screen->b.chip_class >= VI) > z = ac_build_clamp(&ctx->ac, z); > > address[count++] = z; > } > > /* Pack user derivatives */ > if (opcode == TGSI_OPCODE_TXD) { > int param, num_src_deriv_channels, num_dst_deriv_channels; > > switch (target) { > diff --git a/src/gallium/drivers/radeonsi/si_state.c > b/src/gallium/drivers/radeonsi/si_state.c > index 11dee49..2c413a4 100644 > --- a/src/gallium/drivers/radeonsi/si_state.c > +++ b/src/gallium/drivers/radeonsi/si_state.c > @@ -3170,28 +3170,27 @@ si_make_texture_descriptor(struct si_screen *screen, > enum pipe_texture_target target, > enum pipe_format pipe_format, > const unsigned char state_swizzle[4], > unsigned first_level, unsigned last_level, > unsigned first_layer, unsigned last_layer, > unsigned width, unsigned height, unsigned depth, > uint32_t *state, > uint32_t *fmask_state) > { > struct pipe_resource *res = &tex->resource.b.b; > - const struct util_format_description *base_desc, *desc; > + const struct util_format_description *desc; > unsigned char swizzle[4]; > int first_non_void; > unsigned num_format, data_format, type; > uint64_t va; > > desc = util_format_description(pipe_format); > - base_desc = util_format_description(res->format); > > if (desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS) { > const unsigned char swizzle_xxxx[4] = {0, 0, 0, 0}; > const unsigned char swizzle_yyyy[4] = {1, 1, 1, 1}; > const unsigned char swizzle_wwww[4] = {3, 3, 3, 3}; > > switch (pipe_format) { > case PIPE_FORMAT_S8_UINT_Z24_UNORM: > case PIPE_FORMAT_X32_S8X24_UINT: > case PIPE_FORMAT_X8Z24_UNORM: > @@ -3278,29 +3277,20 @@ si_make_texture_descriptor(struct si_screen *screen, > num_format = > V_008F14_IMG_NUM_FORMAT_USCALED; > } > } > } > > data_format = si_translate_texformat(&screen->b.b, pipe_format, desc, > first_non_void); > if (data_format == ~0) { > data_format = 0; > } > > - /* Enable clamping for UNORM depth formats promoted to Z32F. */ > - if (screen->b.chip_class >= GFX9 && > - util_format_has_depth(desc) && > - num_format == V_008F14_IMG_NUM_FORMAT_FLOAT && > - util_get_depth_format_type(base_desc) != UTIL_FORMAT_TYPE_FLOAT) { > - /* NUM_FORMAT=FLOAT and DATA_FORMAT=24_8 means "clamp to > [0,1]". */ > - data_format = V_008F14_IMG_DATA_FORMAT_24_8; > - } > - > /* S8 with Z32 HTILE needs a special format. */ > if (screen->b.chip_class >= GFX9 && > pipe_format == PIPE_FORMAT_S8_UINT && > tex->tc_compatible_htile) > data_format = V_008F14_IMG_DATA_FORMAT_S8_32; > > if (!sampler && > (res->target == PIPE_TEXTURE_CUBE || > res->target == PIPE_TEXTURE_CUBE_ARRAY || > (screen->b.chip_class <= VI && -- Br, Andres _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev