renderer: accept inactive coarse HTILE; drop dead MRT filter

This commit is contained in:
nmzik
2026-09-04 06:08:31 +02:00
parent c28b71f8e0
commit 94e7d0a189
2 changed files with 3 additions and 11 deletions
@@ -144,6 +144,8 @@ void RenderExecutor::ResolveRenderDepthTarget(uint64_t submit_id, CommandBuffer&
return;
}
const bool has_htile = z.z_info.htile_acceleration;
const bool unsupported_shading_rate_encoding =
z.shading_rate_encoding > 1 || (z.shading_rate_encoding != 0 && !has_htile);
const auto samples = render_sample_count(z.z_info.num_samples);
if (samples == 0) {
DepthFatal("unsupported depth fragment count: %u", z.z_info.num_samples);
@@ -162,7 +164,7 @@ void RenderExecutor::ResolveRenderDepthTarget(uint64_t submit_id, CommandBuffer&
rc.copy_sample != 0 || z.z_info.expclear_enabled ||
z.stencil_info.expclear_enabled || z.z_info.partially_resident ||
z.stencil_info.partially_resident || z.z_info.max_mip_level != 0 ||
z.depth_view.current_mip_level != 0 || z.shading_rate_encoding != 0 ||
z.depth_view.current_mip_level != 0 || unsupported_shading_rate_encoding ||
z.z_read_base_addr == 0 ||
(!z.depth_view.depth_write_disable && z.z_write_base_addr != z.z_read_base_addr) ||
(z.z_read_base_addr & 0xffffu) != 0 ||
@@ -117,10 +117,6 @@ static const char* RenderColorTypeName(RenderColorType type) {
}
}
static bool IsDualSourceBlendFactor(uint32_t factor) {
return factor >= 0x0fu && factor <= 0x12u;
}
static void LogFramebufferSkip(const char* draw_name, const RenderColorInfo& color,
const RenderDepthInfo& depth, const CommandBuffer& buffer,
uint32_t index_count, uint32_t flags) {
@@ -153,12 +149,6 @@ static void LogMrtState(const char* draw_name, const CommandBuffer& buffer,
const auto cb_shader_mask = sh_regs.m_cbShaderMask;
const auto& bc0 = ctx.GetBlendControl(0);
bool interesting = rt_mask != 0x0f || (cb_shader_mask & ~0x0fu) != 0 ||
IsDualSourceBlendFactor(bc0.color_srcblend) ||
IsDualSourceBlendFactor(bc0.color_destblend) ||
(bc0.separate_alpha_blend && (IsDualSourceBlendFactor(bc0.alpha_srcblend) ||
IsDualSourceBlendFactor(bc0.alpha_destblend)));
auto log_id = g_mrt_state_log_count.fetch_add(1);
if (log_id >= 32) {
return;