compiler: rename SYSTEM_VALUE_VARYING_COORD
authorRob Clark <robdclark@chromium.org>
Wed, 3 Apr 2019 23:55:34 +0000 (19:55 -0400)
committerRob Clark <robdclark@chromium.org>
Thu, 25 Apr 2019 21:13:31 +0000 (14:13 -0700)
And add corresponding enums for different sorts of varying
interpolation.

Signed-off-by: Rob Clark <robdclark@chromium.org>
src/compiler/shader_enums.c
src/compiler/shader_enums.h
src/freedreno/ir3/ir3_compiler_nir.c
src/freedreno/ir3/ir3_shader.c
src/freedreno/vulkan/tu_pipeline.c
src/gallium/drivers/freedreno/a3xx/fd3_program.c
src/gallium/drivers/freedreno/a4xx/fd4_program.c
src/gallium/drivers/freedreno/a5xx/fd5_program.c
src/gallium/drivers/freedreno/a6xx/fd6_program.c
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 15ab6d81dae21b6d9873abd273c7cab7d2bedfaa..451f1b758de1a75bd2a38fdb6f561629854146e7 100644 (file)
@@ -247,7 +247,10 @@ gl_system_value_name(gl_system_value sysval)
      ENUM(SYSTEM_VALUE_DEVICE_INDEX),
      ENUM(SYSTEM_VALUE_VIEW_INDEX),
      ENUM(SYSTEM_VALUE_VERTEX_CNT),
-     ENUM(SYSTEM_VALUE_VARYING_COORD),
+     ENUM(SYSTEM_VALUE_BARYCENTRIC_PIXEL),
+     ENUM(SYSTEM_VALUE_BARYCENTRIC_SAMPLE),
+     ENUM(SYSTEM_VALUE_BARYCENTRIC_CENTROID),
+     ENUM(SYSTEM_VALUE_BARYCENTRIC_SIZE),
    };
    STATIC_ASSERT(ARRAY_SIZE(names) == SYSTEM_VALUE_MAX);
    return NAME(sysval);
index f9a4006f0728c7f754c48e689936344ad8050ceb..ac293af45191bdec904e48922363c1cec9728606 100644 (file)
@@ -621,10 +621,16 @@ typedef enum
    SYSTEM_VALUE_VERTEX_CNT,
 
    /**
-    * Driver internal varying-coord, used for varying-fetch instructions.
+    * Driver internal varying-coords, used for varying-fetch instructions.
     * Not externally visible.
+    *
+    * The _SIZE value is "primitive size", used to scale i/j in primitive
+    * space to pixel space.
     */
-   SYSTEM_VALUE_VARYING_COORD,
+   SYSTEM_VALUE_BARYCENTRIC_PIXEL,
+   SYSTEM_VALUE_BARYCENTRIC_SAMPLE,
+   SYSTEM_VALUE_BARYCENTRIC_CENTROID,
+   SYSTEM_VALUE_BARYCENTRIC_SIZE,
 
    SYSTEM_VALUE_MAX             /**< Number of values */
 } gl_system_value;
index e375f3c24212fcfd75b35665d8527dc1c8c61a06..41d297a4c33599b88983c7e145d2bc9f444c001f 100644 (file)
@@ -2577,7 +2577,7 @@ emit_instructions(struct ir3_context *ctx)
         * because sysvals need to be appended after varyings:
         */
        if (vcoord) {
-               add_sysval_input_compmask(ctx, SYSTEM_VALUE_VARYING_COORD,
+               add_sysval_input_compmask(ctx, SYSTEM_VALUE_BARYCENTRIC_PIXEL,
                                0x3, vcoord);
        }
 
index b2329899bac59b0bdb1301a0e8db11cf60d04355..03c3e31f913cb3e1452a9868c49946b40aa75473 100644 (file)
@@ -408,7 +408,7 @@ ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin, FILE *out)
                break;
        case MESA_SHADER_FRAGMENT:
                dump_reg(out, "pos (bary)",
-                       ir3_find_sysval_regid(so, SYSTEM_VALUE_VARYING_COORD));
+                       ir3_find_sysval_regid(so, SYSTEM_VALUE_BARYCENTRIC_PIXEL));
                dump_output(out, so, FRAG_RESULT_DEPTH, "posz");
                if (so->color0_mrt) {
                        dump_output(out, so, FRAG_RESULT_COLOR, "color");
index 2df032923cfe5ab1f702bab41908bdad2efdd92d..d5daa12ddeaffd12178c0c0d044e8976452d5d18 100644 (file)
@@ -690,7 +690,7 @@ tu6_emit_fs_system_values(struct tu_cs *cs,
                                           ? (fragcoord_xy_regid + 2)
                                           : fragcoord_xy_regid;
    const uint32_t varyingcoord_regid =
-      ir3_find_sysval_regid(fs, SYSTEM_VALUE_VARYING_COORD);
+      ir3_find_sysval_regid(fs, SYSTEM_VALUE_BARYCENTRIC_PIXEL);
 
    tu_cs_emit_pkt4(cs, REG_A6XX_HLSQ_CONTROL_1_REG, 5);
    tu_cs_emit(cs, 0x7);
index 7df1f77a3cafd2c619b1b174a619b62c53b7ae76..af7f19d59bacee5a740d9446230b0ba27c5d56b6 100644 (file)
@@ -211,7 +211,7 @@ fd3_program_emit(struct fd_ringbuffer *ring, struct fd3_emit *emit,
        face_regid      = ir3_find_sysval_regid(fp, SYSTEM_VALUE_FRONT_FACE);
        coord_regid     = ir3_find_sysval_regid(fp, SYSTEM_VALUE_FRAG_COORD);
        zwcoord_regid   = (coord_regid == regid(63,0)) ? regid(63,0) : (coord_regid + 2);
-       vcoord_regid    = ir3_find_sysval_regid(fp, SYSTEM_VALUE_VARYING_COORD);
+       vcoord_regid    = ir3_find_sysval_regid(fp, SYSTEM_VALUE_BARYCENTRIC_PIXEL);
 
        /* adjust regids for alpha output formats. there is no alpha render
         * format, so it's just treated like red
index 2d230faff19c31463bbbdb6dea1a6481858d798f..5fa1f8e0200ae2860eacaf7e78e8b674f093551c 100644 (file)
@@ -245,7 +245,7 @@ fd4_program_emit(struct fd_ringbuffer *ring, struct fd4_emit *emit,
        face_regid      = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRONT_FACE);
        coord_regid     = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRAG_COORD);
        zwcoord_regid   = (coord_regid == regid(63,0)) ? regid(63,0) : (coord_regid + 2);
-       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_VARYING_COORD);
+       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_BARYCENTRIC_PIXEL);
 
        /* we could probably divide this up into things that need to be
         * emitted if frag-prog is dirty vs if vert-prog is dirty..
index 3dba15fc56a0a7cd0572ba4cbdcdfa72a24c4bf1..918c6585ac429fa93b2e068919989f76d3517098 100644 (file)
@@ -357,7 +357,7 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
        face_regid      = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRONT_FACE);
        coord_regid     = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRAG_COORD);
        zwcoord_regid   = (coord_regid == regid(63,0)) ? regid(63,0) : (coord_regid + 2);
-       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_VARYING_COORD);
+       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_BARYCENTRIC_PIXEL);
 
        /* we could probably divide this up into things that need to be
         * emitted if frag-prog is dirty vs if vert-prog is dirty..
index 44c9e8a689bd9ad7d2311f1426e4ea3f64e92627..3c4192ba19a1f71e69f5c8350581eca2062dd932 100644 (file)
@@ -337,7 +337,7 @@ setup_stateobj(struct fd_ringbuffer *ring,
        face_regid      = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRONT_FACE);
        coord_regid     = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRAG_COORD);
        zwcoord_regid   = next_regid(coord_regid, 2);
-       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_VARYING_COORD);
+       vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_BARYCENTRIC_PIXEL);
        posz_regid      = ir3_find_output_regid(s[FS].v, FRAG_RESULT_DEPTH);
 
        /* we could probably divide this up into things that need to be
index 37e78406c5cb34798cd9012a3161bf65b189e5dc..f2344703d711eeac84f8e6b4bcbb47bcfab12a4c 100644 (file)
@@ -5827,7 +5827,10 @@ _mesa_sysval_to_semantic(unsigned sysval)
    case SYSTEM_VALUE_LOCAL_INVOCATION_INDEX:
    case SYSTEM_VALUE_GLOBAL_INVOCATION_ID:
    case SYSTEM_VALUE_VERTEX_CNT:
-   case SYSTEM_VALUE_VARYING_COORD:
+   case SYSTEM_VALUE_BARYCENTRIC_PIXEL:
+   case SYSTEM_VALUE_BARYCENTRIC_SAMPLE:
+   case SYSTEM_VALUE_BARYCENTRIC_CENTROID:
+   case SYSTEM_VALUE_BARYCENTRIC_SIZE:
    default:
       assert(!"Unexpected SYSTEM_VALUE_ enum");
       return TGSI_SEMANTIC_COUNT;