diff options
author | Kenneth Graunke <[email protected]> | 2016-09-24 17:59:55 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-01-07 22:22:28 -0800 |
commit | a4fd84ef5f247f50a3683ecdf7f9d801a6e3cf15 (patch) | |
tree | dcf2a26e9a8cde7d6bc77fee2aaf8b655fe11adc /src/mesa/drivers | |
parent | 9bb89175e6487186389b69e8ee0b587d38ed8015 (diff) |
mesa: Introduce a compiler enum for tessellation spacing.
It feels weird using GL_* enums in a Vulkan driver.
v2: Fix the TESS_SPACING -> PIPE_TESS_SPACING conversion.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_tcs.c | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_tes.c | 20 |
2 files changed, 9 insertions, 15 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c b/src/mesa/drivers/dri/i965/brw_tcs.c index b6251d52f60..9e9d9eb00d2 100644 --- a/src/mesa/drivers/dri/i965/brw_tcs.c +++ b/src/mesa/drivers/dri/i965/brw_tcs.c @@ -331,7 +331,7 @@ brw_tcs_populate_key(struct brw_context *brw, key->tes_primitive_mode = tep->program.info.tes.primitive_mode; key->quads_workaround = brw->gen < 9 && tep->program.info.tes.primitive_mode == GL_QUADS && - tep->program.info.tes.spacing == GL_EQUAL; + tep->program.info.tes.spacing == TESS_SPACING_EQUAL; if (tcp) { key->program_string_id = tcp->id; @@ -403,7 +403,7 @@ brw_tcs_precompile(struct gl_context *ctx, key.tes_primitive_mode = tes->info.TessEval.PrimitiveMode; key.quads_workaround = brw->gen < 9 && tes->info.TessEval.PrimitiveMode == GL_QUADS && - tes->info.TessEval.Spacing == GL_EQUAL; + tes->info.TessEval.Spacing == TESS_SPACING_EQUAL; } else { btep = NULL; key.tes_primitive_mode = GL_TRIANGLES; diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c index 2dae1e57f41..2729d29239b 100644 --- a/src/mesa/drivers/dri/i965/brw_tes.c +++ b/src/mesa/drivers/dri/i965/brw_tes.c @@ -93,19 +93,13 @@ brw_codegen_tes_prog(struct brw_context *brw, brw_assign_common_binding_table_offsets(devinfo, &tep->program, &prog_data.base.base, 0); - switch (tep->program.info.tes.spacing) { - case GL_EQUAL: - prog_data.partitioning = BRW_TESS_PARTITIONING_INTEGER; - break; - case GL_FRACTIONAL_ODD: - prog_data.partitioning = BRW_TESS_PARTITIONING_ODD_FRACTIONAL; - break; - case GL_FRACTIONAL_EVEN: - prog_data.partitioning = BRW_TESS_PARTITIONING_EVEN_FRACTIONAL; - break; - default: - unreachable("invalid domain shader spacing"); - } + STATIC_ASSERT(BRW_TESS_PARTITIONING_INTEGER == TESS_SPACING_EQUAL - 1); + STATIC_ASSERT(BRW_TESS_PARTITIONING_ODD_FRACTIONAL == + TESS_SPACING_FRACTIONAL_ODD - 1); + STATIC_ASSERT(BRW_TESS_PARTITIONING_EVEN_FRACTIONAL == + TESS_SPACING_FRACTIONAL_EVEN - 1); + + prog_data.partitioning = tep->program.info.tes.spacing - 1; switch (tep->program.info.tes.primitive_mode) { case GL_QUADS: |