[Mesa-dev] [PATCH 1/2] radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii

Alex Deucher alexdeucher at gmail.com
Wed Aug 6 07:01:59 PDT 2014


On Wed, Aug 6, 2014 at 9:32 AM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> This isn't documented anywhere, but it's the only thing that works
> for this case.

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>


> ---
>  src/gallium/drivers/radeonsi/si_state_draw.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
> index eb21ba1..4e808a3 100644
> --- a/src/gallium/drivers/radeonsi/si_state_draw.c
> +++ b/src/gallium/drivers/radeonsi/si_state_draw.c
> @@ -411,14 +411,11 @@ static bool si_update_draw_info_state(struct si_context *sctx,
>                 bool ia_switch_on_eop = wd_switch_on_eop;
>                 unsigned primgroup_size = 64;
>
> -               /* Hawaii hangs if instancing is enabled and each instance
> -                * is smaller than a prim group and WD_SWITCH_ON_EOP is 0.
> +               /* Hawaii hangs if instancing is enabled and WD_SWITCH_ON_EOP is 0.
>                  * We don't know that for indirect drawing, so treat it as
>                  * always problematic. */
>                 if (sctx->b.family == CHIP_HAWAII &&
> -                   (info->indirect ||
> -                    (info->instance_count > 1 &&
> -                     u_prims_for_vertices(info->mode, info->count) < primgroup_size))) {
> +                   (info->indirect || info->instance_count > 1)) {
>                         wd_switch_on_eop = true;
>                         ia_switch_on_eop = true;
>                 }
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list