summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_sf_emit.c
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2007-08-02 15:27:13 +0800
committerZou Nan hai <nanhai.zou@intel.com>2007-08-02 15:27:13 +0800
commit505453a04e8ba5e394c34401bd9ec320ffce2423 (patch)
tree8bdbb6a510369eba025bbb12479db74ff72a52cd /src/mesa/drivers/dri/i965/brw_sf_emit.c
parent246d1d2522858a1bcf525d64ad165f9af11a2b4d (diff)
fix fd.o bug #11804
glPolygonMode with point sprite on i965
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_sf_emit.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf_emit.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_sf_emit.c b/src/mesa/drivers/dri/i965/brw_sf_emit.c
index 7ecf9bb560..22911a4649 100644
--- a/src/mesa/drivers/dri/i965/brw_sf_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_sf_emit.c
@@ -641,6 +641,7 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
struct brw_compile *p = &c->func;
struct brw_reg ip = brw_ip_reg();
struct brw_reg payload_prim = brw_uw1_reg(BRW_GENERAL_REGISTER_FILE, 1, 0);
+ struct brw_reg payload_attr = get_element_ud(brw_vec1_reg(BRW_GENERAL_REGISTER_FILE, 1, 0), 0);
struct brw_reg primmask;
struct brw_instruction *jmp;
struct brw_reg v1_null_ud = vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_UD));
@@ -681,6 +682,14 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
}
brw_land_fwd_jump(p, jmp);
+ brw_set_conditionalmod(p, BRW_CONDITIONAL_Z);
+ brw_AND(p, v1_null_ud, payload_attr, brw_imm_ud(1<<BRW_SPRITE_POINT_ENABLE));
+ jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
+ {
+ brw_emit_point_sprite_setup( c );
+ }
+ brw_land_fwd_jump(p, jmp);
+
brw_emit_point_setup( c );
}