llvmpipe: disable occlusion queries when requested by state tracker
authorDave Airlie <airlied@redhat.com>
Mon, 2 Dec 2019 04:58:56 +0000 (14:58 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 5 Dec 2019 20:48:30 +0000 (06:48 +1000)
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
.gitlab-ci/piglit/quick_gl.txt
src/gallium/drivers/llvmpipe/lp_query.c
src/gallium/drivers/llvmpipe/lp_state_fs.c

index 0100f40934467af028247ce16617370d678995b6..95e3cb4366f2e9f25840f8d8f314cd62e22fbbc5 100644 (file)
@@ -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
index 89e4273bab97ee62cb889b9d3f5ac53661db4f8f..a4217368fce315679521f99bdfe50b056c32ce1f 100644 (file)
@@ -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 )
index 695ccb8968218e6e5c87507c6123767a9310e06f..75971f36bb2df4c6c5d179b29adbab2672562018 100644 (file)
@@ -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;
    }