GPU/HW: Fix inaccurate shader progress counter
This commit is contained in:
parent
b5df06a54a
commit
5f80cb1188
|
@ -984,7 +984,7 @@ bool GPU_HW::CompilePipelines(Error* error)
|
||||||
(NUM_TEXTURE_MODES - (NUM_TEXTURE_MODES - static_cast<u32>(BatchTextureMode::SpriteStart)));
|
(NUM_TEXTURE_MODES - (NUM_TEXTURE_MODES - static_cast<u32>(BatchTextureMode::SpriteStart)));
|
||||||
const u32 total_vertex_shaders = (m_allow_sprite_mode ? 5 : 3);
|
const u32 total_vertex_shaders = (m_allow_sprite_mode ? 5 : 3);
|
||||||
const u32 total_fragment_shaders =
|
const u32 total_fragment_shaders =
|
||||||
(active_texture_modes * 5 * 9 * 2 * (1 + BoolToUInt32(!true_color)) *
|
((needs_rov_depth ? 2 : 1) * 5 * 5 * active_texture_modes * 2 * (1 + BoolToUInt32(!true_color)) *
|
||||||
(1 + BoolToUInt32(!m_force_progressive_scan)) * (1 + BoolToUInt32(needs_rov_depth)));
|
(1 + BoolToUInt32(!m_force_progressive_scan)) * (1 + BoolToUInt32(needs_rov_depth)));
|
||||||
const u32 total_items =
|
const u32 total_items =
|
||||||
total_vertex_shaders + total_fragment_shaders +
|
total_vertex_shaders + total_fragment_shaders +
|
||||||
|
@ -1018,10 +1018,16 @@ bool GPU_HW::CompilePipelines(Error* error)
|
||||||
|
|
||||||
for (u8 textured = 0; textured < 2; textured++)
|
for (u8 textured = 0; textured < 2; textured++)
|
||||||
{
|
{
|
||||||
for (u8 palette = 0; palette < (textured ? 2 : 1); palette++)
|
for (u8 palette = 0; palette < 2; palette++)
|
||||||
{
|
{
|
||||||
for (u8 sprite = 0; sprite < (textured ? 2 : 1); sprite++)
|
if (palette && !textured)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (u8 sprite = 0; sprite < 2; sprite++)
|
||||||
{
|
{
|
||||||
|
if (sprite && (!textured || !m_allow_sprite_mode))
|
||||||
|
continue;
|
||||||
|
|
||||||
const bool uv_limits = ShouldClampUVs(sprite ? m_sprite_texture_filtering : m_texture_filtering);
|
const bool uv_limits = ShouldClampUVs(sprite ? m_sprite_texture_filtering : m_texture_filtering);
|
||||||
const std::string vs = shadergen.GenerateBatchVertexShader(
|
const std::string vs = shadergen.GenerateBatchVertexShader(
|
||||||
textured != 0, palette != 0, uv_limits, !sprite && force_round_texcoords, m_pgxp_depth_buffer);
|
textured != 0, palette != 0, uv_limits, !sprite && force_round_texcoords, m_pgxp_depth_buffer);
|
||||||
|
@ -1060,7 +1066,8 @@ bool GPU_HW::CompilePipelines(Error* error)
|
||||||
// If using ROV depth, we only draw with shader blending.
|
// If using ROV depth, we only draw with shader blending.
|
||||||
(needs_rov_depth && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend)))
|
(needs_rov_depth && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend)))
|
||||||
{
|
{
|
||||||
progress.Increment(active_texture_modes * 2 * 2 * 2);
|
progress.Increment(active_texture_modes * 2 * (1 + BoolToUInt32(!true_color)) *
|
||||||
|
(1 + BoolToUInt32(!m_force_progressive_scan)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,7 +1078,7 @@ bool GPU_HW::CompilePipelines(Error* error)
|
||||||
if (check_mask && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend))
|
if (check_mask && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend))
|
||||||
{
|
{
|
||||||
// mask bit testing is only valid with shader blending.
|
// mask bit testing is only valid with shader blending.
|
||||||
progress.Increment(2 * 2);
|
progress.Increment((1 + BoolToUInt32(!true_color)) * (1 + BoolToUInt32(!m_force_progressive_scan)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1165,7 +1172,8 @@ bool GPU_HW::CompilePipelines(Error* error)
|
||||||
// If using ROV depth, we only draw with shader blending.
|
// If using ROV depth, we only draw with shader blending.
|
||||||
(needs_rov_depth && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend)))
|
(needs_rov_depth && render_mode != static_cast<u8>(BatchRenderMode::ShaderBlend)))
|
||||||
{
|
{
|
||||||
progress.Increment(9 * 2 * 2 * 2);
|
progress.Increment(active_texture_modes * 2 * (1 + BoolToUInt32(!true_color)) *
|
||||||
|
(1 + BoolToUInt32(!m_force_progressive_scan)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue