On 12/29/2011 05:52 PM, Eric Anholt wrote: > These registers are automatically incremented by the hardware during > transform feedback to track where the next streamed vertex output > should go. Unlike the previous generation, which had a packet for > setting the corresponding registers to a defined value, gen7 only has > MI_LOAD_REGISTER_IMM to do so. That's a secure packet (since it loads > an arbitrary register), so we need to do it from the kernel, and it > needs to be settable atomically with the batchbuffer execution so that > two clients doing transform feedback don't stomp on each others' > state. > > Instead of building a more complicated interface involcing setting the > registers to a specific value, just set them to 0 when asked and > userland can tweak its pointers accordingly. > > Signed-off-by: Eric Anholt <eric at anholt.net> Looks great! Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>