[Mesa-dev] [PATCH 2/2] i965/gen7.5: Allow HW primitive restart for all primitive types.
Jordan Justen
jljusten at gmail.com
Mon Apr 8 13:46:31 PDT 2013
Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On Mon, Apr 8, 2013 at 11:57 AM, Paul Berry <stereotype441 at gmail.com> wrote:
> Gen7.5 (Haswell) hardware supports primitive restart for all primitive
> types. It also handles all possible primitive restart indices.
> Rather than specialize both can_cut_index_handle_restart_index() and
> the switch statement in can_cut_index_handle_prims() for Haswell, just
> return early if the hardware is Haswell because we know it can handle
> everything.
>
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/brw_primitive_restart.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_primitive_restart.c b/src/mesa/drivers/dri/i965/brw_primitive_restart.c
> index e6902b4..10581b3 100644
> --- a/src/mesa/drivers/dri/i965/brw_primitive_restart.c
> +++ b/src/mesa/drivers/dri/i965/brw_primitive_restart.c
> @@ -36,18 +36,12 @@
>
> /**
> * Check if the hardware's cut index support can handle the primitive
> - * restart index value.
> + * restart index value (pre-Haswell only).
> */
> static bool
> can_cut_index_handle_restart_index(struct gl_context *ctx,
> const struct _mesa_index_buffer *ib)
> {
> - struct intel_context *intel = intel_context(ctx);
> -
> - /* Haswell supports an arbitrary cut index. */
> - if (intel->is_haswell)
> - return true;
> -
> bool cut_index_will_work;
>
> switch (ib->type) {
> @@ -78,6 +72,7 @@ can_cut_index_handle_prims(struct gl_context *ctx,
> GLuint nr_prims,
> 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 ||
> @@ -90,6 +85,10 @@ can_cut_index_handle_prims(struct gl_context *ctx,
> return false;
> }
>
> + /* Otherwise Haswell can do it all. */
> + if (intel->is_haswell)
> + return true;
> +
> if (!can_cut_index_handle_restart_index(ctx, ib)) {
> /* The primitive restart index can't be handled, so take
> * the software path
> --
> 1.8.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list