struct pipe_buffer *indexBuffer, unsigned indexSize,
unsigned mode, unsigned start, unsigned count)
{
- if (indexSize != 1) {
- nv40_draw_elements_vbo(pipe, indexBuffer, indexSize,
- mode, start, count);
- } else {
+ struct nv40_context *nv40 = nv40_context(pipe);
+
+ /* 0x4497 doesn't support real index buffers, and there doesn't appear
+ * to be support on any chipset for 8-bit indices.
+ */
+ if (nv40->curie->grclass == NV44TCL || indexSize == 1) {
nv40_draw_elements_inline(pipe, indexBuffer, indexSize,
mode, start, count);
+ } else {
+ nv40_draw_elements_vbo(pipe, indexBuffer, indexSize,
+ mode, start, count);
}
pipe->flush(pipe, 0);