Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include "brw.h"
  2.  
  3. bool brw_sf_kernel__nomask(struct brw_compile *p)
  4. {
  5.         struct brw_reg inv, v0, v1, v2, delta;
  6.  
  7.         v0 = brw_vec4_grf(3, 0);
  8.         v1 = brw_vec4_grf(4, 0);
  9.         v2 = brw_vec4_grf(5, 0);
  10.         delta = brw_vec8_grf(7, 0);
  11.  
  12.         inv = brw_vec4_grf(6, 0);
  13.         brw_math_invert(p, inv, brw_vec4_grf(1, 11));
  14.  
  15.         brw_MOV(p, brw_message_reg(3), v0);
  16.  
  17.         brw_ADD(p, delta, v1, brw_negate(v2));
  18.         brw_MUL(p, brw_message_reg(1), delta, brw_vec1_grf(6,0));
  19.  
  20.         brw_ADD(p, delta, v2, brw_negate(v0));
  21.         brw_MUL(p, brw_message_reg(2), delta, brw_vec1_grf(6,2));
  22.  
  23.         brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0),
  24.                       false, true, 4, 0, true, true, 0,
  25.                       BRW_URB_SWIZZLE_TRANSPOSE);
  26.  
  27.         return true;
  28. }
  29.  
  30. bool brw_sf_kernel__mask(struct brw_compile *p)
  31. {
  32.         struct brw_reg inv, v0, v1, v2;
  33.  
  34.         v0 = brw_vec8_grf(3, 0);
  35.         v1 = brw_vec8_grf(4, 0);
  36.         v2 = brw_vec8_grf(5, 0);
  37.  
  38.         inv = brw_vec4_grf(6, 0);
  39.         brw_math_invert(p, inv, brw_vec4_grf(1, 11));
  40.  
  41.         brw_MOV(p, brw_message_reg(3), v0);
  42.  
  43.         brw_ADD(p, brw_vec8_grf(7, 0), v1, brw_negate(v2));
  44.         brw_MUL(p, brw_message_reg(1), brw_vec8_grf(7, 0), brw_vec1_grf(6,0));
  45.  
  46.         brw_ADD(p, brw_vec8_grf(7, 0), v2, brw_negate(v0));
  47.         brw_MUL(p, brw_message_reg(2), brw_vec8_grf(7, 0), brw_vec1_grf(6,2));
  48.  
  49.         brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0),
  50.                       false, true, 4, 0, true, true, 0,
  51.                       BRW_URB_SWIZZLE_TRANSPOSE);
  52.  
  53.         return true;
  54. }
  55.