Merge branch 'nouveau-gallium-0.1' into darktama-gallium-0.1
[mesa.git] / src / mesa / pipe / tgsi / util / tgsi_util.h
1 #if !defined TGSI_UTIL_H
2 #define TGSI_UTIL_H
3
4 #if defined __cplusplus
5 extern "C" {
6 #endif // defined __cplusplus
7
8 void *
9 tgsi_align_128bit(
10 void *unaligned );
11
12 unsigned
13 tgsi_util_get_src_register_swizzle(
14 const struct tgsi_src_register *reg,
15 unsigned component );
16
17 unsigned
18 tgsi_util_get_src_register_extswizzle(
19 const struct tgsi_src_register_ext_swz *reg,
20 unsigned component);
21
22 unsigned
23 tgsi_util_get_full_src_register_extswizzle(
24 const struct tgsi_full_src_register *reg,
25 unsigned component );
26
27 void
28 tgsi_util_set_src_register_swizzle(
29 struct tgsi_src_register *reg,
30 unsigned swizzle,
31 unsigned component );
32
33 void
34 tgsi_util_set_src_register_extswizzle(
35 struct tgsi_src_register_ext_swz *reg,
36 unsigned swizzle,
37 unsigned component );
38
39 unsigned
40 tgsi_util_get_src_register_extnegate(
41 const struct tgsi_src_register_ext_swz *reg,
42 unsigned component );
43
44 void
45 tgsi_util_set_src_register_extnegate(
46 struct tgsi_src_register_ext_swz *reg,
47 unsigned negate,
48 unsigned component );
49
50 #define TGSI_UTIL_SIGN_CLEAR 0 /* Force positive */
51 #define TGSI_UTIL_SIGN_SET 1 /* Force negative */
52 #define TGSI_UTIL_SIGN_TOGGLE 2 /* Negate */
53 #define TGSI_UTIL_SIGN_KEEP 3 /* No change */
54
55 unsigned
56 tgsi_util_get_full_src_register_sign_mode(
57 const struct tgsi_full_src_register *reg,
58 unsigned component );
59
60 void
61 tgsi_util_set_full_src_register_sign_mode(
62 struct tgsi_full_src_register *reg,
63 unsigned sign_mode );
64
65 #if defined __cplusplus
66 } // extern "C"
67 #endif // defined __cplusplus
68
69 #endif // !defined TGSI_UTIL_H
70