ac/gpu_info: Check whether the device has the POPS missed overlap bug

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22250>
This commit is contained in:
Vitaliy Triang3l Kuzmin
2023-04-03 22:40:33 +03:00
committed by Marge Bot
parent 3831860b20
commit 647952c8e3
2 changed files with 7 additions and 0 deletions
+6
View File
@@ -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);
+1
View File
@@ -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;