From: Marek Olšák Date: Sun, 30 Aug 2015 11:17:15 +0000 (+0200) Subject: radeonsi: use all built-in border colors X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5e2619ef3078fe4f9c3e0780ee520fbfb727ee54;p=mesa.git radeonsi: use all built-in border colors Reviewed-by: Alex Deucher Acked-by: Christian König --- diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 7f4e846cd16..52fa8fec033 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -2709,10 +2709,25 @@ static void *si_create_sampler_state(struct pipe_context *ctx, return NULL; } - if (sampler_state_needs_border_color(state)) - border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_REGISTER; - else + if (!sampler_state_needs_border_color(state)) + border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_TRANS_BLACK; + else if (state->border_color.f[0] == 0 && + state->border_color.f[1] == 0 && + state->border_color.f[2] == 0 && + state->border_color.f[3] == 0) border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_TRANS_BLACK; + else if (state->border_color.f[0] == 0 && + state->border_color.f[1] == 0 && + state->border_color.f[2] == 0 && + state->border_color.f[3] == 1) + border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_BLACK; + else if (state->border_color.f[0] == 1 && + state->border_color.f[1] == 1 && + state->border_color.f[2] == 1 && + state->border_color.f[3] == 1) + border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_WHITE; + else + border_color_type = V_008F3C_SQ_TEX_BORDER_COLOR_REGISTER; rstate->val[0] = (S_008F30_CLAMP_X(si_tex_wrap(state->wrap_s)) | S_008F30_CLAMP_Y(si_tex_wrap(state->wrap_t)) |