Re: [Mesa-dev] [PATCH 06/37] i965/gs: Reuse gen6 constant push buffers setup code in gen7+.

2014-09-03 Thread Jordan Justen
On Thu, Aug 14, 2014 at 4:11 AM, Iago Toral Quiroga ito...@igalia.com wrote:
 From: Samuel Iglesias Gonsalvez sigles...@igalia.com

 The code required for gen6 and gen7+ is almost the same, so reuse it.

I had a question in patch 5 related to this code, but:
Reviewed-by: Jordan Justen jordan.l.jus...@intel.com

 Signed-off-by: Samuel Iglesias Gonsalvez sigles...@igalia.com
 ---
  src/mesa/drivers/dri/i965/brw_state_upload.c |  4 ++--
  src/mesa/drivers/dri/i965/gen6_gs_state.c|  6 -
  src/mesa/drivers/dri/i965/gen7_gs_state.c| 33 
 
  3 files changed, 7 insertions(+), 36 deletions(-)

 diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c 
 b/src/mesa/drivers/dri/i965/brw_state_upload.c
 index 0481790..a52a8f4 100644
 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c
 +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
 @@ -197,7 +197,7 @@ static const struct brw_tracked_state *gen7_atoms[] =
 gen6_depth_stencil_state,  /* must do before cc unit */

 gen6_vs_push_constants, /* Before vs_state */
 -   gen7_gs_push_constants, /* Before gs_state */
 +   gen6_gs_push_constants, /* Before gs_state */
 gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */

 /* Surface state setup.  Must come before the VS/WM unit.  The binding
 @@ -271,7 +271,7 @@ static const struct brw_tracked_state *gen8_atoms[] =
 gen6_color_calc_state,

 gen6_vs_push_constants, /* Before vs_state */
 -   gen7_gs_push_constants, /* Before gs_state */
 +   gen6_gs_push_constants, /* Before gs_state */
 gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */

 /* Surface state setup.  Must come before the VS/WM unit.  The binding
 diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c 
 b/src/mesa/drivers/dri/i965/gen6_gs_state.c
 index 987b7d2..e3256e2 100644
 --- a/src/mesa/drivers/dri/i965/gen6_gs_state.c
 +++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c
 @@ -33,18 +33,22 @@
  static void
  gen6_upload_gs_push_constants(struct brw_context *brw)
  {
 +   struct brw_stage_state *stage_state = brw-gs.base;
 +
 /* BRW_NEW_GEOMETRY_PROGRAM */
 const struct brw_geometry_program *gp =
(struct brw_geometry_program *) brw-geometry_program;

 if (gp) {
/* CACHE_NEW_GS_PROG */
 -  struct brw_stage_state *stage_state = brw-gs.base;
struct brw_stage_prog_data *prog_data = brw-gs.prog_data-base.base;

gen6_upload_push_constants(brw, gp-program.Base, prog_data,
   stage_state, AUB_TRACE_VS_CONSTANTS);
 }
 +
 +   if (brw-gen = 7)
 +  gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS);
  }

  const struct brw_tracked_state gen6_gs_push_constants = {
 diff --git a/src/mesa/drivers/dri/i965/gen7_gs_state.c 
 b/src/mesa/drivers/dri/i965/gen7_gs_state.c
 index b3b4ee6..2a9955f 100644
 --- a/src/mesa/drivers/dri/i965/gen7_gs_state.c
 +++ b/src/mesa/drivers/dri/i965/gen7_gs_state.c
 @@ -26,39 +26,6 @@
  #include brw_defines.h
  #include intel_batchbuffer.h

 -
 -static void
 -gen7_upload_gs_push_constants(struct brw_context *brw)
 -{
 -   const struct brw_stage_state *stage_state = brw-gs.base;
 -   /* BRW_NEW_GEOMETRY_PROGRAM */
 -   const struct brw_geometry_program *gp =
 -  (struct brw_geometry_program *) brw-geometry_program;
 -
 -   if (gp) {
 -  /* CACHE_NEW_GS_PROG */
 -  const struct brw_stage_prog_data *prog_data = 
 brw-gs.prog_data-base.base;
 -  struct brw_stage_state *stage_state = brw-gs.base;
 -
 -  gen6_upload_push_constants(brw, gp-program.Base, prog_data,
 - stage_state, AUB_TRACE_VS_CONSTANTS);
 -   }
 -
 -   gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS);
 -}
 -
 -const struct brw_tracked_state gen7_gs_push_constants = {
 -   .dirty = {
 -  .mesa  = _NEW_TRANSFORM | _NEW_PROGRAM_CONSTANTS,
 -  .brw   = (BRW_NEW_BATCH |
 -BRW_NEW_GEOMETRY_PROGRAM |
 -BRW_NEW_PUSH_CONSTANT_ALLOCATION),
 -  .cache = CACHE_NEW_GS_PROG,
 -   },
 -   .emit = gen7_upload_gs_push_constants,
 -};
 -
 -
  static void
  upload_gs_state(struct brw_context *brw)
  {
 --
 1.9.1

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


[Mesa-dev] [PATCH 06/37] i965/gs: Reuse gen6 constant push buffers setup code in gen7+.

2014-08-14 Thread Iago Toral Quiroga
From: Samuel Iglesias Gonsalvez sigles...@igalia.com

The code required for gen6 and gen7+ is almost the same, so reuse it.

Signed-off-by: Samuel Iglesias Gonsalvez sigles...@igalia.com
---
 src/mesa/drivers/dri/i965/brw_state_upload.c |  4 ++--
 src/mesa/drivers/dri/i965/gen6_gs_state.c|  6 -
 src/mesa/drivers/dri/i965/gen7_gs_state.c| 33 
 3 files changed, 7 insertions(+), 36 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c 
b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 0481790..a52a8f4 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -197,7 +197,7 @@ static const struct brw_tracked_state *gen7_atoms[] =
gen6_depth_stencil_state,  /* must do before cc unit */
 
gen6_vs_push_constants, /* Before vs_state */
-   gen7_gs_push_constants, /* Before gs_state */
+   gen6_gs_push_constants, /* Before gs_state */
gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */
 
/* Surface state setup.  Must come before the VS/WM unit.  The binding
@@ -271,7 +271,7 @@ static const struct brw_tracked_state *gen8_atoms[] =
gen6_color_calc_state,
 
gen6_vs_push_constants, /* Before vs_state */
-   gen7_gs_push_constants, /* Before gs_state */
+   gen6_gs_push_constants, /* Before gs_state */
gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */
 
/* Surface state setup.  Must come before the VS/WM unit.  The binding
diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c 
b/src/mesa/drivers/dri/i965/gen6_gs_state.c
index 987b7d2..e3256e2 100644
--- a/src/mesa/drivers/dri/i965/gen6_gs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c
@@ -33,18 +33,22 @@
 static void
 gen6_upload_gs_push_constants(struct brw_context *brw)
 {
+   struct brw_stage_state *stage_state = brw-gs.base;
+
/* BRW_NEW_GEOMETRY_PROGRAM */
const struct brw_geometry_program *gp =
   (struct brw_geometry_program *) brw-geometry_program;
 
if (gp) {
   /* CACHE_NEW_GS_PROG */
-  struct brw_stage_state *stage_state = brw-gs.base;
   struct brw_stage_prog_data *prog_data = brw-gs.prog_data-base.base;
 
   gen6_upload_push_constants(brw, gp-program.Base, prog_data,
  stage_state, AUB_TRACE_VS_CONSTANTS);
}
+
+   if (brw-gen = 7)
+  gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS);
 }
 
 const struct brw_tracked_state gen6_gs_push_constants = {
diff --git a/src/mesa/drivers/dri/i965/gen7_gs_state.c 
b/src/mesa/drivers/dri/i965/gen7_gs_state.c
index b3b4ee6..2a9955f 100644
--- a/src/mesa/drivers/dri/i965/gen7_gs_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_gs_state.c
@@ -26,39 +26,6 @@
 #include brw_defines.h
 #include intel_batchbuffer.h
 
-
-static void
-gen7_upload_gs_push_constants(struct brw_context *brw)
-{
-   const struct brw_stage_state *stage_state = brw-gs.base;
-   /* BRW_NEW_GEOMETRY_PROGRAM */
-   const struct brw_geometry_program *gp =
-  (struct brw_geometry_program *) brw-geometry_program;
-
-   if (gp) {
-  /* CACHE_NEW_GS_PROG */
-  const struct brw_stage_prog_data *prog_data = 
brw-gs.prog_data-base.base;
-  struct brw_stage_state *stage_state = brw-gs.base;
-
-  gen6_upload_push_constants(brw, gp-program.Base, prog_data,
- stage_state, AUB_TRACE_VS_CONSTANTS);
-   }
-
-   gen7_upload_constant_state(brw, stage_state, gp, _3DSTATE_CONSTANT_GS);
-}
-
-const struct brw_tracked_state gen7_gs_push_constants = {
-   .dirty = {
-  .mesa  = _NEW_TRANSFORM | _NEW_PROGRAM_CONSTANTS,
-  .brw   = (BRW_NEW_BATCH |
-BRW_NEW_GEOMETRY_PROGRAM |
-BRW_NEW_PUSH_CONSTANT_ALLOCATION),
-  .cache = CACHE_NEW_GS_PROG,
-   },
-   .emit = gen7_upload_gs_push_constants,
-};
-
-
 static void
 upload_gs_state(struct brw_context *brw)
 {
-- 
1.9.1

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