panfrost/midgard: Use unsigned blend patch offset
[mesa.git] / src / gallium / auxiliary / tgsi / tgsi_lowering.h
index 1b0daa96f0e790d96bdff4254c2f09148c4d5eac..fd4c38f016e3882d338dfc74e0ba7cbf94e3381e 100644 (file)
@@ -1,5 +1,3 @@
-/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */
-
 /*
  * Copyright (C) 2014 Rob Clark <robclark@freedesktop.org>
  *
  *    Rob Clark <robclark@freedesktop.org>
  */
 
-#ifndef FREEDRENO_LOWERING_H_
-#define FREEDRENO_LOWERING_H_
+#ifndef TGSI_LOWERING_H_
+#define TGSI_LOWERING_H_
 
 #include "pipe/p_shader_tokens.h"
 #include "tgsi/tgsi_scan.h"
 
-struct fd_lowering_config {
-       /* For fragment shaders, generate a shader that emulates two
-        * sided color by inserting a BGCOLOR input for each COLOR
-        * input, and insert a CMP instruction to select the correct
-        * color to use based on the TGSI_SEMANTIC_FACE input.
-        *
-        * Note that drivers which use this to emulate two sided color
-        * will:
-        *  a) need to generate (on demand) alternate shaders to use
-        *     depending on the rasterizer state (ie. whether two
-        *     sided shading enabled)
-        *  b) expect to see the BGCOLOR semantic name in fragment
-        *     shaders.  During linkage, the driver should simply
-        *     map VS.OUT.BGCOLOR[n] to FS.IN.BGCOLOR[n] (in the
-        *     same was as linking other outs/ins).
-        */
-       unsigned color_two_side : 1;
+struct tgsi_lowering_config
+{
+   /* For fragment shaders, generate a shader that emulates two
+    * sided color by inserting a BGCOLOR input for each COLOR
+    * input, and insert a CMP instruction to select the correct
+    * color to use based on the TGSI_SEMANTIC_FACE input.
+    *
+    * Note that drivers which use this to emulate two sided color
+    * will:
+    *  a) need to generate (on demand) alternate shaders to use
+    *     depending on the rasterizer state (ie. whether two
+    *     sided shading enabled)
+    *  b) expect to see the BGCOLOR semantic name in fragment
+    *     shaders.  During linkage, the driver should simply
+    *     map VS.OUT.BGCOLOR[n] to FS.IN.BGCOLOR[n] (in the
+    *     same was as linking other outs/ins).
+    */
+   unsigned color_two_side:1;
+
+   /* TODO support for alpha_to_one as well?? */
 
-       /* TODO support for alpha_to_one as well?? */
+   /* Individual OPC lowerings, if lower_<opc> is TRUE then
+    * enable lowering of TGSI_OPCODE_<opc>
+    */
+   unsigned lower_DST:1;
+   unsigned lower_LRP:1;
+   unsigned lower_FRC:1;
+   unsigned lower_POW:1;
+   unsigned lower_LIT:1;
+   unsigned lower_EXP:1;
+   unsigned lower_LOG:1;
+   unsigned lower_DP4:1;
+   unsigned lower_DP3:1;
+   unsigned lower_DP2:1;
+   unsigned lower_FLR:1;
+   unsigned lower_CEIL:1;
+   unsigned lower_TRUNC:1;
 
-       /* Individual OPC lowerings, if lower_<opc> is TRUE then
-        * enable lowering of TGSI_OPCODE_<opc>
-        */
-       unsigned lower_DST : 1;
-       unsigned lower_XPD : 1;
-       unsigned lower_SCS : 1;
-       unsigned lower_LRP : 1;
-       unsigned lower_FRC : 1;
-       unsigned lower_POW : 1;
-       unsigned lower_LIT : 1;
-       unsigned lower_EXP : 1;
-       unsigned lower_LOG : 1;
-       unsigned lower_DP4 : 1;
-       unsigned lower_DP3 : 1;
-       unsigned lower_DPH : 1;
-       unsigned lower_DP2 : 1;
-       unsigned lower_DP2A : 1;
+   /* bitmask of (1 << TGSI_TEXTURE_type): */
+   unsigned lower_TXP;
 
-       /* To emulate certain texture wrap modes, this can be used
-        * to saturate the specified tex coord to [0.0, 1.0].  The
-        * bits are according to sampler #, ie. if, for example:
-        *
-        *   (conf->saturate_s & (1 << n))
-        *
-        * is true, then the s coord for sampler n is saturated.
-        */
-       unsigned saturate_s, saturate_t, saturate_r;
+   /* To emulate certain texture wrap modes, this can be used
+    * to saturate the specified tex coord to [0.0, 1.0].  The
+    * bits are according to sampler #, ie. if, for example:
+    *
+    *   (conf->saturate_s & (1 << n))
+    *
+    * is true, then the s coord for sampler n is saturated.
+    */
+   unsigned saturate_s, saturate_t, saturate_r;
 };
 
-const struct tgsi_token * fd_transform_lowering(
-               const struct fd_lowering_config *config,
-               const struct tgsi_token *tokens,
-               struct tgsi_shader_info *info);
+const struct tgsi_token *
+tgsi_transform_lowering(const struct tgsi_lowering_config *config,
+                        const struct tgsi_token *tokens,
+                        struct tgsi_shader_info *info);
 
 #endif /* FREEDRENO_LOWERING_H_ */