st/xorg: Better checks for unsupported component alpha pictures.
This commit is contained in:
parent
69c7fc128c
commit
07f107467e
|
@ -305,15 +305,15 @@ boolean xorg_composite_accelerated(int op,
|
||||||
unsigned accel_ops_count =
|
unsigned accel_ops_count =
|
||||||
sizeof(accelerated_ops)/sizeof(struct acceleration_info);
|
sizeof(accelerated_ops)/sizeof(struct acceleration_info);
|
||||||
|
|
||||||
if (pSrcPicture) {
|
|
||||||
/* component alpha not supported */
|
|
||||||
if (pSrcPicture->componentAlpha)
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < accel_ops_count; ++i) {
|
for (i = 0; i < accel_ops_count; ++i) {
|
||||||
if (op == accelerated_ops[i].op) {
|
if (op == accelerated_ops[i].op) {
|
||||||
if (pMaskPicture && !accelerated_ops[i].with_mask)
|
/* Check for unsupported component alpha */
|
||||||
|
if ((pSrcPicture->componentAlpha &&
|
||||||
|
!accelerated_ops[i].component_alpha) ||
|
||||||
|
(pMaskPicture &&
|
||||||
|
(!accelerated_ops[i].with_mask ||
|
||||||
|
(pMaskPicture->componentAlpha &&
|
||||||
|
!accelerated_ops[i].component_alpha))))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -390,14 +390,9 @@ static void
|
||||||
bind_blend_state(struct exa_context *exa, int op,
|
bind_blend_state(struct exa_context *exa, int op,
|
||||||
PicturePtr pSrcPicture, PicturePtr pMaskPicture)
|
PicturePtr pSrcPicture, PicturePtr pMaskPicture)
|
||||||
{
|
{
|
||||||
boolean component_alpha = (pSrcPicture) ?
|
|
||||||
pSrcPicture->componentAlpha : FALSE;
|
|
||||||
struct xorg_composite_blend blend_opt;
|
struct xorg_composite_blend blend_opt;
|
||||||
struct pipe_blend_state blend;
|
struct pipe_blend_state blend;
|
||||||
|
|
||||||
if (component_alpha) {
|
|
||||||
op = PictOpOver;
|
|
||||||
}
|
|
||||||
blend_opt = blend_for_op(op);
|
blend_opt = blend_for_op(op);
|
||||||
|
|
||||||
memset(&blend, 0, sizeof(struct pipe_blend_state));
|
memset(&blend, 0, sizeof(struct pipe_blend_state));
|
||||||
|
|
Loading…
Reference in New Issue