diff --git a/src/amd/common/ac_gpu_info.c b/src/amd/common/ac_gpu_info.c index 1f3a38d4d08..b404655b296 100644 --- a/src/amd/common/ac_gpu_info.c +++ b/src/amd/common/ac_gpu_info.c @@ -1151,6 +1151,11 @@ bool ac_query_gpu_info(int fd, void *dev_p, struct radeon_info *info) info->has_ls_vgpr_init_bug = info->family == CHIP_VEGA10 || info->family == CHIP_RAVEN; + /* DB_DFSM_CONTROL.POPS_DRAIN_PS_ON_OVERLAP must be enabled for 8 or more coverage or + * depth/stencil samples with POPS (PAL waMiscPopsMissedOverlap). + */ + info->has_pops_missed_overlap_bug = info->family == CHIP_VEGA10 || info->family == CHIP_RAVEN; + /* Drawing from 0-sized index buffers causes hangs on gfx10. */ info->has_zero_index_buffer_bug = info->gfx_level == GFX10; @@ -1665,6 +1670,7 @@ void ac_print_gpu_info(const struct radeon_info *info, FILE *f) fprintf(f, " has_tc_compat_zrange_bug = %i\n", info->has_tc_compat_zrange_bug); fprintf(f, " has_small_prim_filter_sample_loc_bug = %i\n", info->has_small_prim_filter_sample_loc_bug); fprintf(f, " has_ls_vgpr_init_bug = %i\n", info->has_ls_vgpr_init_bug); + fprintf(f, " has_pops_missed_overlap_bug = %i\n", info->has_pops_missed_overlap_bug); fprintf(f, " has_32bit_predication = %i\n", info->has_32bit_predication); fprintf(f, " has_3d_cube_border_color_mipmap = %i\n", info->has_3d_cube_border_color_mipmap); fprintf(f, " has_image_opcodes = %i\n", info->has_image_opcodes); diff --git a/src/amd/common/ac_gpu_info.h b/src/amd/common/ac_gpu_info.h index f07a529057d..359e20de78a 100644 --- a/src/amd/common/ac_gpu_info.h +++ b/src/amd/common/ac_gpu_info.h @@ -91,6 +91,7 @@ struct radeon_info { bool has_tc_compat_zrange_bug; bool has_small_prim_filter_sample_loc_bug; bool has_ls_vgpr_init_bug; + bool has_pops_missed_overlap_bug; bool has_zero_index_buffer_bug; bool has_image_load_dcc_bug; bool has_two_planes_iterate256_bug;