103b705cfSriastradh#include "brw.h" 203b705cfSriastradh 303b705cfSriastradhbool brw_sf_kernel__nomask(struct brw_compile *p) 403b705cfSriastradh{ 503b705cfSriastradh struct brw_reg inv, v0, v1, v2, delta; 603b705cfSriastradh 703b705cfSriastradh v0 = brw_vec4_grf(3, 0); 803b705cfSriastradh v1 = brw_vec4_grf(4, 0); 903b705cfSriastradh v2 = brw_vec4_grf(5, 0); 1003b705cfSriastradh delta = brw_vec8_grf(7, 0); 1103b705cfSriastradh 1203b705cfSriastradh inv = brw_vec4_grf(6, 0); 1303b705cfSriastradh brw_math_invert(p, inv, brw_vec4_grf(1, 11)); 1403b705cfSriastradh 1503b705cfSriastradh brw_MOV(p, brw_message_reg(3), v0); 1603b705cfSriastradh 1703b705cfSriastradh brw_ADD(p, delta, v1, brw_negate(v2)); 1803b705cfSriastradh brw_MUL(p, brw_message_reg(1), delta, brw_vec1_grf(6,0)); 1903b705cfSriastradh 2003b705cfSriastradh brw_ADD(p, delta, v2, brw_negate(v0)); 2103b705cfSriastradh brw_MUL(p, brw_message_reg(2), delta, brw_vec1_grf(6,2)); 2203b705cfSriastradh 2303b705cfSriastradh brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0), 2403b705cfSriastradh false, true, 4, 0, true, true, 0, 2503b705cfSriastradh BRW_URB_SWIZZLE_TRANSPOSE); 2603b705cfSriastradh 2703b705cfSriastradh return true; 2803b705cfSriastradh} 2903b705cfSriastradh 3003b705cfSriastradhbool brw_sf_kernel__mask(struct brw_compile *p) 3103b705cfSriastradh{ 3203b705cfSriastradh struct brw_reg inv, v0, v1, v2; 3303b705cfSriastradh 3403b705cfSriastradh v0 = brw_vec8_grf(3, 0); 3503b705cfSriastradh v1 = brw_vec8_grf(4, 0); 3603b705cfSriastradh v2 = brw_vec8_grf(5, 0); 3703b705cfSriastradh 3803b705cfSriastradh inv = brw_vec4_grf(6, 0); 3903b705cfSriastradh brw_math_invert(p, inv, brw_vec4_grf(1, 11)); 4003b705cfSriastradh 4103b705cfSriastradh brw_MOV(p, brw_message_reg(3), v0); 4203b705cfSriastradh 4303b705cfSriastradh brw_ADD(p, brw_vec8_grf(7, 0), v1, brw_negate(v2)); 4403b705cfSriastradh brw_MUL(p, brw_message_reg(1), brw_vec8_grf(7, 0), brw_vec1_grf(6,0)); 4503b705cfSriastradh 4603b705cfSriastradh brw_ADD(p, brw_vec8_grf(7, 0), v2, brw_negate(v0)); 4703b705cfSriastradh brw_MUL(p, brw_message_reg(2), brw_vec8_grf(7, 0), brw_vec1_grf(6,2)); 4803b705cfSriastradh 4903b705cfSriastradh brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0), 5003b705cfSriastradh false, true, 4, 0, true, true, 0, 5103b705cfSriastradh BRW_URB_SWIZZLE_TRANSPOSE); 5203b705cfSriastradh 5303b705cfSriastradh return true; 5403b705cfSriastradh} 55