i965: Don't emit MOVs with undefined registers for Gen4 point clipping.
Gen4 point clipping calls brw_clip_tri_alloc_regs with nr_verts == 0, which means that c->reg.vertex[] isn't initialized. It then emits MOVs to stomp components of those uninitialized registers to 0. This started causing assertions after Matt's recent series, when those uninitialized registers started getting BRW_REGISTER_TYPE_NF, which definitely doesn't exist on Gen4-5. Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -68,7 +68,7 @@ void brw_clip_tri_alloc_regs( struct brw_clip_compile *c,
|
||||
i += c->nr_regs;
|
||||
}
|
||||
|
||||
if (c->vue_map.num_slots % 2) {
|
||||
if (c->vue_map.num_slots % 2 && nr_verts > 0) {
|
||||
/* The VUE has an odd number of slots so the last register is only half
|
||||
* used. Fill the second half with zero.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user