blob: 8a74359dfd1fa7c2d5225a4c1a46610fc08616da (
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
|
This page has Mesa impementation notes for the
[[ARB_compute_shader|https://www.opengl.org/registry/specs/ARB/compute_shader.txt]]
extension.
# i965 Status
## Started / In-progress
* GLES 3.1 conformance test suite results (ES31-CTS.compute_shader*):
* Ivy Bridge, Haswell: All 36 tests passing
* Broadwell: 28 of 36 tests passing
* Piglit tests
## Not Started
* Always be able to produce SIMD16 code. SIMD32.
* curro is working on SIMD16
* See MAX_COMPUTE_WORK_GROUP_INVOCATIONS note below
## Sent for Code Review
## Complete
* Multiple pipelines - [[upstream 20ef23b2|http://cgit.freedesktop.org/mesa/mesa/log/?id=20ef23b2]]
* Basic compute program generations - [[upstream 5328ffbe|http://cgit.freedesktop.org/mesa/mesa/log/?id=5328ffbe]]
* atomic counters - [[upstream eeee212e|http://cgit.freedesktop.org/mesa/mesa/log/?id=eeee212e]]
* Texture sampling - [[upstream b01d047|http://cgit.freedesktop.org/mesa/mesa/log/?id=b01d047]]
* barrier()
* part1 - [[upstream f0e77239|http://cgit.freedesktop.org/mesa/mesa/log/?id=f0e77239]]
* part2 - [[upstream 34cff76|http://cgit.freedesktop.org/mesa/mesa/log/?id=34cff76]]
* uniforms - [[upstream 06ada49|http://cgit.freedesktop.org/mesa/mesa/commit/?id=06ada49]]
* DispatchCompute - [[upstream 013031b2|http://cgit.freedesktop.org/mesa/mesa/log/?id=013031b2]]
* gl_LocalInvocationID - [[upstream 49f999b|http://cgit.freedesktop.org/mesa/mesa/commit/?id=49f999b]]
* gl_WorkGroupID - [[upstream c5743a5|http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5743a5]]
* gl_GlobalInvocationID - [[upstream 2b6cc03|http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b6cc03]]
* gl_LocalInvocationIndex - [[upstream c4cf824|http://cgit.freedesktop.org/mesa/mesa/commit/?id=c4cf824]]
* DispatchComputeIndirect - [[upstream ebbe6cd|http://cgit.freedesktop.org/mesa/mesa/commit/?id=ebbe6cd]]
* gl_NumWorkGroups - [[upstream 681b4ba|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=681b4ba~9..681b4ba]]
* SSBO - [[upstream 7b39114|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=7b39114~..7b39114]]
* New GLSL memory barrier functions
* groupMemoryBarrier(), memoryBarrierShared(), memoryBarrierBuffer(),
memoryBarrierImage(), memoryBarrierAtomicCounter()
* [[upstream 51694072|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=51694072~4..51694072]]
* L3 for SLM (shared variables) -
[[upstream 228d5a3|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=228d5a3~16..228d5a3]]
* Shared variable support
* parsing -
[[upstream fb3da129|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=fb3da129~5..fb3da129]]
* lowering and atomics -
[[upstream e288b4a|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=e288b4a~25..e288b4a]]
* Enable extension - [[upstream d04612b|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=d04612b~..d04612b]]
* Update docs - [[upstream 83e8e07|http://cgit.freedesktop.org/mesa/mesa/log/?qt=range&q=83e8e07~2..83e8e07]]
* Hardware: Ivybridge, Haswell, Broadwell
## Issues
* OpenGL 4.3 requires 1024 for MAX_COMPUTE_WORK_GROUP_INVOCATIONS
* For devices with 64 threads per subslice, this requires that
SIMD16 never fails
* Unlike FS, we can't just fallback to only providing a SIMD8
program (if the local work group size is too big)
* For Gen8 and many mobile skews this requires SIMD32
* Note: OpenGLES 3.1 only requires 128 which SIMD8 can always handle
## Git Repositories
* [[http://cgit.freedesktop.org/~jljusten/mesa/log/?h=cs]]
* [[git://people.freedesktop.org/~jljusten/mesa]] cs
|