Re: [Intel-gfx] [PATCH 29/40] drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper.

2014-07-30 Thread Daniel Vetter
On Tue, Jul 29, 2014 at 08:01:53PM +0200, Daniel Vetter wrote:
 On Tue, Jul 29, 2014 at 09:59:53AM -0700, Jesse Barnes wrote:
  On Sat, 28 Jun 2014 02:04:20 +0300
  ville.syrj...@linux.intel.com wrote:
  
   From: Kenneth Graunke kenn...@whitecape.org
   
   We'll want to reuse this for a workaround.
   
   Signed-off-by: Kenneth Graunke kenn...@whitecape.org
   ---
drivers/gpu/drm/i915/intel_ringbuffer.c | 36 
   -
1 file changed, 22 insertions(+), 14 deletions(-)
   
   diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
   b/drivers/gpu/drm/i915/intel_ringbuffer.c
   index 2faef26..97796b1 100644
   --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
   +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
   @@ -381,6 +381,27 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
}

static int
   +gen8_emit_pipe_control(struct intel_engine_cs *ring,
   +u32 flags, u32 scratch_addr)
   +{
   + int ret;
   +
   + ret = intel_ring_begin(ring, 6);
   + if (ret)
   + return ret;
   +
   + intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
   + intel_ring_emit(ring, flags);
   + intel_ring_emit(ring, scratch_addr);
   + intel_ring_emit(ring, 0);
   + intel_ring_emit(ring, 0);
   + intel_ring_emit(ring, 0);
   + intel_ring_advance(ring);
   +
   + return 0;
   +}
   +
   +static int
gen8_render_ring_flush(struct intel_engine_cs *ring,
u32 invalidate_domains, u32 flush_domains)
{
   @@ -405,20 +426,7 @@ gen8_render_ring_flush(struct intel_engine_cs *ring,
 flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
 }

   - ret = intel_ring_begin(ring, 6);
   - if (ret)
   - return ret;
   -
   - intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
   - intel_ring_emit(ring, flags);
   - intel_ring_emit(ring, scratch_addr);
   - intel_ring_emit(ring, 0);
   - intel_ring_emit(ring, 0);
   - intel_ring_emit(ring, 0);
   - intel_ring_advance(ring);
   -
   - return 0;
   -
   + return gen8_emit_pipe_control(ring, flags, scratch_addr);
}

static void ring_write_tail(struct intel_engine_cs *ring,
  
  Reviewed-by: Jesse Barnes jbar...@virtuousgeek.org
 
 Aside: checkpatch complains about this since it makes it harder to grep
 for dmesg noise. But I guess if 3 people here like it I should merge it
 ;-)

That reply was meant for 27/40, not this patch here ofc.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 29/40] drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper.

2014-07-29 Thread Jesse Barnes
On Sat, 28 Jun 2014 02:04:20 +0300
ville.syrj...@linux.intel.com wrote:

 From: Kenneth Graunke kenn...@whitecape.org
 
 We'll want to reuse this for a workaround.
 
 Signed-off-by: Kenneth Graunke kenn...@whitecape.org
 ---
  drivers/gpu/drm/i915/intel_ringbuffer.c | 36 
 -
  1 file changed, 22 insertions(+), 14 deletions(-)
 
 diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
 b/drivers/gpu/drm/i915/intel_ringbuffer.c
 index 2faef26..97796b1 100644
 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
 +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
 @@ -381,6 +381,27 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
  }
  
  static int
 +gen8_emit_pipe_control(struct intel_engine_cs *ring,
 +u32 flags, u32 scratch_addr)
 +{
 + int ret;
 +
 + ret = intel_ring_begin(ring, 6);
 + if (ret)
 + return ret;
 +
 + intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
 + intel_ring_emit(ring, flags);
 + intel_ring_emit(ring, scratch_addr);
 + intel_ring_emit(ring, 0);
 + intel_ring_emit(ring, 0);
 + intel_ring_emit(ring, 0);
 + intel_ring_advance(ring);
 +
 + return 0;
 +}
 +
 +static int
  gen8_render_ring_flush(struct intel_engine_cs *ring,
  u32 invalidate_domains, u32 flush_domains)
  {
 @@ -405,20 +426,7 @@ gen8_render_ring_flush(struct intel_engine_cs *ring,
   flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
   }
  
 - ret = intel_ring_begin(ring, 6);
 - if (ret)
 - return ret;
 -
 - intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
 - intel_ring_emit(ring, flags);
 - intel_ring_emit(ring, scratch_addr);
 - intel_ring_emit(ring, 0);
 - intel_ring_emit(ring, 0);
 - intel_ring_emit(ring, 0);
 - intel_ring_advance(ring);
 -
 - return 0;
 -
 + return gen8_emit_pipe_control(ring, flags, scratch_addr);
  }
  
  static void ring_write_tail(struct intel_engine_cs *ring,

Reviewed-by: Jesse Barnes jbar...@virtuousgeek.org

-- 
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 29/40] drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper.

2014-07-29 Thread Daniel Vetter
On Tue, Jul 29, 2014 at 09:59:53AM -0700, Jesse Barnes wrote:
 On Sat, 28 Jun 2014 02:04:20 +0300
 ville.syrj...@linux.intel.com wrote:
 
  From: Kenneth Graunke kenn...@whitecape.org
  
  We'll want to reuse this for a workaround.
  
  Signed-off-by: Kenneth Graunke kenn...@whitecape.org
  ---
   drivers/gpu/drm/i915/intel_ringbuffer.c | 36 
  -
   1 file changed, 22 insertions(+), 14 deletions(-)
  
  diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
  b/drivers/gpu/drm/i915/intel_ringbuffer.c
  index 2faef26..97796b1 100644
  --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
  +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
  @@ -381,6 +381,27 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
   }
   
   static int
  +gen8_emit_pipe_control(struct intel_engine_cs *ring,
  +  u32 flags, u32 scratch_addr)
  +{
  +   int ret;
  +
  +   ret = intel_ring_begin(ring, 6);
  +   if (ret)
  +   return ret;
  +
  +   intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
  +   intel_ring_emit(ring, flags);
  +   intel_ring_emit(ring, scratch_addr);
  +   intel_ring_emit(ring, 0);
  +   intel_ring_emit(ring, 0);
  +   intel_ring_emit(ring, 0);
  +   intel_ring_advance(ring);
  +
  +   return 0;
  +}
  +
  +static int
   gen8_render_ring_flush(struct intel_engine_cs *ring,
 u32 invalidate_domains, u32 flush_domains)
   {
  @@ -405,20 +426,7 @@ gen8_render_ring_flush(struct intel_engine_cs *ring,
  flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
  }
   
  -   ret = intel_ring_begin(ring, 6);
  -   if (ret)
  -   return ret;
  -
  -   intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
  -   intel_ring_emit(ring, flags);
  -   intel_ring_emit(ring, scratch_addr);
  -   intel_ring_emit(ring, 0);
  -   intel_ring_emit(ring, 0);
  -   intel_ring_emit(ring, 0);
  -   intel_ring_advance(ring);
  -
  -   return 0;
  -
  +   return gen8_emit_pipe_control(ring, flags, scratch_addr);
   }
   
   static void ring_write_tail(struct intel_engine_cs *ring,
 
 Reviewed-by: Jesse Barnes jbar...@virtuousgeek.org

Aside: checkpatch complains about this since it makes it harder to grep
for dmesg noise. But I guess if 3 people here like it I should merge it
;-)

Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 29/40] drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper.

2014-06-27 Thread ville . syrjala
From: Kenneth Graunke kenn...@whitecape.org

We'll want to reuse this for a workaround.

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
---
 drivers/gpu/drm/i915/intel_ringbuffer.c | 36 -
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 2faef26..97796b1 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -381,6 +381,27 @@ gen7_render_ring_flush(struct intel_engine_cs *ring,
 }
 
 static int
+gen8_emit_pipe_control(struct intel_engine_cs *ring,
+  u32 flags, u32 scratch_addr)
+{
+   int ret;
+
+   ret = intel_ring_begin(ring, 6);
+   if (ret)
+   return ret;
+
+   intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
+   intel_ring_emit(ring, flags);
+   intel_ring_emit(ring, scratch_addr);
+   intel_ring_emit(ring, 0);
+   intel_ring_emit(ring, 0);
+   intel_ring_emit(ring, 0);
+   intel_ring_advance(ring);
+
+   return 0;
+}
+
+static int
 gen8_render_ring_flush(struct intel_engine_cs *ring,
   u32 invalidate_domains, u32 flush_domains)
 {
@@ -405,20 +426,7 @@ gen8_render_ring_flush(struct intel_engine_cs *ring,
flags |= PIPE_CONTROL_GLOBAL_GTT_IVB;
}
 
-   ret = intel_ring_begin(ring, 6);
-   if (ret)
-   return ret;
-
-   intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(6));
-   intel_ring_emit(ring, flags);
-   intel_ring_emit(ring, scratch_addr);
-   intel_ring_emit(ring, 0);
-   intel_ring_emit(ring, 0);
-   intel_ring_emit(ring, 0);
-   intel_ring_advance(ring);
-
-   return 0;
-
+   return gen8_emit_pipe_control(ring, flags, scratch_addr);
 }
 
 static void ring_write_tail(struct intel_engine_cs *ring,
-- 
1.8.5.5

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx