summaryrefslogtreecommitdiff
path: root/WorkQueue.mdwn
blob: e950868e24639a8c99bf9c18d69c3c9d2ae554d8 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
[[!table header="no" class="mointable" data="""
**Item ID**        | **Dependencies** | **Est. Days** | **Priority** | **Category** | **Description** | **Item Author** | **Current Owner** | **Notes**
<a name="XF01"></a>XF01 (Done, pending tests) |    | 3 | high | GL 3.0 | Enhance state tracking for transform feedback | [[DanMcCabe|DanMcCabe]] | [[DanMcCabe|DanMcCabe]] | Previously completed by [[BrianPaul|BrianPaul]]
<a name="XF02"></a>XF02 (Done, pending tests) |    | 2 | high | GL 3.0 | Add 9 transform feedback entry points | [[DanMcCabe|DanMcCabe]] | [[DanMcCabe|DanMcCabe]] | Previously completed by [[BrianPaul|BrianPaul]]
<a name="XF03"></a>XF03 (Done, pending tests) | [[XF02|WorkQueue]]  | 5 | high | GL 3.0 | Validate parameters in transform feedback entry points | [[DanMcCabe|DanMcCabe]] | [[DanMcCabe|DanMcCabe]] | Previously completed by [[BrianPaul|BrianPaul]] 
<a name="XF04"></a>XF04 (Done, pending tests) |    | 5 | high | GL 3.0 | Validate transform feedback related parameters in existing GL entry points | [[DanMcCabe|DanMcCabe]] | [[DanMcCabe|DanMcCabe]] | Previously completed by [[BrianPaul|BrianPaul]] 
<a name="XF05"></a>XF05 (Done, pending tests) |    | 5 | high | GL 3.0 | glBindBuffers support for transform feedback | [[DanMcCabe|DanMcCabe]] | [[DanMcCabe|DanMcCabe]] | Previously completed by [[BrianPaul|BrianPaul]]
<a name="XF06"></a>XF06 |    | 5 | high | GL 3.0 | Varying variable support for transform feedback.  This is filling in the guts of glTransformFeedbackVaryings and glGetTransformFeedbackVarying. | [[DanMcCabe|DanMcCabe]] | [[EricAnholt|EricAnholt]] |  
<a name="XF07"></a>XF07 (Done, pending tests) | [[XF06|WorkQueue]]  | 5 | high | GL 3.0 | Enhance linker support for transform feedback | [[DanMcCabe|DanMcCabe]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_1"></a>XF_SNB_1 (Done) |   |   | high | GL 3.0 | Learn how to test stream output logic in the simulator | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_2"></a>XF_SNB_2 (Done) |   |   | high | GL 3.0 | Implement pass-through GS shader program | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_3"></a>XF_SNB_3 (Done) |   |   | high | GL 3.0 | Output dummy data to transform feedback buffer | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_4"></a>XF_SNB_4 (Done) |   |   | high | GL 3.0 | Output correct data in SEPARATE_ATTRIBS mode | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_5"></a>XF_SNB_5 (Done) |   |   | high | GL 3.0 | Output correct data in INTERLEAVED_ATTRIBS mode | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_6"></a>XF_SNB_6 (Done) |   |   | high | GL 3.0 | Ensure that buffer overflow behavior is correct | [[PaulBerry|PaulBerry]] | [[KennethGraunke|KennethGraunke]] |  
<a name="XF_SNB_7"></a>XF_SNB_7 (Done) |   |   | high | GL 3.0 | Update pointers correctly on begin/end/pause/resume | [[PaulBerry|PaulBerry]] | [[KennethGraunke|KennethGraunke]] |  
<a name="XF_SNB_8"></a>XF_SNB_8 (Done) |   |   | high | GL 3.0 | Implement rasterizer discard | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_9"></a>XF_SNB_9 |   |   | high | GL 3.0 | Thoroughly test and debug all SNB XF behavior except queries | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_10"></a>XF_SNB_10 (Done) |   |   | high | GL 3.0 | Implement PRIMITIVES_GENERATED and TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_SNB_11"></a>XF_SNB_11 (Done) |   |   | high | GL 3.0 | Test PRIMITIVES_GENERATED and TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="XF_IVB_1"></a>XF_IVB_1 (Done) |   |   | high | GL 3.0 | Kernel interface for setting registers | [[PaulBerry|PaulBerry]] | [[EricAnholt|EricAnholt]] |  
<a name="XF_IVB_2"></a>XF_IVB_2 (Done) |   |   | high | GL 3.0 | Output correct data in SEPARATE_ATTRIBS mode | [[PaulBerry|PaulBerry]] | [[EricAnholt|EricAnholt]] |  
<a name="XF_IVB_3"></a>XF_IVB_3 (Done) |   |   | high | GL 3.0 | Output correct data in INTERLEAVED_ATTRIBS mode | [[PaulBerry|PaulBerry]] | [[EricAnholt|EricAnholt]] |  
<a name="XF_IVB_4"></a>XF_IVB_4 |   |   | high | GL 3.0 | Ensure that buffer overflow behavior is correct | [[PaulBerry|PaulBerry]] | [[EricAnholt|EricAnholt]] |  Should be fine, need to review tests and run them.
<a name="XF_IVB_5"></a>XF_IVB_5 (Done) |   |   | high | GL 3.0 | Update pointers correctly on begin/end/pause/resume | [[PaulBerry|PaulBerry]] |   |  Cross-batchbuffer pointers incorrect, need to review tests and implement.
<a name="XF_IVB_6"></a>XF_IVB_6 (Done) |   |   | high | GL 3.0 | Implement rasterizer discard | [[PaulBerry|PaulBerry]] | [[EricAnholt|EricAnholt]] | (works)
<a name="XF_IVB_7"></a>XF_IVB_7 (Done) |   |   | high | GL 3.0 | Thoroughly test and debug all IVB XF behavior except queries | [[PaulBerry|PaulBerry]] |   |  (note: some oglc failures remain, one class may be IVB specific) 
<a name="XF_IVB_8"></a>XF_IVB_8 (Done) |   |   | high | GL 3.0 | Implement PRIMITIVES_GENERATED and TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries | [[PaulBerry|PaulBerry]] |   |  
<a name="XF_IVB_9"></a>XF_IVB_9 (Done) |   |   | high | GL 3.0 | Test PRIMITIVES_GENERATED and TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries | [[PaulBerry|PaulBerry]] |   |  
<a name="XF14"></a>XF14 (Done) |    | 5 | low | GL 3.0 | Test input validity | [[DanMcCabe|DanMcCabe]] | [[EugeniDodonov|EugeniDodonov]], [[PaulBerry|PaulBerry]] | [[http://cgit.freedesktop.org/~eugeni/piglit/|http://cgit.freedesktop.org/~eugeni/piglit/]], priority is lowered because Marek's piglit test already covers this partly
<a name="XF15"></a>XF15 |    | 3 | low | GL 3.0 | Test buffer binding | [[DanMcCabe|DanMcCabe]] | [[EugeniDodonov|EugeniDodonov]], [[PaulBerry|PaulBerry]] | [[http://cgit.freedesktop.org/~eugeni/piglit/|http://cgit.freedesktop.org/~eugeni/piglit/]], priority is lowered because Marek's piglit test already covers this partly
<a name="XF16"></a>XF16 (Done) |    | 2 | high | GL 3.0 | Test linking and glUseProgram | [[DanMcCabe|DanMcCabe]] | [[PaulBerry|PaulBerry]] |  
<a name="XF17"></a>XF17 |    | 2 | high | GL 3.0 | Test tesselation and incomplete primitives | [[DanMcCabe|DanMcCabe]] | Paul Berry | I think this estimate is low.
<a name="XF18"></a>XF18 |    | 1 | high | GL 3.0 | Test buffer overflow | [[DanMcCabe|DanMcCabe]] | Paul Berry | I think this estimate is low.
<a name="XF19"></a>XF19 |    | 3 | high | GL 3.0 | Test varyings | [[DanMcCabe|DanMcCabe]] | Paul Berry | I think this estimate is low.
<a name="XF20"></a>XF20 (Done) |    | 5 | high | GL 3.0 | Test output | [[DanMcCabe|DanMcCabe]] | [[MarekOlsak|MarekOlsak]] |  
<a name="IR1"></a>IR1 |    | 10 | high | perf | Replace context “program” attached state with SSO-style shader state | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="IR2"></a>IR2 | [[IR1|WorkQueue]]  | 10 | high | perf | Generate GLSL IR for ARB assembly programs | [[IanRomanick|IanRomanick]] |   |  
<a name="IR3"></a>IR3 | [[IR1|WorkQueue]]  | 10 | high | perf | Generate GLSL IR for NV vertex assembly programs | [[IanRomanick|IanRomanick]] |   | There will be a lot of cut-and-paste between IR2 and IR3
<a name="IR4"></a>IR4 |    | 3 | high | perf | Remove NV fragment assembly program support | [[IanRomanick|IanRomanick]] |   |  
<a name="CD0"></a>CD0 (Done) |    | 10 | high | GL 3.0 | Refactor VUE layout code in preparation for `gl_ClipDistance` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD1"></a>CD1 (Done) |    | 5 | high | GL 3.0 | Compiler front-end support for `gl_Distance` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD2"></a>CD2 (Done) | [[CD1|WorkQueue]]  | 5 | high | GL 3.0 | Lower `gl_ClipDistance` from float[8] to vec4[2] | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD3"></a>CD3 (Done) | [[CD2|WorkQueue]]  | 5 | high | GL 3.0 | Test `gl_ClipDistance` lowering pass | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD4"></a>CD4 (Done) | [[CD3|WorkQueue]]  | 5 | high | GL 3.0 | SNB support for `gl_ClipDistance` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] | "First triangle" achieved on private branch 9/2
<a name="CD5"></a>CD5 (Done) | [[CD1|WorkQueue]]  | 3 | med | GL 3.0 | Emit error if a shader writes both `gl_ClipDistance` and `gl_ClipVertex` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD6"></a>CD6 (Done) |    | 5 | high | GL 3.0 | Add `gl_ClipDistance` as a fragment shader built-in input | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD7"></a>CD7 (Done) |    | 5 | high | GL 3.0 | Implement and test `gl_ClipDistance` sizing rules | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CD8"></a>CD8 (Done) |    | 3 | high | GL 3.0 | `gl_ClipDistance` tests | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CV1"></a>CV1 (Done) |    | 5 | med | GL 2.x | Add gl_vert_result slot for `gl_ClipVertex` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CV2"></a>CV2 (Done) |   | 5 | med | GL 2.x | Detect writes to `gl_ClipVertex` in the linker | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] | Proved to be unnecessary
<a name="CV3"></a>CV3 | [[CV2|WorkQueue]]  | 3 | low | GL 2.x | Use proper slot for writes to `gl_ClipVertex` (i915) | [[PaulBerry|PaulBerry]] |   |  
<a name="CV4"></a>CV4 | [[CV2|WorkQueue]]  | 3 | low | GL 2.x | Use proper slot for writes to `gl_ClipVertex` (i965, pre-SNB) | [[PaulBerry|PaulBerry]] |   |  
<a name="CV5"></a>CV5 (Done) | [[CV2|WorkQueue]]  | 3 | low | GL 2.x | Use proper slot for writes to `gl_ClipVertex` (i965, SNB+) | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="CV6"></a>CV6 (Done) |    | 3 | low | GL 2.x | `gl_ClipVertex` tests | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] | These could be co-developed w/CD8
<a name="HTRIG1"></a>HTRIG1 (Done) |    | 2 | med | GL 3.0 | Test GLSL 1.30 hyperbolic trig functions | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="HTRIG2"></a>HTRIG2 (Done) | [[VS12|WorkQueue]]  | 3 | med | GL 3.0 | Fix GLSL 1.30 hyperbolic trig functions | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST1"></a>TEST1 (Done) |    | 5 | med | GL 3.0 | Adapt built-in tests for new unsigned types (vector and scalar) | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST2"></a>TEST2 (Done) |    | 3 | med | GL 3.0 | Adapt built-in tests to test operators | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST3"></a>TEST3 (Done) | [[TEST6|WorkQueue]]   | 3 | med | GL 3.0 | Test `isinf` and `isnan` | [[PaulBerry|PaulBerry]] | [[PaulBerry|PaulBerry]] | Depends on TEST6 because otherwise interpolation turns infinities into [[NaNs|NaNs]]
<a name="TEST4"></a>TEST4 (Done) |    | 3 | med | GL 3.0 | Test `noperspective` interpolation qualifier. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST5"></a>TEST5 |    | 3 | med | GL 3.0 | Test `centroid` interpolation qualifier. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST6"></a>TEST6 (Done) |    | 3 | med | GL 3.0 | Test flat interpolation qualifier. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="TEST7"></a>TEST7 (Done) |    | 1 | med | GL 3.0 | Shader inputs are read-only.  We already mark global inputs as ro, but have no tests for it. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="HIZ1"></a>HIZ1 (Done) |    | 5 | high | perf | Write resolve meta-ops for hiz->depth and depth->hiz | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ2"></a>HIZ2 (Done) |    | 5 | high | perf | Hook resolves into texture & draw functions (no mipmaps yet) | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ3"></a>HIZ3 (Done) | [[HIZ2|WorkQueue]]  | 4 | high | perf | Test and debug hiz->depth resolve hooks (single ctx, no mipmaps). | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ4"></a>HIZ4 (Done) | [[HIZ2|WorkQueue]]  | 4 | high | perf | Test and debug depth->hiz resolve hooks (single ctx, no mipmaps). | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ5"></a>HIZ5 (Done) | [[HIZ3|WorkQueue]] [[HIZ4|WorkQueue]]  | 4 | high | perf | Test and debug multi-context resolve hooks. | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ6"></a>HIZ6 (Done) |    | 5 | med | perf | Fast clear | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="HIZ7"></a>HIZ7 (Done) | [[HIZ3|WorkQueue]] [[HIZ4|WorkQueue]]  | 4 | high | perf | Resolve mipmap depth textures. | [[ChadVersace|ChadVersace]] | [[ChadVersace|ChadVersace]] |  
<a name="GLSL1"></a>GLSL1 (Done) |    | 1 | med | GL 3.0 | Generate errors for integer literals that are out of bounds | [[ChadVersace|ChadVersace]] | [[EricAnholt|EricAnholt]] |  
<a name="GLSL2"></a>GLSL2 (Done) |    | 3 | med | GL 3.0 | Add `gl_VertexID` and related global variables | [[ChadVersace|ChadVersace]] | [[IanRomanick|IanRomanick]] | Finished by Ian in 2010
<a name="GLSL3"></a>GLSL3 (Done) |    | 2 | med | GL 3.0 | Add opcodes for `isinf` and `isnan` | [[IanRomanick|IanRomanick]] | [[PaulBerry|PaulBerry]] | Proved to be unnecessary
<a name="GLSL4"></a>GLSL4 (Done) | [[GLSL3|WorkQueue]]  | 5 | med | GL 3.0 | Lower `isinf` and `isnan` opcodes to various modes of detection on different hardware | [[IanRomanick|IanRomanick]] | [[PaulBerry|PaulBerry]] | Proved to be unnecessary
<a name="GLSL5"></a>GLSL5 (Done) | [[TEST3|WorkQueue]]  | 3 | med | GL 3.0 | Add `isinf` and `isnan` built-in functions. | [[IanRomanick|IanRomanick]] | [[PaulBerry|PaulBerry]] |  
<a name="GLSL6"></a>GLSL6 (Done) |    | 2 | med | GL 3.0 | Implement proper integer division and modulus support. | [[KennethGraunke|KennethGraunke]] | [[KennethGraunke|KennethGraunke]] | Patches on mailing list
<a name="LINK1"></a>LINK1 |    | 2 | med | GL 3.0 | Generate errors when interpolation qualifiers on `gl_Color` don't match | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="LINK2"></a>LINK2 |    | 2 | low | GL 3.0 | Generate errors when precision qualifiers don't match. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="LINK3"></a>LINK3 |    | 3 | med | GL 3.0 | Generate an error when there is an assignment to more than one of `gl_FragColor`, `gl_FragData`, and a user-defined fragment shader output. | [[ChadVersace|ChadVersace]] | [[PaulBerry|PaulBerry]] |  
<a name="TEX1"></a>TEX1 (Done) |    | 5 | med | GL 3.0 | [[EXT_texture_shared_exponent|http://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt]] | [[ChadVersace|ChadVersace]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX2"></a>TEX2 (Done) |    | 1 | med | GL 3.0 | [[EXT_packed_float (texturing)|http://www.opengl.org/registry/specs/EXT/packed_float.txt]] | [[ChadVersace|ChadVersace]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX2.5"></a>TEX2.5 (Done) |    | 4 | med | GL 3.0 | [[EXT_packed_float (renderbuffer)|http://www.opengl.org/registry/specs/EXT/packed_float.txt]] | Eric Anholt |   |  
<a name="TEX3"></a>TEX3 (Done) |    | 5 | low | perf | Real half-float texture support | [[ChadVersace|ChadVersace]] |   |  
<a name="TEX4"></a>TEX4 (Done) |    | 4 | med | GL 3.0 | Floating-point depth buffer support. | [[KennethGraunke|KennethGraunke]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX5"></a>TEX5 (Done) |    | 3 | med | GL 3.0 | Add 6 [[EXT_texture_integer|http://www.opengl.org/registry/specs/EXT/texture_integer.txt]] entry points | [[IanRomanick|IanRomanick]] | [[BrianPaul|BrianPaul]] |  
<a name="TEX6"></a>TEX6 (Done) |    | 2 | med | GL 3.0 | Update existing entry points to accept [[EXT_texture_integer|http://www.opengl.org/registry/specs/EXT/texture_integer.txt]] enums | [[IanRomanick|IanRomanick]] | [[BrianPaul|BrianPaul]] |  
<a name="TEX7"></a>TEX7 (Done) | [[TEX6|WorkQueue]]  | 5 | med | GL 3.0 | Update pixel (texel) transfer paths to support integer textures | [[IanRomanick|IanRomanick]] | [[BrianPaul|BrianPaul]] |  
<a name="TEX8"></a>TEX8 (Done) |    | 3 | med | GL 3.0 | Add GLSL built-in integer sampler types and functions. | [[IanRomanick|IanRomanick]] | [[KennethGraunke|KennethGraunke]] | Compiler support in place since 2010
<a name="TEX9) (Done"></a>TEX9 | [[TEX8|WorkQueue]]  | 3 | med | GL 3.0 | 965 back-end support for integer samplers. | [[IanRomanick|IanRomanick]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX9.1) (Done"></a>TEX9.1 |   | 3 | med | GL 3.0 | integer: clamping and conversion in readback path. | [[EricAnholt|EricAnholt]] |   |  
<a name="TEX9.2) (Done"></a>TEX9.2 |   | 3 | med | GL 3.0 | integer: [[BlitFramebuffer|BlitFramebuffer]] | [[EricAnholt|EricAnholt]] |   |  
<a name="TEX9.3) (Done"></a>TEX9.3 (Done) |   | 3 | med | GL 3.0 | integer: [[DrawPixels|DrawPixels]] | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX9.3) (Done"></a>TEX9.4 |   | 3 | med | GL 3.0 | integer: [[CopyPixels|CopyPixels]] | [[EricAnholt|EricAnholt]] |   |  
<a name="TEX10"></a>TEX10 (Done) |    | 5 | med | GL 3.0 | Test 3.0 spec section "Required Texture Formats" | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="TEX11"></a>TEX11 (Done) |    | 5 | med | GL 3.0 | Test 3.0 spec section "Required Framebuffer Formats" | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="VSTEX"></a>VSTEX (Done) | [[VS12|WorkQueue]]  | 10 | high | GL 3.0 | Implement Vertex Shader Texturing | [[KennethGraunke|KennethGraunke]] | [[KennethGraunke|KennethGraunke]] | Upstream; still need piles more tests.
<a name="VS1"></a>VS1 (Done) |    | 5 | high | perf | i965 vertex shader “first triangle” | [[EricAnholt|EricAnholt]] |   |  
<a name="VS2"></a>VS2 (Done) |    | 5 | high | perf | Register allocator | [[EricAnholt|EricAnholt]] |   |  
<a name="VS3"></a>VS3 (Done) |    | 5 | high | perf | Assignment handling | [[EricAnholt|EricAnholt]] |   |  
<a name="VS4"></a>VS4 (Done) |    | 5 | high | perf | Copy propagation | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  ||
<a name="VS5"></a>VS5 |    | 5 | high | perf | Dead code elimination | [[EricAnholt|EricAnholt]] |   |  
<a name="VS6"></a>VS6 (Done) |    | 5 | high | perf | Uniform arrays | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="VS7"></a>VS7 (Done) | [[GLSL2|WorkQueue]]  | 5 | high | perf | Support built-in `gl_VertexID` in i965 vertex shader back-end | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="VS8"></a>VS8 (Done) |    | 5 | high | perf | Compute to MRF | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="VS9"></a>VS9 (Done) |    | 5 | high | perf | Constant propagation | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="VS10"></a>VS10 |    | 5 | med | perf | Instruction scheduling | [[EricAnholt|EricAnholt]] |   |  
<a name="VS11"></a>VS11 (Done) |    | 5 | high | perf | Large URB entries | [[EricAnholt|EricAnholt]] |   |  
<a name="VS12"></a>VS12 (Done) |    | 5 | high | perf | New VS backend on by default | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="PERF1"></a>PERF1 |    | 3 | low | perf | IVB conditional rendering support | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF2"></a>PERF2 |    | 10 | med | perf | Kernel domain tracking lobotomy | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="PERF3"></a>PERF3 |    | 10 | high | perf | Non-blocking [[ARB_map_buffer_range|http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt]] | [[EricAnholt|EricAnholt]] | [[BenWidawski|BenWidawski]] |  
<a name="PERF4"></a>PERF4 (Done) | [[RBMAP4|WorkQueue]]  | 3 | high | perf | Uncached -> cached map blits | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="PERF5"></a>PERF5 |    | 3 | med | perf | Kernel GFDT testing | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF6"></a>PERF6 |    | 5 | low | perf | Guardband clipping | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF7"></a>PERF7 |    | 5 | med | perf | GLSL expression CSE | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF8"></a>PERF8 |    | 5 | med | perf | GLSL texture operation CSE | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF9.1"></a>PERF9.1 |    | 3 | low | perf | Hack in the constant color write and analyze performance impact | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF9.2"></a>PERF9.2 | [[PERF9.1|WorkQueue]]  | 5 | low | perf | Detect glClear constant color writes and emit correct constant color write code | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF10.1"></a>PERF10.1 |    | 5 | med | perf | Fragment shader uniform array indexing.  Plumb in reladdrs and fix up optimization to know about them. | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF10.2"></a>PERF10.2 | [[PERF10.1|WorkQueue]]  | 5 | med | perf | Get the send message working for loading uniforms | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF11"></a>PERF11 |    | 5 | med | perf | Meta-ops winsys -> texture bind hook | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF12"></a>PERF12 | [[PERF11|WorkQueue]]  | 5 | med | perf | glCopyTexImage from winsys | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF13"></a>PERF13 | [[PERF11|WorkQueue]]  | 5 | med | perf | glBlitFramebuffer from winsys | [[EricAnholt|EricAnholt]] |   |  
<a name="PERF14"></a>PERF14 (Done) |    | 3 | med | perf | FS assignment handling rework. Port over the lesson from VS assignment handling, revert the old mess. | [[EricAnholt|EricAnholt]] | [[KennethGraunke|KennethGraunke]] | 
<a name="FFS1"></a>FFS1 (Done) |    | 5 | high | perf | Finish fixed-function fragment shader support | [[EricAnholt|EricAnholt]] |   | High priority because the work is mostly done.
<a name="FFS2"></a>FFS2 |    | 5 | high | perf | Get glxgears running in fixed-function vertex shader conversion | [[EricAnholt|EricAnholt]] |   | High priority because the work is mostly done.
<a name="FFS3"></a>FFS3 | [[FFS2|WorkQueue]]  | 5 | high | perf | Make sure fixed-function vertex shader conversion doesn't regress softpipe | [[EricAnholt|EricAnholt]] |   |  
<a name="FFS4"></a>FFS4 | [[FFS2|WorkQueue]] [[VS12|WorkQueue]]  | 5 | high | perf | Make sure fixed-function vertex shader conversion doesn't regress i965 VS | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP1"></a>RBMAP1 (Done) |    | 10 | med | perf | Renderbuffer mapping hook.  This includes nouveau and radeon, unfortunately.  It also includes getting public support for dropping DRI1 drivers from the tree. | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="RBMAP2"></a>RBMAP2 | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast render-buffer color mapping | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP3"></a>RBMAP3 | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast render-buffer depth mapping | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP4"></a>RBMAP4 (Done) | [[RBMAP1|WorkQueue]]  | 5 | med | perf | swrast glReadPixels mapping | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="RBMAP5"></a>RBMAP5 | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast glDrawPixels mapping | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP6"></a>RBMAP6 | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast stencil mapping | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP7"></a>RBMAP7 |    | 3 | med | perf | Accumulation buffer tests | [[EricAnholt|EricAnholt]] |   |  
<a name="RBMAP8"></a>RBMAP8 (Done) | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast accumulation buffer mapping | [[EricAnholt|EricAnholt]] | [[BrianPaul|BrianPaul]] |  
<a name="RBMAP9"></a>RBMAP9 (Done) | [[RBMAP1|WorkQueue]]  | 5 | low | perf | swrast clear mapping | [[EricAnholt|EricAnholt]] | [[BrianPaul|BrianPaul]] |  
<a name="CUBE1"></a>CUBE1 (Done) |    | 3 | med | GL 3.0 | Allow glTexImage2D and glCopyTexImage2D with a depth component cube map | [[IanRomanick|IanRomanick]] | [[AnujPhogat|AnujPhogat]] |  
<a name="CUBE2"></a>CUBE2 | [[CUBE1|WorkQueue]]  | 5 | med | GL 3.0 | Enable back-end generation of cube shadow samplers | [[IanRomanick|IanRomanick]] | [[AnujPhogat|AnujPhogat]] |  
<a name="CUBE3"></a>CUBE3 (Done) | [[CUBE2|WorkQueue]]  | 10 | med | GL 3.0 | Figure out what AMD & NVIDIA do for fixed-function cube shadows and imitate that. | [[IanRomanick|IanRomanick]] | [[AnujPhogat|AnujPhogat]] | NVIDIA and AMD each do something different, so undefined is undefined.  There's nothing to do here.
<a name="ARRAY"></a>ARRAY (Done) |    | 5 | ? | GL 3.0 | Finish support for [[ARB_texture_array|http://www.opengl.org/registry/specs/ARB/texture_array.txt]] | [[EricAnholt|EricAnholt]] | [[EricAnholt|EricAnholt]] |  
<a name="CB1"></a>CB1 (Done) |    | 3 | low | GL 3.0 | Verify error code generation for `glClearBuffer`* | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="CB2"></a>CB2 (Done) |    | 3 | med | GL 3.0 | Verify depth clears with `glClearBuffer`* | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="CB3"></a>CB3 (Done) |    | 3 | med | GL 3.0 | Verify stencil clears with `glClearBuffer`* | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="CB4"></a>CB4 |    | 3 | med | GL 3.0 | Verify mixed format color buffer clears with `glClearBuffer`* | [[IanRomanick|IanRomanick]] |   |  
<a name="CB5"></a>CB5 |    | 3 | med | GL 3.0 | Verify that `glClearBuffer`* can be compiled into display lists | [[IanRomanick|IanRomanick]] |   |  
<a name="CC1"></a>CC1 |    | 5 | med | GL 3.0 | Implement GLX protocol for `SetClientInfo` (client & server) | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] | The client bits are mostly done on the GLX_ARB_create_context branch of my Mesa tree.  XCB patches heading to the list soon.
<a name="CC2"></a>CC2 | [[CC1|WorkQueue]]  | 5 | med | GL 3.0 | Implement GLX protocol for `CreateContextAttribs` | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="CC3"></a>CC3 | [[CC2|WorkQueue]]  | 3 | med | GL 3.0 | Implement DRI2 `createContext2` interface that sends the attributes to the driver. | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="CC4"></a>CC4 | [[CC3|WorkQueue]]  | 3 | med | GL 3.0 | Add support for the DRI2 `createContext2` interface to the Intel drivers. | [[IanRomanick|IanRomanick]] | [[IanRomanick|IanRomanick]] |  
<a name="UNI1"></a>UNI1 (Done) |    | 10 | ? | GL 3.0 | Create data structure similar to glsl_type for storing uniform data.  It should contain the original typed data and the float “shadow” for drivers that need that. | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] | Patches in the idr-work branch of my personal git repo.
<a name="UNI2"></a>UNI2 (Done) | [[UNI1|WorkQueue]]  | 5 | ? | GL 3.0 | Create map from uniform names to storage (new structure). | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] |  
<a name="UNI3"></a>UNI3 (Done) | [[UNI2|WorkQueue]]  | 10 | ? | GL 3.0 | Store uniform data in new structure. | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] |  
<a name="UNI4"></a>UNI4 (Done) | [[UNI3|WorkQueue]]  | 10 | ? | GL 3.0 | Make `ir_to_mesa` use the new uniform storage and mapping | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] |  
<a name="UNI5"></a>UNI5 | [[UNI7|WorkQueue]]  | 10 | ? | GL 3.0 | Make `brw_fs` use the new uniform storage and mapping | [[KennethGraunke|KennethGraunke]] |   | With the other work, this will just be an optimization.  It can wait a bit.
<a name="UNI6"></a>UNI6 | [[UNI4|WorkQueue]]  | ? | ? | GL 3.0 | Split out any remaining uniform handling & resource allocation from `ir_to_mesa` | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] |  
<a name="UNI7"></a>UNI7 | [[UNI6|WorkQueue]]  | ? | ? | GL 3.0 | make `ir_to_mesa` stop generating code for fragment shaders when there is another (hardware) back-end active. | [[KennethGraunke|KennethGraunke]] | [[IanRomanick|IanRomanick]] |  
<a name="TXF1"></a>TXF1 (Done) |    | 3 | med | GL 3.0 | Add support for the `ir_txf` opcode using the “ld” sampler message in `brw_fs` | [[KennethGraunke|KennethGraunke]] | [[KennethGraunke|KennethGraunke]] |  
<a name="TXF2"></a>TXF2 (Done) |    | 4 | med | GL 3.0 | Write tests for texelFetch | [[KennethGraunke|KennethGraunke]] | [[DaveAirlie|DaveAirlie]] |  
<a name="TXS1"></a>TXS1 (Done) |    | 3 | high | GL 3.0 | Merge kwg/txs branch with airlied's patch, and push both. | [[KennethGraunke|KennethGraunke]] |   | High priority because the work is mostly done.
<a name="TXS2"></a>TXS2 (Done) |    | 3 | high | GL 3.0 | Write tests for textureSize | [[KennethGraunke|KennethGraunke]] |   | Could add more tests
<a name="TXS3"></a>TXS3 (Done) |    | 3 | med | GL 3.0 | Implement TXS on GEN4 via SIMD16 resinfo message | [[KennethGraunke|KennethGraunke]] |   |  
"""]]