When collinear triangles are passed to OpenGL triangle strip draw call, unrelated triangles are clipped. The clipped triangle will always have two vertices behind the view. The bug is reproducible in all ezQuake, QuakeSpasm, FTE versions. From 2024-09-15 a temporary workaround got introduced in ezQuake to filter out collinear triangles on macOS arm64. The Quake engines all use fixed pipeline OpenGL on macOS, but the bug is reproducible with plain Metal as well as mentioned in the QuakeSpasm issue. No other hardware or OS combination has produced this issue, even macOS Intel is fine.
Files
Triangle here is incorrectly clipped due to a collinear triangle elsewhere in the scene. Pruning the collinear triangle makes the missing triangle here draw again.
Description
When collinear triangles are passed to OpenGL triangle strip draw call, unrelated triangles are clipped. The clipped triangle will always have two vertices behind the view. The bug is reproducible in all ezQuake, QuakeSpasm, FTE versions. From 2024-09-15 a temporary workaround got introduced in ezQuake to filter out collinear triangles on macOS arm64. The Quake engines all use fixed pipeline OpenGL on macOS, but the bug is reproducible with plain Metal as well as mentioned in the QuakeSpasm issue. No other hardware or OS combination has produced this issue, even macOS Intel is fine.
Files
Triangle here is incorrectly clipped due to a collinear triangle elsewhere in the scene. Pruning the collinear triangle makes the missing triangle here draw again.