Skip to content

tu: Update prim restart state when we switch from/to indexed draw

What does this MR do and why?

Previously, if first draw call with wasn't indexed but pipeline had primitive restart enabled - primitive restart would be disabled for draw calls, even indexed, that follow.

However, prim restart index works in non-indexed draw calls, but since we don't emit fresh PC_RESTART_INDEX for them - they may use stale value if prim restart is enabled for non-indexed draw calls.

So we have track the switch between indexed and non-indexed draw calls and emit PC_PRIMITIVE_CNTL_0 for them.

Fixes car rear window in Need for Speed: Most Wanted (2012)

Before:

image

After:

image

Though I'm not sure why the check for indexed draw was there in the first place?

Edited by Danylo Piliaiev

Merge request reports