Re: [Mesa-dev] [PATCH] gallium/radeon: unify checking streamout enable state

2016-04-11 Thread Nicolai Hähnle

Reviewed-by: Nicolai Hähnle 

On 08.04.2016 04:00, Marek Olšák wrote:

From: Marek Olšák 

---
  src/gallium/drivers/r600/r600_state_common.c  | 5 ++---
  src/gallium/drivers/radeon/r600_pipe_common.h | 6 ++
  src/gallium/drivers/radeon/r600_streamout.c   | 6 --
  src/gallium/drivers/radeonsi/si_state_draw.c  | 3 +--
  4 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index df41d3f..82babeb 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1841,8 +1841,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const 
struct pipe_draw_info
ia_switch_on_eop = true;
}

-   if (rctx->b.streamout.streamout_enabled ||
-   rctx->b.streamout.prims_gen_query_enabled)
+   if (r600_get_strmout_en(>b))
partial_vs_wave = true;

radeon_set_context_reg(cs, CM_R_028AA8_IA_MULTI_VGT_PARAM,
@@ -2018,7 +2017,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const 
struct pipe_draw_info
rctx->b.family == CHIP_RV635) {
/* if we have gs shader or streamout
   we need to do a wait idle after every draw */
-   if (rctx->gs_shader || rctx->b.streamout.streamout_enabled) {
+   if (rctx->gs_shader || r600_get_strmout_en(>b)) {
radeon_set_config_reg(cs, R_008040_WAIT_UNTIL, 
S_008040_WAIT_3D_IDLE(1));
}
}
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 062c319..7da7736 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -639,6 +639,12 @@ r600_resource_reference(struct r600_resource **ptr, struct 
r600_resource *res)
(struct pipe_resource *)res);
  }

+static inline bool r600_get_strmout_en(struct r600_common_context *rctx)
+{
+   return rctx->streamout.streamout_enabled ||
+  rctx->streamout.prims_gen_query_enabled;
+}
+
  static inline unsigned r600_tex_aniso_filter(unsigned filter)
  {
if (filter <= 1)   return 0;
diff --git a/src/gallium/drivers/radeon/r600_streamout.c 
b/src/gallium/drivers/radeon/r600_streamout.c
index e977ed9..fc9ec48 100644
--- a/src/gallium/drivers/radeon/r600_streamout.c
+++ b/src/gallium/drivers/radeon/r600_streamout.c
@@ -311,12 +311,6 @@ void r600_emit_streamout_end(struct r600_common_context 
*rctx)
   * are no buffers bound.
   */

-static bool r600_get_strmout_en(struct r600_common_context *rctx)
-{
-   return rctx->streamout.streamout_enabled ||
-  rctx->streamout.prims_gen_query_enabled;
-}
-
  static void r600_emit_streamout_enable(struct r600_common_context *rctx,
   struct r600_atom *atom)
  {
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index 84b850a..3863e59 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -882,8 +882,7 @@ void si_draw_vbo(struct pipe_context *ctx, const struct 
pipe_draw_info *info)
if ((sctx->b.family == CHIP_HAWAII ||
 sctx->b.family == CHIP_TONGA ||
 sctx->b.family == CHIP_FIJI) &&
-   (sctx->b.streamout.streamout_enabled ||
-sctx->b.streamout.prims_gen_query_enabled)) {
+   r600_get_strmout_en(>b)) {
sctx->b.flags |= SI_CONTEXT_VGT_STREAMOUT_SYNC;
}



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


Re: [Mesa-dev] [PATCH] gallium/radeon: unify checking streamout enable state

2016-04-08 Thread eocallaghan

Reviewed-by: Edward O'Callaghan 

On 2016-04-08 19:00, Marek Olšák wrote:

From: Marek Olšák 

---
 src/gallium/drivers/r600/r600_state_common.c  | 5 ++---
 src/gallium/drivers/radeon/r600_pipe_common.h | 6 ++
 src/gallium/drivers/radeon/r600_streamout.c   | 6 --
 src/gallium/drivers/radeonsi/si_state_draw.c  | 3 +--
 4 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c
b/src/gallium/drivers/r600/r600_state_common.c
index df41d3f..82babeb 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1841,8 +1841,7 @@ static void r600_draw_vbo(struct pipe_context
*ctx, const struct pipe_draw_info
ia_switch_on_eop = true;
}

-   if (rctx->b.streamout.streamout_enabled ||
-   rctx->b.streamout.prims_gen_query_enabled)
+   if (r600_get_strmout_en(>b))
partial_vs_wave = true;

radeon_set_context_reg(cs, CM_R_028AA8_IA_MULTI_VGT_PARAM,
@@ -2018,7 +2017,7 @@ static void r600_draw_vbo(struct pipe_context
*ctx, const struct pipe_draw_info
rctx->b.family == CHIP_RV635) {
/* if we have gs shader or streamout
   we need to do a wait idle after every draw */
-   if (rctx->gs_shader || rctx->b.streamout.streamout_enabled) {
+   if (rctx->gs_shader || r600_get_strmout_en(>b)) {
 			radeon_set_config_reg(cs, R_008040_WAIT_UNTIL, 
S_008040_WAIT_3D_IDLE(1));

}
}
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 062c319..7da7736 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -639,6 +639,12 @@ r600_resource_reference(struct r600_resource
**ptr, struct r600_resource *res)
(struct pipe_resource *)res);
 }

+static inline bool r600_get_strmout_en(struct r600_common_context 
*rctx)

+{
+   return rctx->streamout.streamout_enabled ||
+  rctx->streamout.prims_gen_query_enabled;
+}
+
 static inline unsigned r600_tex_aniso_filter(unsigned filter)
 {
if (filter <= 1)   return 0;
diff --git a/src/gallium/drivers/radeon/r600_streamout.c
b/src/gallium/drivers/radeon/r600_streamout.c
index e977ed9..fc9ec48 100644
--- a/src/gallium/drivers/radeon/r600_streamout.c
+++ b/src/gallium/drivers/radeon/r600_streamout.c
@@ -311,12 +311,6 @@ void r600_emit_streamout_end(struct
r600_common_context *rctx)
  * are no buffers bound.
  */

-static bool r600_get_strmout_en(struct r600_common_context *rctx)
-{
-   return rctx->streamout.streamout_enabled ||
-  rctx->streamout.prims_gen_query_enabled;
-}
-
 static void r600_emit_streamout_enable(struct r600_common_context 
*rctx,

   struct r600_atom *atom)
 {
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c
b/src/gallium/drivers/radeonsi/si_state_draw.c
index 84b850a..3863e59 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -882,8 +882,7 @@ void si_draw_vbo(struct pipe_context *ctx, const
struct pipe_draw_info *info)
if ((sctx->b.family == CHIP_HAWAII ||
 sctx->b.family == CHIP_TONGA ||
 sctx->b.family == CHIP_FIJI) &&
-   (sctx->b.streamout.streamout_enabled ||
-sctx->b.streamout.prims_gen_query_enabled)) {
+   r600_get_strmout_en(>b)) {
sctx->b.flags |= SI_CONTEXT_VGT_STREAMOUT_SYNC;
}


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


[Mesa-dev] [PATCH] gallium/radeon: unify checking streamout enable state

2016-04-08 Thread Marek Olšák
From: Marek Olšák 

---
 src/gallium/drivers/r600/r600_state_common.c  | 5 ++---
 src/gallium/drivers/radeon/r600_pipe_common.h | 6 ++
 src/gallium/drivers/radeon/r600_streamout.c   | 6 --
 src/gallium/drivers/radeonsi/si_state_draw.c  | 3 +--
 4 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index df41d3f..82babeb 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1841,8 +1841,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const 
struct pipe_draw_info
ia_switch_on_eop = true;
}
 
-   if (rctx->b.streamout.streamout_enabled ||
-   rctx->b.streamout.prims_gen_query_enabled)
+   if (r600_get_strmout_en(>b))
partial_vs_wave = true;
 
radeon_set_context_reg(cs, CM_R_028AA8_IA_MULTI_VGT_PARAM,
@@ -2018,7 +2017,7 @@ static void r600_draw_vbo(struct pipe_context *ctx, const 
struct pipe_draw_info
rctx->b.family == CHIP_RV635) {
/* if we have gs shader or streamout
   we need to do a wait idle after every draw */
-   if (rctx->gs_shader || rctx->b.streamout.streamout_enabled) {
+   if (rctx->gs_shader || r600_get_strmout_en(>b)) {
radeon_set_config_reg(cs, R_008040_WAIT_UNTIL, 
S_008040_WAIT_3D_IDLE(1));
}
}
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 062c319..7da7736 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -639,6 +639,12 @@ r600_resource_reference(struct r600_resource **ptr, struct 
r600_resource *res)
(struct pipe_resource *)res);
 }
 
+static inline bool r600_get_strmout_en(struct r600_common_context *rctx)
+{
+   return rctx->streamout.streamout_enabled ||
+  rctx->streamout.prims_gen_query_enabled;
+}
+
 static inline unsigned r600_tex_aniso_filter(unsigned filter)
 {
if (filter <= 1)   return 0;
diff --git a/src/gallium/drivers/radeon/r600_streamout.c 
b/src/gallium/drivers/radeon/r600_streamout.c
index e977ed9..fc9ec48 100644
--- a/src/gallium/drivers/radeon/r600_streamout.c
+++ b/src/gallium/drivers/radeon/r600_streamout.c
@@ -311,12 +311,6 @@ void r600_emit_streamout_end(struct r600_common_context 
*rctx)
  * are no buffers bound.
  */
 
-static bool r600_get_strmout_en(struct r600_common_context *rctx)
-{
-   return rctx->streamout.streamout_enabled ||
-  rctx->streamout.prims_gen_query_enabled;
-}
-
 static void r600_emit_streamout_enable(struct r600_common_context *rctx,
   struct r600_atom *atom)
 {
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index 84b850a..3863e59 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -882,8 +882,7 @@ void si_draw_vbo(struct pipe_context *ctx, const struct 
pipe_draw_info *info)
if ((sctx->b.family == CHIP_HAWAII ||
 sctx->b.family == CHIP_TONGA ||
 sctx->b.family == CHIP_FIJI) &&
-   (sctx->b.streamout.streamout_enabled ||
-sctx->b.streamout.prims_gen_query_enabled)) {
+   r600_get_strmout_en(>b)) {
sctx->b.flags |= SI_CONTEXT_VGT_STREAMOUT_SYNC;
}
 
-- 
2.5.0

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