Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
4304 Serge 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
}