https://bugs.freedesktop.org/show_bug.cgi?id=43096
Bug #: 43096 Summary: r300g: r300_emit_draw_elements() refusing to render when max_index = 0xffffffff Classification: Unclassified Product: Mesa Version: git Platform: Other OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r300 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: tstellar@gmail.com
Created attachment 53692 --> https://bugs.freedesktop.org/attachment.cgi?id=53692 Callstack from error message
I'm not exactly sure if this is a bug in r300g or st/mesa, but none of the leader portraits are rendered in Civ4 and this error message is being printed:
r300: Got a huge number of vertices: 310, refusing to render (max_index: -1).
The reason this error message is being printed is because max_index is 0xffffffff, so this if statement at r300_render.c:448 evaluates to true:
if (count >= (1 << 24) || max_index >= (1 << 24)) { fprintf(stderr, "r300: Got a huge number of vertices: %i, " "refusing to render (max_index: %i).\n", count, max_index); return; }
I'm not sure if the state tracker is wrong for passing 0xffffffff as the max_index or if the driver needs to handle a max_index of 0xffffffff as a special case, because it is the default value for pipe_draw_info->max_index. I have captured the call stack when this error message is printed and attached it to this bug report.