Closed Bug 901722 Opened 7 years ago Closed 7 years ago

Support component alpha layers with d3d11 compositor

Categories

(Core :: Graphics: Layers, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26

People

(Reporter: nrc, Assigned: nrc)

References

Details

Attachments

(4 files, 2 obsolete files)

Requires making Azure and component alpha work together in ThebesLayerBuffer. Also we need to not have component alpha for Metro.
Attachment #786025 - Flags: review?(matt.woodrow)
Attachment #786760 - Flags: review?(bas)
Depends on: 902329
Comment on attachment 786760 [details] [diff] [review]
component alpha for d3d11 compositor

Review of attachment 786760 [details] [diff] [review]:
-----------------------------------------------------------------

D3D10 should use a single pass and use DualOutput blending. See also the current D3D10 code. This requires a little adjustment to the LayerManagerComposite, obviously.

We should also actively investigate dropping component alpha in all the hard cases. (Or maybe everywhere as IE has done)
Attachment #786760 - Flags: review?(bas) → review-
Attachment #786025 - Flags: review?(matt.woodrow) → review+
Attached patch on pass component alpha (obsolete) — Splinter Review
Attachment #786760 - Attachment is obsolete: true
Attachment #787224 - Flags: review?(bas)
Comment on attachment 787224 [details] [diff] [review]
on pass component alpha

Review of attachment 787224 [details] [diff] [review]:
-----------------------------------------------------------------

There we go!

::: gfx/layers/d3d9/CompositorD3D9.cpp
@@ -376,5 @@
>        device()->SetTexture(0, sourceOnBlack->GetD3D9Texture());
>        device()->SetTexture(1, sourceOnWhite->GetD3D9Texture());
>        device()->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
>        device()->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);
> -      device()->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE);

Not sure why this particular change is in this patch, probably shouldn't be :-).
Attachment #787224 - Flags: review?(bas) → review+
(In reply to Bas Schouten (:bas.schouten) from comment #5)
> Comment on attachment 787224 [details] [diff] [review]
> on pass component alpha
> 
> Review of attachment 787224 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> There we go!
> 
> ::: gfx/layers/d3d9/CompositorD3D9.cpp
> @@ -376,5 @@
> >        device()->SetTexture(0, sourceOnBlack->GetD3D9Texture());
> >        device()->SetTexture(1, sourceOnWhite->GetD3D9Texture());
> >        device()->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
> >        device()->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);
> > -      device()->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE);
> 
> Not sure why this particular change is in this patch, probably shouldn't be
> :-).

Oh, they were just things I noticed were wrong with the d3d9 compositor whilst looking at blend modes. I'll pull them out into another patch.
Splitting the previous patch into three. Carrying r=Bas for all patches.
Attachment #787224 - Attachment is obsolete: true
Attachment #787782 - Flags: review+
Attachment #787783 - Flags: review+
Depends on: 905780
Depends on: 904214
You need to log in before you can comment on or make changes to this bug.