freedreno/a4xx: add independent blend function support
needed for MRT Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
054526e49a
commit
d6d7515bec
|
@ -84,11 +84,6 @@ fd4_blend_state_create(struct pipe_context *pctx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cso->independent_blend_enable) {
|
|
||||||
DBG("Unsupported! independent blend state");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
so = CALLOC_STRUCT(fd4_blend_stateobj);
|
so = CALLOC_STRUCT(fd4_blend_stateobj);
|
||||||
if (!so)
|
if (!so)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -96,7 +91,12 @@ fd4_blend_state_create(struct pipe_context *pctx,
|
||||||
so->base = *cso;
|
so->base = *cso;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(so->rb_mrt); i++) {
|
for (i = 0; i < ARRAY_SIZE(so->rb_mrt); i++) {
|
||||||
const struct pipe_rt_blend_state *rt = &cso->rt[i];
|
const struct pipe_rt_blend_state *rt;
|
||||||
|
|
||||||
|
if (cso->independent_blend_enable)
|
||||||
|
rt = &cso->rt[i];
|
||||||
|
else
|
||||||
|
rt = &cso->rt[0];
|
||||||
|
|
||||||
so->rb_mrt[i].blend_control =
|
so->rb_mrt[i].blend_control =
|
||||||
A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(fd_blend_factor(rt->rgb_src_factor)) |
|
A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(fd_blend_factor(rt->rgb_src_factor)) |
|
||||||
|
|
|
@ -178,11 +178,13 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||||
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
|
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
|
||||||
return is_a3xx(screen) || is_a4xx(screen);
|
return is_a3xx(screen) || is_a4xx(screen);
|
||||||
|
|
||||||
case PIPE_CAP_INDEP_BLEND_ENABLE:
|
|
||||||
case PIPE_CAP_INDEP_BLEND_FUNC:
|
|
||||||
case PIPE_CAP_DEPTH_CLIP_DISABLE:
|
case PIPE_CAP_DEPTH_CLIP_DISABLE:
|
||||||
return is_a3xx(screen);
|
return is_a3xx(screen);
|
||||||
|
|
||||||
|
case PIPE_CAP_INDEP_BLEND_ENABLE:
|
||||||
|
case PIPE_CAP_INDEP_BLEND_FUNC:
|
||||||
|
return is_a3xx(screen) || is_a4xx(screen);
|
||||||
|
|
||||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||||
return 256;
|
return 256;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue