Re: [Mesa-dev] [PATCH 18/19] etnaviv: GC7000: Move etna_coalesce to emit header file

2017-11-05 Thread Christian Gmeiner
2017-10-30 17:17 GMT+01:00 Wladimir J. van der Laan :
> Want to be able to emit state from the texture implementation.
>
> Signed-off-by: Wladimir J. van der Laan 

Reviewed-by: Christian Gmeiner 

> ---
>  src/gallium/drivers/etnaviv/etnaviv_emit.c | 83 
> --
>  src/gallium/drivers/etnaviv/etnaviv_emit.h | 83 
> ++
>  2 files changed, 83 insertions(+), 83 deletions(-)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c 
> b/src/gallium/drivers/etnaviv/etnaviv_emit.c
> index bc0f567..b766005 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_emit.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c
> @@ -44,12 +44,6 @@
>  #include "hw/state_blt.xml.h"
>  #include "util/u_math.h"
>
> -struct etna_coalesce {
> -   uint32_t start;
> -   uint32_t last_reg;
> -   uint32_t last_fixp;
> -};
> -
>  /* Queue a STALL command (queues 2 words) */
>  static inline void
>  CMD_STALL(struct etna_cmd_stream *stream, uint32_t from, uint32_t to)
> @@ -88,83 +82,6 @@ etna_stall(struct etna_cmd_stream *stream, uint32_t from, 
> uint32_t to)
> }
>  }
>
> -static void
> -etna_coalesce_start(struct etna_cmd_stream *stream,
> -struct etna_coalesce *coalesce)
> -{
> -   coalesce->start = etna_cmd_stream_offset(stream);
> -   coalesce->last_reg = 0;
> -   coalesce->last_fixp = 0;
> -}
> -
> -static void
> -etna_coalesce_end(struct etna_cmd_stream *stream,
> -  struct etna_coalesce *coalesce)
> -{
> -   uint32_t end = etna_cmd_stream_offset(stream);
> -   uint32_t size = end - coalesce->start;
> -
> -   if (size) {
> -  uint32_t offset = coalesce->start - 1;
> -  uint32_t value = etna_cmd_stream_get(stream, offset);
> -
> -  value |= VIV_FE_LOAD_STATE_HEADER_COUNT(size);
> -  etna_cmd_stream_set(stream, offset, value);
> -   }
> -
> -   /* append needed padding */
> -   if (end % 2 == 1)
> -  etna_cmd_stream_emit(stream, 0xdeadbeef);
> -}
> -
> -static void
> -check_coalsence(struct etna_cmd_stream *stream, struct etna_coalesce 
> *coalesce,
> -uint32_t reg, uint32_t fixp)
> -{
> -   if (coalesce->last_reg != 0) {
> -  if (((coalesce->last_reg + 4) != reg) || (coalesce->last_fixp != 
> fixp)) {
> - etna_coalesce_end(stream, coalesce);
> - etna_emit_load_state(stream, reg >> 2, 0, fixp);
> - coalesce->start = etna_cmd_stream_offset(stream);
> -  }
> -   } else {
> -  etna_emit_load_state(stream, reg >> 2, 0, fixp);
> -  coalesce->start = etna_cmd_stream_offset(stream);
> -   }
> -
> -   coalesce->last_reg = reg;
> -   coalesce->last_fixp = fixp;
> -}
> -
> -static inline void
> -etna_coalsence_emit(struct etna_cmd_stream *stream,
> -struct etna_coalesce *coalesce, uint32_t reg,
> -uint32_t value)
> -{
> -   check_coalsence(stream, coalesce, reg, 0);
> -   etna_cmd_stream_emit(stream, value);
> -}
> -
> -static inline void
> -etna_coalsence_emit_fixp(struct etna_cmd_stream *stream,
> - struct etna_coalesce *coalesce, uint32_t reg,
> - uint32_t value)
> -{
> -   check_coalsence(stream, coalesce, reg, 1);
> -   etna_cmd_stream_emit(stream, value);
> -}
> -
> -static inline void
> -etna_coalsence_emit_reloc(struct etna_cmd_stream *stream,
> -  struct etna_coalesce *coalesce, uint32_t reg,
> -  const struct etna_reloc *r)
> -{
> -   if (r->bo) {
> -  check_coalsence(stream, coalesce, reg, 0);
> -  etna_cmd_stream_reloc(stream, r);
> -   }
> -}
> -
>  #define EMIT_STATE(state_name, src_value) \
> etna_coalsence_emit(stream, , VIVS_##state_name, src_value)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.h 
> b/src/gallium/drivers/etnaviv/etnaviv_emit.h
> index 3c3d129..dd90127 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_emit.h
> +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.h
> @@ -34,6 +34,12 @@
>  struct etna_context;
>  struct compiled_rs_state;
>
> +struct etna_coalesce {
> +   uint32_t start;
> +   uint32_t last_reg;
> +   uint32_t last_fixp;
> +};
> +
>  static inline void
>  etna_emit_load_state(struct etna_cmd_stream *stream, const uint16_t offset,
>   const uint16_t count, const int fixp)
> @@ -138,6 +144,83 @@ etna_draw_instanced(struct etna_cmd_stream *stream,
> etna_cmd_stream_emit(stream, 0);
>  }
>
> +static inline void
> +etna_coalesce_start(struct etna_cmd_stream *stream,
> +struct etna_coalesce *coalesce)
> +{
> +   coalesce->start = etna_cmd_stream_offset(stream);
> +   coalesce->last_reg = 0;
> +   coalesce->last_fixp = 0;
> +}
> +
> +static inline void
> +etna_coalesce_end(struct etna_cmd_stream *stream,
> +  struct etna_coalesce *coalesce)
> +{
> +   uint32_t end = etna_cmd_stream_offset(stream);
> +   uint32_t size = end - coalesce->start;
> +
> +   if 

[Mesa-dev] [PATCH 18/19] etnaviv: GC7000: Move etna_coalesce to emit header file

2017-10-30 Thread Wladimir J. van der Laan
Want to be able to emit state from the texture implementation.

Signed-off-by: Wladimir J. van der Laan 
---
 src/gallium/drivers/etnaviv/etnaviv_emit.c | 83 --
 src/gallium/drivers/etnaviv/etnaviv_emit.h | 83 ++
 2 files changed, 83 insertions(+), 83 deletions(-)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c 
b/src/gallium/drivers/etnaviv/etnaviv_emit.c
index bc0f567..b766005 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_emit.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c
@@ -44,12 +44,6 @@
 #include "hw/state_blt.xml.h"
 #include "util/u_math.h"
 
-struct etna_coalesce {
-   uint32_t start;
-   uint32_t last_reg;
-   uint32_t last_fixp;
-};
-
 /* Queue a STALL command (queues 2 words) */
 static inline void
 CMD_STALL(struct etna_cmd_stream *stream, uint32_t from, uint32_t to)
@@ -88,83 +82,6 @@ etna_stall(struct etna_cmd_stream *stream, uint32_t from, 
uint32_t to)
}
 }
 
-static void
-etna_coalesce_start(struct etna_cmd_stream *stream,
-struct etna_coalesce *coalesce)
-{
-   coalesce->start = etna_cmd_stream_offset(stream);
-   coalesce->last_reg = 0;
-   coalesce->last_fixp = 0;
-}
-
-static void
-etna_coalesce_end(struct etna_cmd_stream *stream,
-  struct etna_coalesce *coalesce)
-{
-   uint32_t end = etna_cmd_stream_offset(stream);
-   uint32_t size = end - coalesce->start;
-
-   if (size) {
-  uint32_t offset = coalesce->start - 1;
-  uint32_t value = etna_cmd_stream_get(stream, offset);
-
-  value |= VIV_FE_LOAD_STATE_HEADER_COUNT(size);
-  etna_cmd_stream_set(stream, offset, value);
-   }
-
-   /* append needed padding */
-   if (end % 2 == 1)
-  etna_cmd_stream_emit(stream, 0xdeadbeef);
-}
-
-static void
-check_coalsence(struct etna_cmd_stream *stream, struct etna_coalesce *coalesce,
-uint32_t reg, uint32_t fixp)
-{
-   if (coalesce->last_reg != 0) {
-  if (((coalesce->last_reg + 4) != reg) || (coalesce->last_fixp != fixp)) {
- etna_coalesce_end(stream, coalesce);
- etna_emit_load_state(stream, reg >> 2, 0, fixp);
- coalesce->start = etna_cmd_stream_offset(stream);
-  }
-   } else {
-  etna_emit_load_state(stream, reg >> 2, 0, fixp);
-  coalesce->start = etna_cmd_stream_offset(stream);
-   }
-
-   coalesce->last_reg = reg;
-   coalesce->last_fixp = fixp;
-}
-
-static inline void
-etna_coalsence_emit(struct etna_cmd_stream *stream,
-struct etna_coalesce *coalesce, uint32_t reg,
-uint32_t value)
-{
-   check_coalsence(stream, coalesce, reg, 0);
-   etna_cmd_stream_emit(stream, value);
-}
-
-static inline void
-etna_coalsence_emit_fixp(struct etna_cmd_stream *stream,
- struct etna_coalesce *coalesce, uint32_t reg,
- uint32_t value)
-{
-   check_coalsence(stream, coalesce, reg, 1);
-   etna_cmd_stream_emit(stream, value);
-}
-
-static inline void
-etna_coalsence_emit_reloc(struct etna_cmd_stream *stream,
-  struct etna_coalesce *coalesce, uint32_t reg,
-  const struct etna_reloc *r)
-{
-   if (r->bo) {
-  check_coalsence(stream, coalesce, reg, 0);
-  etna_cmd_stream_reloc(stream, r);
-   }
-}
-
 #define EMIT_STATE(state_name, src_value) \
etna_coalsence_emit(stream, , VIVS_##state_name, src_value)
 
diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.h 
b/src/gallium/drivers/etnaviv/etnaviv_emit.h
index 3c3d129..dd90127 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_emit.h
+++ b/src/gallium/drivers/etnaviv/etnaviv_emit.h
@@ -34,6 +34,12 @@
 struct etna_context;
 struct compiled_rs_state;
 
+struct etna_coalesce {
+   uint32_t start;
+   uint32_t last_reg;
+   uint32_t last_fixp;
+};
+
 static inline void
 etna_emit_load_state(struct etna_cmd_stream *stream, const uint16_t offset,
  const uint16_t count, const int fixp)
@@ -138,6 +144,83 @@ etna_draw_instanced(struct etna_cmd_stream *stream,
etna_cmd_stream_emit(stream, 0);
 }
 
+static inline void
+etna_coalesce_start(struct etna_cmd_stream *stream,
+struct etna_coalesce *coalesce)
+{
+   coalesce->start = etna_cmd_stream_offset(stream);
+   coalesce->last_reg = 0;
+   coalesce->last_fixp = 0;
+}
+
+static inline void
+etna_coalesce_end(struct etna_cmd_stream *stream,
+  struct etna_coalesce *coalesce)
+{
+   uint32_t end = etna_cmd_stream_offset(stream);
+   uint32_t size = end - coalesce->start;
+
+   if (size) {
+  uint32_t offset = coalesce->start - 1;
+  uint32_t value = etna_cmd_stream_get(stream, offset);
+
+  value |= VIV_FE_LOAD_STATE_HEADER_COUNT(size);
+  etna_cmd_stream_set(stream, offset, value);
+   }
+
+   /* append needed padding */
+   if (end % 2 == 1)
+  etna_cmd_stream_emit(stream, 0xdeadbeef);
+}
+
+static inline void
+check_coalsence(struct etna_cmd_stream *stream, struct etna_coalesce