1428d7b3dSmrg#include "brw.h" 2428d7b3dSmrg 3428d7b3dSmrgbool brw_sf_kernel__nomask(struct brw_compile *p) 4428d7b3dSmrg{ 5428d7b3dSmrg struct brw_reg inv, v0, v1, v2, delta; 6428d7b3dSmrg 7428d7b3dSmrg v0 = brw_vec4_grf(3, 0); 8428d7b3dSmrg v1 = brw_vec4_grf(4, 0); 9428d7b3dSmrg v2 = brw_vec4_grf(5, 0); 10428d7b3dSmrg delta = brw_vec8_grf(7, 0); 11428d7b3dSmrg 12428d7b3dSmrg inv = brw_vec4_grf(6, 0); 13428d7b3dSmrg brw_math_invert(p, inv, brw_vec4_grf(1, 11)); 14428d7b3dSmrg 15428d7b3dSmrg brw_MOV(p, brw_message_reg(3), v0); 16428d7b3dSmrg 17428d7b3dSmrg brw_ADD(p, delta, v1, brw_negate(v2)); 18428d7b3dSmrg brw_MUL(p, brw_message_reg(1), delta, brw_vec1_grf(6,0)); 19428d7b3dSmrg 20428d7b3dSmrg brw_ADD(p, delta, v2, brw_negate(v0)); 21428d7b3dSmrg brw_MUL(p, brw_message_reg(2), delta, brw_vec1_grf(6,2)); 22428d7b3dSmrg 23428d7b3dSmrg brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0), 24428d7b3dSmrg false, true, 4, 0, true, true, 0, 25428d7b3dSmrg BRW_URB_SWIZZLE_TRANSPOSE); 26428d7b3dSmrg 27428d7b3dSmrg return true; 28428d7b3dSmrg} 29428d7b3dSmrg 30428d7b3dSmrgbool brw_sf_kernel__mask(struct brw_compile *p) 31428d7b3dSmrg{ 32428d7b3dSmrg struct brw_reg inv, v0, v1, v2; 33428d7b3dSmrg 34428d7b3dSmrg v0 = brw_vec8_grf(3, 0); 35428d7b3dSmrg v1 = brw_vec8_grf(4, 0); 36428d7b3dSmrg v2 = brw_vec8_grf(5, 0); 37428d7b3dSmrg 38428d7b3dSmrg inv = brw_vec4_grf(6, 0); 39428d7b3dSmrg brw_math_invert(p, inv, brw_vec4_grf(1, 11)); 40428d7b3dSmrg 41428d7b3dSmrg brw_MOV(p, brw_message_reg(3), v0); 42428d7b3dSmrg 43428d7b3dSmrg brw_ADD(p, brw_vec8_grf(7, 0), v1, brw_negate(v2)); 44428d7b3dSmrg brw_MUL(p, brw_message_reg(1), brw_vec8_grf(7, 0), brw_vec1_grf(6,0)); 45428d7b3dSmrg 46428d7b3dSmrg brw_ADD(p, brw_vec8_grf(7, 0), v2, brw_negate(v0)); 47428d7b3dSmrg brw_MUL(p, brw_message_reg(2), brw_vec8_grf(7, 0), brw_vec1_grf(6,2)); 48428d7b3dSmrg 49428d7b3dSmrg brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0), 50428d7b3dSmrg false, true, 4, 0, true, true, 0, 51428d7b3dSmrg BRW_URB_SWIZZLE_TRANSPOSE); 52428d7b3dSmrg 53428d7b3dSmrg return true; 54428d7b3dSmrg} 55