summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_texture.h
blob: aca622c73b10bb53d6b69e82060077168961e8b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#ifndef __NV50_TEXTURE_H__
#define __NV50_TEXTURE_H__

/* It'd be really nice to have these in nouveau_class.h generated by
 * renouveau like the rest of the object header - but not sure it can
 * handle non-object stuff nicely - need to look into it.
 */

/* Texture image control block */
#define NV50TIC_0_0_MAPA_MASK                                     0x38000000
#define NV50TIC_0_0_MAPA_ZERO                                     0x00000000
#define NV50TIC_0_0_MAPA_C0                                       0x10000000
#define NV50TIC_0_0_MAPA_C1                                       0x18000000
#define NV50TIC_0_0_MAPA_C2                                       0x20000000
#define NV50TIC_0_0_MAPA_C3                                       0x28000000
#define NV50TIC_0_0_MAPA_ONE                                      0x38000000
#define NV50TIC_0_0_MAPR_MASK                                     0x07000000
#define NV50TIC_0_0_MAPR_ZERO                                     0x00000000
#define NV50TIC_0_0_MAPR_C0                                       0x02000000
#define NV50TIC_0_0_MAPR_C1                                       0x03000000
#define NV50TIC_0_0_MAPR_C2                                       0x04000000
#define NV50TIC_0_0_MAPR_C3                                       0x05000000
#define NV50TIC_0_0_MAPR_ONE                                      0x07000000
#define NV50TIC_0_0_MAPG_MASK                                     0x00e00000
#define NV50TIC_0_0_MAPG_ZERO                                     0x00000000
#define NV50TIC_0_0_MAPG_C0                                       0x00400000
#define NV50TIC_0_0_MAPG_C1                                       0x00600000
#define NV50TIC_0_0_MAPG_C2                                       0x00800000
#define NV50TIC_0_0_MAPG_C3                                       0x00a00000
#define NV50TIC_0_0_MAPG_ONE                                      0x00e00000
#define NV50TIC_0_0_MAPB_MASK                                     0x001c0000
#define NV50TIC_0_0_MAPB_ZERO                                     0x00000000
#define NV50TIC_0_0_MAPB_C0                                       0x00080000
#define NV50TIC_0_0_MAPB_C1                                       0x000c0000
#define NV50TIC_0_0_MAPB_C2                                       0x00100000
#define NV50TIC_0_0_MAPB_C3                                       0x00140000
#define NV50TIC_0_0_MAPB_ONE                                      0x001c0000
#define NV50TIC_0_0_TYPEA_MASK                                    0x00038000
#define NV50TIC_0_0_TYPEA_UNORM                                   0x00010000
#define NV50TIC_0_0_TYPER_MASK                                    0x00007000
#define NV50TIC_0_0_TYPER_UNORM                                   0x00002000
#define NV50TIC_0_0_TYPEG_MASK                                    0x00000e00
#define NV50TIC_0_0_TYPEG_UNORM                                   0x00000400
#define NV50TIC_0_0_TYPEB_MASK                                    0x000001c0
#define NV50TIC_0_0_TYPEB_UNORM                                   0x00000080
#define NV50TIC_0_0_FMT_MASK                                      0x0000003c
#define NV50TIC_0_0_FMT_8_8_8_8                                   0x00000008
#define NV50TIC_0_0_FMT_4_4_4_4                                   0x00000012
#define NV50TIC_0_0_FMT_1_5_5_5                                   0x00000013
#define NV50TIC_0_0_FMT_5_6_5                                     0x00000015
#define NV50TIC_0_0_FMT_8_8                                       0x00000018
#define NV50TIC_0_0_FMT_8                                         0x0000001d
#define NV50TIC_0_0_FMT_DXT1                                      0x00000024
#define NV50TIC_0_0_FMT_DXT3                                      0x00000025
#define NV50TIC_0_0_FMT_DXT5                                      0x00000026

#define NV50TIC_0_1_OFFSET_LOW_MASK                               0xffffffff
#define NV50TIC_0_1_OFFSET_LOW_SHIFT                                       0

#define NV50TIC_0_2_UNKNOWN_MASK                                  0xffffffff

#define NV50TIC_0_3_UNKNOWN_MASK                                  0xffffffff

#define NV50TIC_0_4_WIDTH_MASK                                    0x0000ffff
#define NV50TIC_0_4_WIDTH_SHIFT                                            0

#define NV50TIC_0_5_DEPTH_MASK                                    0xffff0000
#define NV50TIC_0_5_DEPTH_SHIFT                                           16
#define NV50TIC_0_5_HEIGHT_MASK                                   0x0000ffff
#define NV50TIC_0_5_HEIGHT_SHIFT                                           0

#define NV50TIC_0_6_UNKNOWN_MASK                                  0xffffffff

#define NV50TIC_0_7_OFFSET_HIGH_MASK                              0xffffffff
#define NV50TIC_0_7_OFFSET_HIGH_SHIFT                                      0

/* Texture sampler control block */
#define NV50TSC_1_0_WRAPS_MASK                                   0x00000007
#define NV50TSC_1_0_WRAPS_REPEAT                                 0x00000000
#define NV50TSC_1_0_WRAPS_MIRROR_REPEAT                          0x00000001
#define NV50TSC_1_0_WRAPS_CLAMP_TO_EDGE                          0x00000002
#define NV50TSC_1_0_WRAPS_CLAMP_TO_BORDER                        0x00000003
#define NV50TSC_1_0_WRAPS_CLAMP                                  0x00000004
#define NV50TSC_1_0_WRAPS_MIRROR_CLAMP_TO_EDGE                   0x00000005
#define NV50TSC_1_0_WRAPS_MIRROR_CLAMP_TO_BORDER                 0x00000006
#define NV50TSC_1_0_WRAPS_MIRROR_CLAMP                           0x00000007
#define NV50TSC_1_0_WRAPT_MASK                                   0x00000038
#define NV50TSC_1_0_WRAPT_REPEAT                                 0x00000000
#define NV50TSC_1_0_WRAPT_MIRROR_REPEAT                          0x00000008
#define NV50TSC_1_0_WRAPT_CLAMP_TO_EDGE                          0x00000010
#define NV50TSC_1_0_WRAPT_CLAMP_TO_BORDER                        0x00000018
#define NV50TSC_1_0_WRAPT_CLAMP                                  0x00000020
#define NV50TSC_1_0_WRAPT_MIRROR_CLAMP_TO_EDGE                   0x00000028
#define NV50TSC_1_0_WRAPT_MIRROR_CLAMP_TO_BORDER                 0x00000030
#define NV50TSC_1_0_WRAPT_MIRROR_CLAMP                           0x00000038
#define NV50TSC_1_0_WRAPR_MASK                                   0x000001c0
#define NV50TSC_1_0_WRAPR_REPEAT                                 0x00000000
#define NV50TSC_1_0_WRAPR_MIRROR_REPEAT                          0x00000040
#define NV50TSC_1_0_WRAPR_CLAMP_TO_EDGE                          0x00000080
#define NV50TSC_1_0_WRAPR_CLAMP_TO_BORDER                        0x000000c0
#define NV50TSC_1_0_WRAPR_CLAMP                                  0x00000100
#define NV50TSC_1_0_WRAPR_MIRROR_CLAMP_TO_EDGE                   0x00000140
#define NV50TSC_1_0_WRAPR_MIRROR_CLAMP_TO_BORDER                 0x00000180
#define NV50TSC_1_0_WRAPR_MIRROR_CLAMP                           0x000001c0

#define NV50TSC_1_1_MAGF_MASK                                    0x00000003
#define NV50TSC_1_1_MAGF_NEAREST                                 0x00000001
#define NV50TSC_1_1_MAGF_LINEAR                                  0x00000002
#define NV50TSC_1_1_MINF_MASK                                    0x00000030
#define NV50TSC_1_1_MINF_NEAREST                                 0x00000010
#define NV50TSC_1_1_MINF_LINEAR                                  0x00000020
#define NV50TSC_1_1_MIPF_MASK                                    0x000000c0
#define NV50TSC_1_1_MIPF_NONE                                    0x00000040
#define NV50TSC_1_1_MIPF_NEAREST                                 0x00000080
#define NV50TSC_1_1_MIPF_LINEAR                                  0x000000c0

#define NV50TSC_1_2_UNKNOWN_MASK                                 0xffffffff

#define NV50TSC_1_3_UNKNOWN_MASK                                 0xffffffff

#define NV50TSC_1_4_UNKNOWN_MASK                                 0xffffffff

#define NV50TSC_1_5_UNKNOWN_MASK                                 0xffffffff

#define NV50TSC_1_6_UNKNOWN_MASK                                 0xffffffff

#define NV50TSC_1_7_UNKNOWN_MASK                                 0xffffffff

#endif