mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
i965: restore the flag after building the subroutine of the
GS thread. fix #13240
This commit is contained in:
parent
27de28fc3e
commit
41ed6be1da
1 changed files with 11 additions and 2 deletions
|
|
@ -564,6 +564,8 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
struct brw_reg primmask;
|
||||
struct brw_instruction *jmp;
|
||||
struct brw_reg v1_null_ud = vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_UD));
|
||||
|
||||
GLuint saveflag;
|
||||
|
||||
alloc_regs(c);
|
||||
|
||||
|
|
@ -582,10 +584,15 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_TRIFAN_NOSTIPPLE)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
{
|
||||
brw_push_insn_state(p);
|
||||
saveflag = p->flag_value;
|
||||
brw_push_insn_state(p);
|
||||
brw_emit_tri_setup( c );
|
||||
brw_pop_insn_state(p);
|
||||
/* note - thread killed in subroutine */
|
||||
p->flag_value = saveflag;
|
||||
/* note - thread killed in subroutine, so must
|
||||
* restore the flag which is changed when building
|
||||
* the subroutine. fix #13240
|
||||
*/
|
||||
}
|
||||
brw_land_fwd_jump(p, jmp);
|
||||
|
||||
|
|
@ -598,9 +605,11 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_LINESTRIP_CONT_BF)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
{
|
||||
saveflag = p->flag_value;
|
||||
brw_push_insn_state(p);
|
||||
brw_emit_line_setup( c );
|
||||
brw_pop_insn_state(p);
|
||||
p->flag_value = saveflag;
|
||||
/* note - thread killed in subroutine */
|
||||
}
|
||||
brw_land_fwd_jump(p, jmp);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue