summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2014-02-19 17:20:11 -0800
committerCarl Worth <cworth@cworth.org>2014-03-04 13:24:48 -0800
commitbab122c320d2aae28c9e3416f0a5f6f7a80d2f49 (patch)
treece4f1b13c3f9203bbf39e76b77ee01bb23adc818
parentcf7daac48337f9a39a5651943342d72688894abf (diff)
downloadmesa-bab122c320d2aae28c9e3416f0a5f6f7a80d2f49.tar.gz
i965: Create a hardware context before initializing state module.
brw_init_state() calls brw_upload_initial_gpu_state(). If hardware contexts are enabled (brw->hw_ctx != NULL), this will upload some initial invariant state for the GPU. Without hardware contexts, we rely on this state being uploaded via atoms that subscribe to the BRW_NEW_CONTEXT bit. Commit 46d3c2bf4ddd227193b98861f1e632498fe547d8 accidentally moved the call to brw_init_state() before creating a hardware context. This meant brw_upload_initial_gpu_state would always early return. Except on Gen6+, we stopped uploading the initial GPU state via state atoms, so it never happened. Fixes a regression since 46d3c2bf4ddd227193b98861f1e632498fe547d8. Cc: "10.0 10.1" <mesa-stable@lists.freedesktop.org> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 3663bbe773187dee341556ef29e58b1143ef2f5c)
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 4fc83dfdb36..397ae1d4032 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -699,12 +699,6 @@ brwCreateContext(gl_api api,
intel_batchbuffer_init(brw);
- brw_init_state(brw);
-
- intelInitExtensions(ctx);
-
- intel_fbo_init(brw);
-
if (brw->gen >= 6) {
/* Create a new hardware context. Using a hardware context means that
* our GPU state will be saved/restored on context switch, allowing us
@@ -722,6 +716,12 @@ brwCreateContext(gl_api api,
}
}
+ brw_init_state(brw);
+
+ intelInitExtensions(ctx);
+
+ intel_fbo_init(brw);
+
brw_init_surface_formats(brw);
if (brw->is_g4x || brw->gen >= 5) {