From: Dave Airlie Date: Mon, 2 Dec 2019 04:58:56 +0000 (+1000) Subject: llvmpipe: disable occlusion queries when requested by state tracker X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f137672197936c00fae305e53eef12a665bc87ce;p=mesa.git llvmpipe: disable occlusion queries when requested by state tracker Reviewed-by: Roland Scheidegger --- diff --git a/.gitlab-ci/piglit/quick_gl.txt b/.gitlab-ci/piglit/quick_gl.txt index 0100f409344..95e3cb4366f 100644 --- a/.gitlab-ci/piglit/quick_gl.txt +++ b/.gitlab-ci/piglit/quick_gl.txt @@ -521,8 +521,6 @@ spec/arb_indirect_parameters/tf-count-arrays: skip spec/arb_indirect_parameters/tf-count-elements: skip spec/arb_internalformat_query/minmax: skip spec/arb_internalformat_query/misc. api error checks: skip -spec/arb_occlusion_query/occlusion_query_meta_no_fragments: fail -spec/arb_occlusion_query/occlusion_query_meta_save: fail spec/arb_pipeline_statistics_query/arb_pipeline_statistics_query-comp: skip spec/arb_pipeline_statistics_query/arb_pipeline_statistics_query-frag: fail spec/arb_pixel_buffer_object/cubemap npot pbo: fail @@ -2285,8 +2283,8 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 17782 - fail: 235 + pass: 17784 + fail: 233 crash: 2 skip: 2027 timeout: 0 diff --git a/src/gallium/drivers/llvmpipe/lp_query.c b/src/gallium/drivers/llvmpipe/lp_query.c index 89e4273bab9..a4217368fce 100644 --- a/src/gallium/drivers/llvmpipe/lp_query.c +++ b/src/gallium/drivers/llvmpipe/lp_query.c @@ -485,6 +485,8 @@ llvmpipe_set_active_query_state(struct pipe_context *pipe, bool enable) struct llvmpipe_context *llvmpipe = llvmpipe_context(pipe); llvmpipe->queries_disabled = !enable; + /* for OQs we need to regenerate the fragment shader */ + llvmpipe->dirty |= LP_NEW_OCCLUSION_QUERY; } void llvmpipe_init_query_funcs(struct llvmpipe_context *llvmpipe ) diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 695ccb89682..75971f36bb2 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -3348,7 +3348,7 @@ make_variant_key(struct llvmpipe_context *lp, /* alpha.ref_value is passed in jit_context */ key->flatshade = lp->rasterizer->flatshade; - if (lp->active_occlusion_queries) { + if (lp->active_occlusion_queries && !lp->queries_disabled) { key->occlusion_count = TRUE; }