mirror of
https://github.com/stenzek/duckstation.git
synced 2025-06-07 20:15:32 +00:00
GPU/HW: Split transparent draws if dual-source blend unsupported
The ordering is not correct otherwise. Ape Escape has a bunch of overlapping sprites that have a mix of opaque and transparent texels, and the transparent texels are repeated multiple times when the opaque texels should cancel them out. Only affects old Mali drivers.
This commit is contained in:
parent
2663ac9666
commit
06b02183cb
@ -3695,9 +3695,8 @@ void GPU_HW::PrepareDraw(const GPUBackendDrawCommand* cmd)
|
||||
if (!IsFlushed())
|
||||
{
|
||||
if (texture_mode != m_batch.texture_mode || transparency_mode != m_batch.transparency_mode ||
|
||||
(transparency_mode == GPUTransparencyMode::BackgroundMinusForeground && !m_allow_shader_blend) ||
|
||||
dithering_enable != m_batch.dithering || m_texture_window_bits != cmd->window ||
|
||||
m_batch.check_mask_before_draw != cmd->check_mask_before_draw ||
|
||||
(!m_allow_shader_blend && NeedsTwoPassRendering()) || dithering_enable != m_batch.dithering ||
|
||||
m_texture_window_bits != cmd->window || m_batch.check_mask_before_draw != cmd->check_mask_before_draw ||
|
||||
m_batch.set_mask_while_drawing != cmd->set_mask_while_drawing ||
|
||||
(texture_mode == BatchTextureMode::PageTexture && m_texture_cache_key != texture_cache_key))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user