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);
|
||||
|
||||
bool useDualSource =
|
||||
g_ActiveConfig.backend_info.bSupportsDualSourceBlend &&
|
||||
state.usedualsrc && g_ActiveConfig.backend_info.bSupportsDualSourceBlend &&
|
||||
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha);
|
||||
|
||||
const GLenum src_factors[8] = {
|
||||
|
|
|
@ -65,6 +65,7 @@ void BlendingState::Generate(const BPMemory& bp)
|
|||
colorupdate = bp.blendmode.colorupdate && alpha_test_may_success;
|
||||
alphaupdate = bp.blendmode.alphaupdate && target_has_alpha && alpha_test_may_success;
|
||||
dstalpha = bp.dstalpha.enable && alphaupdate;
|
||||
usedualsrc = true;
|
||||
|
||||
// The subtract bit has the highest priority
|
||||
if (bp.blendmode.subtract)
|
||||
|
|
|
@ -26,6 +26,7 @@ union BlendingState
|
|||
BitField<14, 3, BlendMode::BlendFactor> dstfactoralpha;
|
||||
BitField<17, 3, BlendMode::BlendFactor> srcfactoralpha;
|
||||
BitField<20, 4, BlendMode::LogicOp> logicmode;
|
||||
BitField<24, 1, u32> usedualsrc;
|
||||
|
||||
u32 hex;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue