[Mesa-dev] Intel: Please help define the common rectangle primitive type

Marek Olšák maraeo at gmail.com
Thu Aug 4 12:38:35 UTC 2016


Hi,

This is my definition so far, which is an intersection of AMD and NV rectangles:

Definition and behavior:
- The rectangle primitive is defined by its first 3 vertices.
- The 4th vertex is derived (extrapolated) during rasterization.
- It's treated as a triangle by all stages before rasterization.
- The rectangle edges must be parallel or perpendicular to X and Y
axes ("axis-aligned), i.e. the rectangle can only be rotated in
90-degree increments and flipped over.
- It must be rasterized as a rectangle (no diagonal tearing allowed,
no artifacts on the diagonal allowed)

The behavior is undefined:
- if the rectangle edges are not axis-aligned.
- if Z coordinates of all 3 vertices are not equal.
- if the rectangle intersects the clip space boundaries. (all options
are allowed: clip, cull, or accept the primitive)
- if clip planes, clip distances, or cull distances are enabled.
- if face culling is enabled. (face determination is undefined)
Likewise, the content of gl_FrontFacing is undefined.

It's possible to implement this on top of GL_NV_fill_rectangle. It's
not possible to implement GL_NV_fill_rectangle on top of this.

What do we need to add to accommodate Intel?

Thanks,
Marek


More information about the mesa-dev mailing list