i965: Remove software geometry query code.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 17 May 2013 18:46:16 +0000 (11:46 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 21 May 2013 20:29:25 +0000 (13:29 -0700)
EXT_transform_feedback isn't yet supported on Gen4-5, so none of this
query code is actually used.  This also means we can remove some of the
surrounding support code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_draw.c
src/mesa/drivers/dri/i965/brw_primitive_restart.c
src/mesa/drivers/dri/i965/brw_queryobj.c

index 8587dd0bf943be9f71fccd9613a52c35acbacb46..97caccd5d2b10ff919d545316aaf0f9431a1eb45 100644 (file)
@@ -1088,10 +1088,6 @@ struct brw_context
    struct brw_sol_state {
       uint32_t svbi_0_starting_index;
       uint32_t svbi_0_max_index;
-      uint32_t primitives_generated;
-      uint32_t primitives_written;
-      bool counting_primitives_generated;
-      bool counting_primitives_written;
    } sol;
 
    uint32_t render_target_format[MESA_FORMAT_COUNT];
index 8c37e0b5ef81bae2baa78d9cdab1fdfb21e09360..4dd185e6691baa34c26dc03c8c34c92096bd2b5f 100644 (file)
@@ -386,7 +386,6 @@ brw_update_primitive_count(struct brw_context *brw,
    uint32_t count
       = vbo_count_tessellated_primitives(prim->mode, prim->count,
                                          prim->num_instances);
-   brw->sol.primitives_generated += count;
    if (_mesa_is_xfb_active_and_unpaused(&brw->intel.ctx)) {
       /* Update brw->sol.svbi_0_max_index to reflect the amount by which the
        * hardware is going to increment SVBI 0 when this drawing operation
@@ -400,9 +399,6 @@ brw_update_primitive_count(struct brw_context *brw,
          (brw->sol.svbi_0_max_index - brw->sol.svbi_0_starting_index) / verts;
       uint32_t primitives_written = MIN2 (space_avail, count);
       brw->sol.svbi_0_starting_index += verts * primitives_written;
-
-      /* And update the TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN query. */
-      brw->sol.primitives_written += primitives_written;
    }
 }
 
index 10581b3b36c77f2d2f9d8ea61d354c530d906e23..f82491529fa4b7811ddf87cea660e4260293b9f0 100644 (file)
@@ -73,17 +73,6 @@ can_cut_index_handle_prims(struct gl_context *ctx,
                            const struct _mesa_index_buffer *ib)
 {
    struct intel_context *intel = intel_context(ctx);
-   struct brw_context *brw = brw_context(ctx);
-
-   if (brw->sol.counting_primitives_generated ||
-       brw->sol.counting_primitives_written) {
-      /* Counting primitives generated in hardware is not currently
-       * supported, so take the software path. We need to investigate
-       * the *_PRIMITIVES_COUNT registers to allow this to be handled
-       * entirely in hardware.
-       */
-      return false;
-   }
 
    /* Otherwise Haswell can do it all. */
    if (intel->is_haswell)
index 8579993ca1fd8445b6e82e584add4caeddbd8368..985dbedddfca54a7f21d4121242cac1d7662c234 100644 (file)
@@ -187,14 +187,6 @@ brw_queryobj_get_results(struct gl_context *ctx,
       }
       break;
 
-   case GL_PRIMITIVES_GENERATED:
-   case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-      /* We don't actually query the hardware for this value, so query->bo
-       * should always be NULL and execution should never reach here.
-       */
-      assert(!"Unreachable");
-      break;
-
    default:
       assert(!"Unrecognized query target in brw_queryobj_get_results()");
       break;
@@ -305,22 +297,6 @@ brw_begin_query(struct gl_context *ctx, struct gl_query_object *q)
       brw->state.dirty.brw |= BRW_NEW_STATS_WM;
       break;
 
-   case GL_PRIMITIVES_GENERATED:
-      /* We don't actually query the hardware for this value; we keep track of
-       * it a software counter.  So just reset the counter.
-       */
-      brw->sol.primitives_generated = 0;
-      brw->sol.counting_primitives_generated = true;
-      break;
-
-   case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-      /* We don't actually query the hardware for this value; we keep track of
-       * it a software counter.  So just reset the counter.
-       */
-      brw->sol.primitives_written = 0;
-      brw->sol.counting_primitives_written = true;
-      break;
-
    default:
       assert(!"Unrecognized query target in brw_begin_query()");
       break;
@@ -380,34 +356,6 @@ brw_end_query(struct gl_context *ctx, struct gl_query_object *q)
       brw->state.dirty.brw |= BRW_NEW_STATS_WM;
       break;
 
-   case GL_PRIMITIVES_GENERATED:
-      /* We don't actually query the hardware for this value; we keep track of
-       * it in a software counter.  So just read the counter and store it in
-       * the query object.
-       */
-      query->Base.Result = brw->sol.primitives_generated;
-      brw->sol.counting_primitives_generated = false;
-
-      /* And set query->bo to NULL so that this query won't try to wait
-       * for any rendering to complete.
-       */
-      query->bo = NULL;
-      break;
-
-   case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-      /* We don't actually query the hardware for this value; we keep track of
-       * it in a software counter.  So just read the counter and store it in
-       * the query object.
-       */
-      query->Base.Result = brw->sol.primitives_written;
-      brw->sol.counting_primitives_written = false;
-
-      /* And set query->bo to NULL so that this query won't try to wait
-       * for any rendering to complete.
-       */
-      query->bo = NULL;
-      break;
-
    default:
       assert(!"Unrecognized query target in brw_end_query()");
       break;