On Thursday, August 28, 2014 08:10:31 PM Matt Turner wrote:
> Despite what the Sandybridge PRM says, ENDIF has Jump Count in <dst>,
> not JIP in <src1>. (The same mistake appears about WHILE as well).
> ---
>  src/mesa/drivers/dri/i965/brw_eu_emit.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c 
> b/src/mesa/drivers/dri/i965/brw_eu_emit.c
> index 39f94e9..937257b 100644
> --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
> +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
> @@ -2557,12 +2557,15 @@ brw_set_uip_jip(struct brw_compile *p)
>           assert(brw_inst_jip(brw, insn) != 0);
>        break;
>  
> -      case BRW_OPCODE_ENDIF:
> -         if (block_end_offset == 0)
> -            brw_inst_set_jip(brw, insn, 1 * br);
> +      case BRW_OPCODE_ENDIF: {
> +         int32_t jump = (block_end_offset == 0) ?
> +                        1 * br : (block_end_offset - offset) / scale;
> +         if (brw->gen >= 7)
> +            brw_inst_set_jip(brw, insn, jump);
>           else
> -            brw_inst_set_jip(brw, insn, (block_end_offset - offset) / scale);
> +            brw_inst_set_gen6_jump_count(brw, insn, jump);
>        break;
> +      }
>  
>        case BRW_OPCODE_HALT:
>        /* From the Sandy Bridge PRM (volume 4, part 2, section 8.3.19):
> 

Cc: "10.3" <mesa-sta...@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to