On 07.01.2017 09:02, Kenneth Graunke wrote:
It feels weird using GL_* enums in a Vulkan driver.

Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
---
 src/compiler/glsl/ast.h                  |  2 +-
 src/compiler/glsl/glsl_parser.yy         |  8 ++++----
 src/compiler/glsl/glsl_parser_extras.cpp |  2 +-
 src/compiler/glsl/linker.cpp             |  6 +++---
 src/compiler/shader_enums.h              |  8 ++++++++
 src/compiler/shader_info.h               |  2 +-
 src/mesa/drivers/dri/i965/brw_tcs.c      |  4 ++--
 src/mesa/drivers/dri/i965/brw_tes.c      | 20 +++++++-------------
 src/mesa/main/mtypes.h                   |  8 +++-----
 src/mesa/main/shaderapi.c                | 18 ++++++++++++++++--
 src/mesa/state_tracker/st_program.c      | 23 ++++++++---------------
 11 files changed, 54 insertions(+), 47 deletions(-)

[snip]
diff --git a/src/mesa/state_tracker/st_program.c 
b/src/mesa/state_tracker/st_program.c
index 7d548d51c13..544cbb0bbd5 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1607,21 +1607,14 @@ st_translate_tesseval_program(struct st_context *st,
       ureg_property(ureg, TGSI_PROPERTY_TES_PRIM_MODE,
                     sttep->Base.info.tes.primitive_mode);

-   switch (sttep->Base.info.tes.spacing) {
-   case GL_EQUAL:
-      ureg_property(ureg, TGSI_PROPERTY_TES_SPACING, PIPE_TESS_SPACING_EQUAL);
-      break;
-   case GL_FRACTIONAL_EVEN:
-      ureg_property(ureg, TGSI_PROPERTY_TES_SPACING,
-                    PIPE_TESS_SPACING_FRACTIONAL_EVEN);
-      break;
-   case GL_FRACTIONAL_ODD:
-      ureg_property(ureg, TGSI_PROPERTY_TES_SPACING,
-                    PIPE_TESS_SPACING_FRACTIONAL_ODD);
-      break;
-   default:
-      assert(0);
-   }
+   STATIC_ASSERT((TESS_SPACING_EQUAL - 2) % 3 == PIPE_TESS_SPACING_EQUAL);
+   STATIC_ASSERT((TESS_SPACING_FRACTIONAL_ODD - 2) % 3 ==
+                 PIPE_TESS_SPACING_FRACTIONAL_ODD);
+   STATIC_ASSERT((TESS_SPACING_FRACTIONAL_EVEN - 2) % 3 ==
+                 PIPE_TESS_SPACING_FRACTIONAL_EVEN);
+
+   ureg_property(ureg, TGSI_PROPERTY_TES_SPACING,
+                 (sttep->Base.info.tes.spacing - 2) % 3);

Using + 1 instead of - 2 should work just as well, right? I'd prefer that -- modulo with negative values makes me uncomfortable. Apart from that, patches 1 & 2 are

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>

(the non-i965-parts, anyway)


    ureg_property(ureg, TGSI_PROPERTY_TES_VERTEX_ORDER_CW,
                  !sttep->Base.info.tes.ccw);

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to