On 04/29/2014 05:42 PM, Ben Widawsky wrote: > On Tue, Apr 29, 2014 at 02:39:30PM -0700, Kenneth Graunke wrote: >> 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" <[email protected]> >> Cc: Ben Widawsky <[email protected]> >> Signed-off-by: Kenneth Graunke <[email protected]> > > Doesn't this potentially fix issues going back further than gen6? > Reviewed-by: Ben Widawsky <[email protected]> > > [snip]
No, it shouldn't. brw_upload_initial_gpu_state() is a noop without hardware contexts. Instead, the brw_invariant_state state atom handles it, by which point things would've been set up correctly. --Ken
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
