mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 07:08:04 +02:00
draw: Fix cache elt_bias implementation.
This commit is contained in:
parent
493a1bb822
commit
4e8154e866
1 changed files with 8 additions and 5 deletions
|
|
@ -347,7 +347,7 @@ vcache_check_run( struct draw_pt_front_end *frontend,
|
||||||
vcache->fetch_max,
|
vcache->fetch_max,
|
||||||
draw_count);
|
draw_count);
|
||||||
|
|
||||||
if (max_index >= DRAW_PIPE_MAX_VERTICES ||
|
if (elt_bias + max_index >= DRAW_PIPE_MAX_VERTICES ||
|
||||||
fetch_count >= UNDEFINED_VERTEX_ID ||
|
fetch_count >= UNDEFINED_VERTEX_ID ||
|
||||||
fetch_count > draw_count) {
|
fetch_count > draw_count) {
|
||||||
if (0) debug_printf("fail\n");
|
if (0) debug_printf("fail\n");
|
||||||
|
|
@ -363,6 +363,9 @@ vcache_check_run( struct draw_pt_front_end *frontend,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
assert((elt_bias >= 0 && min_index + elt_bias >= min_index) ||
|
||||||
|
(elt_bias < 0 && min_index + elt_bias < min_index));
|
||||||
|
|
||||||
if (elt_bias <= 0 &&
|
if (elt_bias <= 0 &&
|
||||||
min_index == (unsigned)-elt_bias &&
|
min_index == (unsigned)-elt_bias &&
|
||||||
index_size == 2)
|
index_size == 2)
|
||||||
|
|
@ -407,21 +410,21 @@ vcache_check_run( struct draw_pt_front_end *frontend,
|
||||||
case 1:
|
case 1:
|
||||||
rebase_ubyte_elts( (const ubyte *)elts,
|
rebase_ubyte_elts( (const ubyte *)elts,
|
||||||
draw_count,
|
draw_count,
|
||||||
elt_bias - (int)min_index,
|
-elt_bias - (int)min_index,
|
||||||
storage );
|
storage );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
rebase_ushort_elts( (const ushort *)elts,
|
rebase_ushort_elts( (const ushort *)elts,
|
||||||
draw_count,
|
draw_count,
|
||||||
elt_bias - (int)min_index,
|
-elt_bias - (int)min_index,
|
||||||
storage );
|
storage );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
rebase_uint_elts( (const uint *)elts,
|
rebase_uint_elts( (const uint *)elts,
|
||||||
draw_count,
|
draw_count,
|
||||||
elt_bias - (int)min_index,
|
-elt_bias - (int)min_index,
|
||||||
storage );
|
storage );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -436,7 +439,7 @@ vcache_check_run( struct draw_pt_front_end *frontend,
|
||||||
|
|
||||||
if (fetch_count < UNDEFINED_VERTEX_ID)
|
if (fetch_count < UNDEFINED_VERTEX_ID)
|
||||||
ok = vcache->middle->run_linear_elts( vcache->middle,
|
ok = vcache->middle->run_linear_elts( vcache->middle,
|
||||||
min_index, /* start */
|
min_index + elt_bias, /* start */
|
||||||
fetch_count,
|
fetch_count,
|
||||||
transformed_elts,
|
transformed_elts,
|
||||||
draw_count );
|
draw_count );
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue