Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com>tags/19.3-branchpoint
| @@ -488,6 +488,9 @@ bool ac_query_gpu_info(int fd, void *dev_p, | |||
| info->family == CHIP_VEGA10 || | |||
| info->family == CHIP_RAVEN; | |||
| info->has_ls_vgpr_init_bug = info->family == CHIP_VEGA10 || | |||
| info->family == CHIP_RAVEN; | |||
| /* Get the number of good compute units. */ | |||
| info->num_good_compute_units = 0; | |||
| for (i = 0; i < info->max_se; i++) | |||
| @@ -162,6 +162,7 @@ struct radeon_info { | |||
| bool has_gfx9_scissor_bug; | |||
| bool has_tc_compat_zrange_bug; | |||
| bool has_msaa_sample_loc_bug; | |||
| bool has_ls_vgpr_init_bug; | |||
| }; | |||
| bool ac_query_gpu_info(int fd, void *dev_p, | |||
| @@ -1135,8 +1135,6 @@ radeonsi_screen_create_impl(struct radeon_winsys *ws, | |||
| #include "si_debug_options.h" | |||
| } | |||
| sscreen->has_ls_vgpr_init_bug = sscreen->info.family == CHIP_VEGA10 || | |||
| sscreen->info.family == CHIP_RAVEN; | |||
| sscreen->use_ngg = sscreen->info.chip_class >= GFX10; | |||
| sscreen->use_ngg_streamout = sscreen->info.chip_class >= GFX10; | |||
| @@ -495,7 +495,6 @@ struct si_screen { | |||
| bool has_out_of_order_rast; | |||
| bool assume_no_z_fights; | |||
| bool commutative_blend_add; | |||
| bool has_ls_vgpr_init_bug; | |||
| bool dpbb_allowed; | |||
| bool dfsm_allowed; | |||
| bool llvm_has_working_vgpr_indexing; | |||
| @@ -7406,7 +7406,7 @@ static void si_build_vs_prolog_function(struct si_shader_context *ctx, | |||
| si_init_exec_from_input(ctx, 3, 0); | |||
| if (key->vs_prolog.as_ls && | |||
| ctx->screen->has_ls_vgpr_init_bug) { | |||
| ctx->screen->info.has_ls_vgpr_init_bug) { | |||
| /* If there are no HS threads, SPI loads the LS VGPRs | |||
| * starting at VGPR 0. Shift them back to where they | |||
| * belong. | |||
| @@ -1833,7 +1833,7 @@ static void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *i | |||
| } | |||
| if (sctx->tes_shader.cso && | |||
| sctx->screen->has_ls_vgpr_init_bug) { | |||
| sctx->screen->info.has_ls_vgpr_init_bug) { | |||
| /* Determine whether the LS VGPR fix should be applied. | |||
| * | |||
| * It is only required when num input CPs > num output CPs, | |||