diff --git a/docs/relnotes/17.4.0.html b/docs/relnotes/17.4.0.html
index 412c0fc455e..f3ab46ad873 100644
--- a/docs/relnotes/17.4.0.html
+++ b/docs/relnotes/17.4.0.html
@@ -53,7 +53,9 @@ Note: some of the new features are only available with certain drivers.
GL_ARB_enhanced_layouts on r600/evergreen+
GL_ARB_bindless_texture on nvc0/kepler
OpenGL 4.3 on r600/evergreen with hw fp64 support
-Support 1 binary format for GL_ARB_get_program_binary on i965
+Support 1 binary format for GL_ARB_get_program_binary on i965.
+ (For the 18.0 release, 0 formats continue to be supported in
+ compatibility profiles.)
Bug fixes
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index e9358b7bc9c..58527d77263 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -704,7 +704,14 @@ brw_initialize_context_constants(struct brw_context *brw)
ctx->Const.AllowMappedBuffersDuringExecution = true;
/* GL_ARB_get_program_binary */
- ctx->Const.NumProgramBinaryFormats = 1;
+ /* The QT framework has a bug in their shader program cache, which is built
+ * on GL_ARB_get_program_binary. In an effort to allow them to fix the bug
+ * we don't enable more than 1 binary format for compatibility profiles.
+ * This is only being done on the 18.0 release branch.
+ */
+ if (ctx->API != API_OPENGL_COMPAT) {
+ ctx->Const.NumProgramBinaryFormats = 1;
+ }
}
static void