summaryrefslogtreecommitdiff
path: root/I965Errata.mdwn
blob: 0ac40a3e0e6752332f566c9bf3c4560c049e8863 (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
# Gen7/Ivy Bridge: Primitive ID (GLSL 1.50+) is incorrect when using software primitive restart.

Ivy Bridge hardware doesn't support primitive restart under the following circumstances:

- When the primitive type is GL_LINE_LOOP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, or GL_POLYGON.

- When the primitive restart is not equal to -1 (0xff, 0xffff, or 0xffffffff, depending whether the type passed to glDrawElements() is GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT).

In these circumstances, the driver emulates primitive restart using a software mechanism.  When this software mechanism is used, and GLSL 1.50 is in use:

- If a geometry shader is present, the values received by the geometry shader's gl_PrimitiveIDIn input will be incorrect.

- If a geometry shader is not present, the values received by the fragment shader's gl_PrimitiveID input will be incorrect.

Gen7/Haswell is not affected.

Experimental code which partially fixes this problem can be found in branch "prim-id-in-with-sw-prim-restart" of https://github.com/stereotype441/mesa.git.

# Gen7/Ivy Bridge: Triangle strips have incorrect vertex order when geometry shaders in use.

When primitives are drawn using GL_TRIANGLE_STRIP or
GL_TRIANGLE_STRIP_ADJACENCY, alternate triangles are delivered to
the geometry shader with their vertices in the wrong order.

For example, if a triangle strip is drawn using 6 vertices, then
according to the GL spec, the triangles received by the geometry
shader should consist of:

- Vertices 1, 2, and 3
- Vertices 3, 2, and 4
- Vertices 3, 4, and 5
- Vertices 5, 4, and 6

Ivy Bridge hardware delivers the correct triangles to the
geometry shader, but not in the right order.  The order used is:

- Vertices 1, 2, and 3
- Vertices 2, 4, and 3
- Vertices 3, 4, and 5
- Vertices 4, 6, and 5

Note that triangle orientation is still correct.

Gen7/Haswell is not affected.

Experimental code which partially fixes this problem can be found in branch "gs-reorder-triangle-vertices" of https://github.com/stereotype441/mesa.git.

# All platforms: Trigonometric instructions (sin, cos) do not handle large inputs.

See <https://lists.freedesktop.org/archives/mesa-dev/2014-December/072429.html> for more information.

Issues known to be a result:

- Some dEQP tests fail due to this problem. See <https://bugs.freedesktop.org/show_bug.cgi?id=89634>
- The jellyfish demo in [glmark2](https://github.com/glmark2/glmark2) misrenders. See <https://bugs.freedesktop.org/show_bug.cgi?id=86755>