From 71f53a22d048b4d972c88a2ed49aa3bc4ff76a21 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Fri, 1 Feb 2008 16:46:41 +0800 Subject: i965: Don't emit state if fall back to software rendering. fix #14116 --- src/mesa/drivers/dri/i965/brw_state_upload.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/mesa/drivers') diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c index d35f94e620..73a6cee75b 100644 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c @@ -207,6 +207,8 @@ void brw_validate_state( struct brw_context *brw ) if (brw->state.dirty.brw & BRW_NEW_CONTEXT) brw_clear_batch_cache_flush(brw); + brw->intel.Fallback = 0; + if (INTEL_DEBUG) { /* Debug version which enforces various sanity checks on the * state flags which are generated and checked to help ensure @@ -225,6 +227,9 @@ void brw_validate_state( struct brw_context *brw ) atom->dirty.cache); assert(atom->update); + if (brw->intel.Fallback) + break; + if (check_state(state, &atom->dirty)) { atom->update( brw ); @@ -246,10 +251,14 @@ void brw_validate_state( struct brw_context *brw ) for (i = 0; i < Elements(atoms); i++) { const struct brw_tracked_state *atom = brw->state.atoms[i]; - if (check_state(state, &atom->dirty)) + if (brw->intel.Fallback) + break; + + if (check_state(state, &atom->dirty)) atom->update( brw ); } } - memset(state, 0, sizeof(*state)); + if (!brw->intel.Fallback) + memset(state, 0, sizeof(*state)); } -- cgit v1.2.3