On 27.06.2009 23:57, Maciej Cencora wrote:
> Hi,
> 
> while playing with r300 driver I've stumbled upon a problem with splitting 
> vertexes.
> 
> Let's say we get rendering operation where number of indexes in index buffer 
> is 80000 and max_index is 20000. We are calling vbo_split_prims because 
> number 
> of indexes exceeds hw limit.
> In flush_vertex (vbo_split_inplace.c) function the split->ib is not null, so 
> the max_index (20000) won't be changed. In the end the draw_prims functions 
> will be called with inappropriate max_index number.
> 
> I'm seeing this behaviour with UT2004 demo on current r300 driver.
> 
> I think the solution would be to always calculate min/max_index numbers just 
> like in the !split->ib path but I want to be sure before I commit the patch.
> 
> Any comments?

Apart from this problem, I think the limits in the r300 driver set are
maybe not really hw limits. I'm not sure why max_verts is limited at all
(though maybe limited by buffer size?), and max_indices could be bumped
at least for r500. (I always considered it odd that even r200 could
accept 23 bits worth of indices for the INDX_BUFFER command but only 16
bit number of amount of vertices in vertex fetch control, and this
finally seems fixed in r500 - 24 bits possible with VAP_ALT_NUM_VERTICES.)

Roland

------------------------------------------------------------------------------
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to