i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.
For platforms using hardware contexts (currently Gen6+), we failed to emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS, instead emitting MI_NOOP for both. During one of the context initialization reordering patches, we accidentally moved brw_init_state before we set brw->CMD_PIPELINE_SELECT and brw->CMD_VF_STATISTICS. So, when brw_init_state uploaded initial GPU state (brw_init_state -> brw_upload_initial_gpu_state -> brw_upload_invariant_state), these would be 0 (MI_NOOP). Storing the commands in the context is not worthwhile. We have many generation checks in our state upload code, and for platforms with hardware contexts, this only gets called once per GL context anyway. The cost is negligable, and it's easy to botch context creation ordering. This may fix hangs on Gen6+ when using the media pipeline. Cc: "10.0 10.1" <mesa-stable@lists.freedesktop.org> Signed-off-by:Kenneth Graunke <kenneth@whitecape.org> Reviewed-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Ben Widawsky <ben@bwidawsk.net>
- src/mesa/drivers/dri/i965/brw_context.c 0 additions, 8 deletionssrc/mesa/drivers/dri/i965/brw_context.c
- src/mesa/drivers/dri/i965/brw_context.h 0 additions, 5 deletionssrc/mesa/drivers/dri/i965/brw_context.h
- src/mesa/drivers/dri/i965/brw_misc_state.c 8 additions, 2 deletionssrc/mesa/drivers/dri/i965/brw_misc_state.c