From 7175561598b1dedc0a9f872237061ca3bec42a1f Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 8 Jun 2017 09:36:15 -0700 Subject: [PATCH] intel/blorp: Work around Sandy Bridge occlusion query issue MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Samuel Iglesias Gonsálvez --- src/intel/blorp/blorp_clear.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c index 3d5c41c..efacadf 100644 --- a/src/intel/blorp/blorp_clear.c +++ b/src/intel/blorp/blorp_clear.c @@ -479,6 +479,16 @@ blorp_clear_depth_stencil(struct blorp_batch *batch, params.x1 = x1; params.y1 = y1; + if (ISL_DEV_GEN(batch->blorp->isl_dev) == 6) { + /* For some reason, Sandy Bridge gets occlusion queries wrong if we + * don't have a shader. In particular, it records samples even though + * we disable statistics in 3DSTATE_WM. Give it the usual clear shader + * to work around the issue. + */ + if (!blorp_params_get_clear_kernel(batch->blorp, ¶ms, false)) + return; + } + while (num_layers > 0) { params.num_layers = num_layers; -- 2.7.4