Navigate to the top level

Degenerate_begin_end

Description
Tests atypical situations involving NV097_SET_BEGIN_END.
Suite class def

BeginWithoutEnd

Renders a series of 3 triangles and one quad. The middle two triangles send NV097_SET_BEGIN_END with a triangle primitive, but do not send NV097_SET_BEGIN_END with NV097_SET_BEGIN_END_OP_END when completed. The final quad is treated as a triangle by the nv2a as the previous triangle primitive was never ended.

Image with alpha
Test result for Degenerate_begin_end::BeginWithoutEnd
Image as seen on display
No alpha test result for Degenerate_begin_end::BeginWithoutEnd

EmptyBeginEnd

Renders 7 rows, each labeled with a primitive type. Each row draws a red triangle, a green quad, and a blue triangle, each in its own properly terminated NV097_SET_BEGIN_END block. Between each pair of shapes, an empty NV097_SET_BEGIN_END block using the row's primitive type is sent (BEGIN immediately followed by END with no vertices). Each row is expected to contain exactly the three solid shapes, with no missing, extra, or misshapen geometry.

Image with alpha
Test result for Degenerate_begin_end::EmptyBeginEnd
Image as seen on display
No alpha test result for Degenerate_begin_end::EmptyBeginEnd

EndWithoutBegin

Demonstrates that a degenerate END without an associated BEGIN is silently ignored by HW. Each subtest renders a red triangle, then performs an empty BEGIN(primitive), END followed by the vertices for the primitive, followed by another END in green. Finally a standard BEGIN(primitive) - vertices - END is performed in blue. The green draw is never rendered, since hardware was never told to begin the draw.

Image with alpha
Test result for Degenerate_begin_end::EndWithoutBegin
Image as seen on display
No alpha test result for Degenerate_begin_end::EndWithoutBegin