diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index 97c370c5d51..a690eca4e22 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -130,9 +130,13 @@ st_convert_sampler(const struct st_context *st, } else { st_translate_color(&sampler->border_color, texBaseFormat, is_integer); - if (st->use_format_with_border_color) - sampler->border_color_format = st_get_sampler_view_format(st, texobj, - msamp->Attrib.sRGBDecode == GL_SKIP_DECODE_EXT); + if (st->use_format_with_border_color) { + bool srgb_skip_decode = false; + + if (!ignore_srgb_decode && msamp->Attrib.sRGBDecode == GL_SKIP_DECODE_EXT) + srgb_skip_decode = true; + sampler->border_color_format = st_get_sampler_view_format(st, texobj, srgb_skip_decode); + } } sampler->border_color_is_integer = is_integer; }