mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
i965/gen7.5: Allow HW primitive restart for all primitive types.
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@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 34efd9214d)
This commit is contained in:
parent
0c0d21660e
commit
f1c0c7b3b3
1 changed files with 6 additions and 7 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue