VideoCommon: Add usedualsrc field to BlendingState
This is because we re-use BlendingState for our internal drawing (e.g. RasterFont) and for these shaders, we can't assume the presence of a second color output.
This commit is contained in:
parent
936910163a
commit
34ad5b457d
|
@ -1214,7 +1214,7 @@ void Renderer::SetBlendMode(bool forceUpdate)
|
||||||
state.Generate(bpmem);
|
state.Generate(bpmem);
|
||||||
|
|
||||||
bool useDualSource =
|
bool useDualSource =
|
||||||
g_ActiveConfig.backend_info.bSupportsDualSourceBlend &&
|
state.usedualsrc && g_ActiveConfig.backend_info.bSupportsDualSourceBlend &&
|
||||||
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha);
|
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha);
|
||||||
|
|
||||||
const GLenum src_factors[8] = {
|
const GLenum src_factors[8] = {
|
||||||
|
|
|
@ -65,6 +65,7 @@ void BlendingState::Generate(const BPMemory& bp)
|
||||||
colorupdate = bp.blendmode.colorupdate && alpha_test_may_success;
|
colorupdate = bp.blendmode.colorupdate && alpha_test_may_success;
|
||||||
alphaupdate = bp.blendmode.alphaupdate && target_has_alpha && alpha_test_may_success;
|
alphaupdate = bp.blendmode.alphaupdate && target_has_alpha && alpha_test_may_success;
|
||||||
dstalpha = bp.dstalpha.enable && alphaupdate;
|
dstalpha = bp.dstalpha.enable && alphaupdate;
|
||||||
|
usedualsrc = true;
|
||||||
|
|
||||||
// The subtract bit has the highest priority
|
// The subtract bit has the highest priority
|
||||||
if (bp.blendmode.subtract)
|
if (bp.blendmode.subtract)
|
||||||
|
|
|
@ -26,6 +26,7 @@ union BlendingState
|
||||||
BitField<14, 3, BlendMode::BlendFactor> dstfactoralpha;
|
BitField<14, 3, BlendMode::BlendFactor> dstfactoralpha;
|
||||||
BitField<17, 3, BlendMode::BlendFactor> srcfactoralpha;
|
BitField<17, 3, BlendMode::BlendFactor> srcfactoralpha;
|
||||||
BitField<20, 4, BlendMode::LogicOp> logicmode;
|
BitField<20, 4, BlendMode::LogicOp> logicmode;
|
||||||
|
BitField<24, 1, u32> usedualsrc;
|
||||||
|
|
||||||
u32 hex;
|
u32 hex;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue