All of lore.kernel.org
 help / color / mirror / Atom feed
From: Katarzyna Dec <katarzyna.dec@intel.com>
To: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t v3 4/5] lib/gpu_fill: Further code unification in gpu_fill
Date: Mon, 7 May 2018 14:01:33 +0200	[thread overview]
Message-ID: <20180507120133.GJ4638@kdec5-desk.ger.corp.intel.com> (raw)
In-Reply-To: <80f11cdc-54ee-2d8b-3876-840e2cd4242e@intel.com>

On Fri, May 04, 2018 at 05:04:25PM -0700, Daniele Ceraolo Spurio wrote:
> 
> 
> On 04/05/18 06:02, Katarzyna Dec wrote:
> > We can unify gen7_emit_vfe_state and gen8_emit_vfe_state
> > functions for gpgpu/media_fill and media_spin by adding
> > parameters. gen8_emit_media_object was renamed to gen_*
> > and extended with additional offset parameters - we can
> > have one gen7_emit_media_objects for all tests.
> > I have renamed gen8_emit_media_object to gen_emit_*, because
> > function belongs to all gens and it would be odd to have
> > all named genX_* and only one without this prefix.
> > 
> > v2: Use #defines instead of variables as emit_vfe_state parameters.
> > Fixed gen7_emit_media_objects. Unified vfe state parameters
> > in media_spin library for gen8 and gen9 (gen9 had different values
> > by mistake).
> > 
> > Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
> > Cc: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
> > Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > ---
> >   lib/gpgpu_fill.c      |  10 ++--
> >   lib/gpu_fill.c        | 126 +++++++++-----------------------------------------
> >   lib/gpu_fill.h        |  33 ++++++++-----
> >   lib/media_fill_gen7.c |   3 +-
> >   lib/media_fill_gen8.c |   3 +-
> >   lib/media_fill_gen9.c |   3 +-
> >   lib/media_spin.c      |  16 +++++--
> >   7 files changed, 67 insertions(+), 127 deletions(-)
> > 
> > diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
> > index 52925a5c..0d26d5c6 100644
> > --- a/lib/gpgpu_fill.c
> > +++ b/lib/gpgpu_fill.c
> > @@ -129,7 +129,9 @@ gen7_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_GPGPU);
> >   	gen7_emit_state_base_address(batch);
> > -	gen7_emit_vfe_state_gpgpu(batch);
> > +	gen7_emit_vfe_state(batch, THREADS, GEN7_GPGPU_URB_ENTRIES,
> > +			    GPGPU_URB_SIZE, GPGPU_CURBE_SIZE,
> > +			    GEN7_VFE_STATE_GPGPU_MODE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> >   	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> >   	gen7_emit_gpgpu_walk(batch, x, y, width, height);
> > @@ -176,7 +178,8 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_GPGPU);
> >   	gen8_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state_gpgpu(batch);
> > +	gen8_emit_vfe_state(batch, THREADS, GEN7_GPGPU_URB_ENTRIES,
> 
> Shouldn't here and in the gen9 function use GEN8_GPGPU_URB_ENTRIES?
>
You're right :) It looks like I ran wrong binary before sending.
Will be fixed in another version.
> > +			    GPGPU_URB_SIZE, GPGPU_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> >   	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> >   	gen8_emit_gpgpu_walk(batch, x, y, width, height);
> > @@ -224,7 +227,8 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   		  PIPELINE_SELECT_GPGPU);
> >   	gen9_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state_gpgpu(batch);
> > +	gen8_emit_vfe_state(batch, THREADS, GEN7_GPGPU_URB_ENTRIES,
> > +			    GPGPU_URB_SIZE, GPGPU_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> >   	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> >   	gen8_emit_gpgpu_walk(batch, x, y, width, height);
> > diff --git a/lib/gpu_fill.c b/lib/gpu_fill.c
> > index 24e03cf2..e8591648 100644
> > --- a/lib/gpu_fill.c
> > +++ b/lib/gpu_fill.c
> > @@ -194,7 +194,9 @@ gen7_emit_state_base_address(struct intel_batchbuffer *batch)
> >   }
> >   void
> > -gen7_emit_vfe_state(struct intel_batchbuffer *batch)
> > +gen7_emit_vfe_state(struct intel_batchbuffer *batch, uint32_t threads,
> > +		    uint32_t urb_entries, uint32_t urb_size,
> > +		    uint32_t curbe_size, uint32_t mode)
> >   {
> >   	OUT_BATCH(GEN7_MEDIA_VFE_STATE | (8 - 2));
> > @@ -202,39 +204,15 @@ gen7_emit_vfe_state(struct intel_batchbuffer *batch)
> >   	OUT_BATCH(0);
> >   	/* number of threads & urb entries */
> > -	OUT_BATCH(1 << 16 |
> > -		2 << 8);
> > +	OUT_BATCH(threads << 16 |
> > +		urb_entries << 8 |
> > +		mode << 2); /* GPGPU vs media mode */
> >   	OUT_BATCH(0);
> >   	/* urb entry size & curbe size */
> > -	OUT_BATCH(2 << 16 |	/* in 256 bits unit */
> > -		  2);		/* in 256 bits unit */
> > -
> > -	/* scoreboard */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -}
> > -
> > -void
> > -gen7_emit_vfe_state_gpgpu(struct intel_batchbuffer *batch)
> > -{
> > -	OUT_BATCH(GEN7_MEDIA_VFE_STATE | (8 - 2));
> > -
> > -	/* scratch buffer */
> > -	OUT_BATCH(0);
> > -
> > -	/* number of threads & urb entries */
> > -	OUT_BATCH(1 << 16 | /* max num of threads */
> > -		  0 << 8 | /* num of URB entry */
> > -		  1 << 2); /* GPGPU mode */
> > -
> > -	OUT_BATCH(0);
> > -
> > -	/* urb entry size & curbe size */
> > -	OUT_BATCH(0 << 16 |	/* URB entry size in 256 bits unit */
> > -		  1);		/* CURBE entry size in 256 bits unit */
> > +	OUT_BATCH(urb_size << 16 |	/* in 256 bits unit */
> > +		  curbe_size);		/* in 256 bits unit */
> >   	/* scoreboard */
> >   	OUT_BATCH(0);
> > @@ -279,25 +257,7 @@ gen7_emit_media_objects(struct intel_batchbuffer *batch,
> >   	for (i = 0; i < width / 16; i++) {
> >   		for (j = 0; j < height / 16; j++) {
> > -			OUT_BATCH(GEN7_MEDIA_OBJECT | (8 - 2));
> > -
> > -			/* interface descriptor offset */
> > -			OUT_BATCH(0);
> > -
> > -			/* without indirect data */
> > -			OUT_BATCH(0);
> > -			OUT_BATCH(0);
> > -
> > -			/* scoreboard */
> > -			OUT_BATCH(0);
> > -			OUT_BATCH(0);
> > -
> > -			/* inline data (xoffset, yoffset) */
> > -			OUT_BATCH(x + i * 16);
> > -			OUT_BATCH(y + j * 16);
> > -			if (AT_LEAST_GEN(batch->devid, 8) &&
> > -			    !IS_CHERRYVIEW(batch->devid))
> > -				gen8_emit_media_state_flush(batch);
> > +			gen_emit_media_object(batch, x + i*16, y + j*16);
> >   		}
> >   	}
> >   }
> > @@ -505,32 +465,9 @@ gen8_emit_media_state_flush(struct intel_batchbuffer *batch)
> >   }
> >   void
> > -gen8_emit_vfe_state(struct intel_batchbuffer *batch)
> > -{
> > -	OUT_BATCH(GEN7_MEDIA_VFE_STATE | (9 - 2));
> > -
> > -	/* scratch buffer */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -
> > -	/* number of threads & urb entries */
> > -	OUT_BATCH(1 << 16 |
> > -		2 << 8);
> > -
> > -	OUT_BATCH(0);
> > -
> > -	/* urb entry size & curbe size */
> > -	OUT_BATCH(2 << 16 |
> > -		2);
> > -
> > -	/* scoreboard */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -}
> > -
> > -void
> > -gen8_emit_vfe_state_gpgpu(struct intel_batchbuffer *batch)
> > +gen8_emit_vfe_state(struct intel_batchbuffer *batch, uint32_t threads,
> > +		    uint32_t urb_entries, uint32_t urb_size,
> > +		    uint32_t curbe_size)
> >   {
> >   	OUT_BATCH(GEN7_MEDIA_VFE_STATE | (9 - 2));
> > @@ -539,36 +476,14 @@ gen8_emit_vfe_state_gpgpu(struct intel_batchbuffer *batch)
> >   	OUT_BATCH(0);
> >   	/* number of threads & urb entries */
> > -	OUT_BATCH(1 << 16 | 1 << 8);
> > -
> > -	OUT_BATCH(0);
> > -
> > -	/* urb entry size & curbe size */
> > -	OUT_BATCH(0 << 16 | 1);
> > -
> > -	/* scoreboard */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -}
> > -
> > -void
> > -gen8_emit_vfe_state_spin(struct intel_batchbuffer *batch)
> > -{
> > -	OUT_BATCH(GEN8_MEDIA_VFE_STATE | (9 - 2));
> > -
> > -	/* scratch buffer */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > -
> > -	/* number of threads & urb entries */
> > -	OUT_BATCH(2 << 8);
> > +	OUT_BATCH(threads << 16 |
> > +		urb_entries << 8);
> >   	OUT_BATCH(0);
> >   	/* urb entry size & curbe size */
> > -	OUT_BATCH(2 << 16 |
> > -		2);
> > +	OUT_BATCH(urb_size << 16 |
> > +		curbe_size);
> >   	/* scoreboard */
> >   	OUT_BATCH(0);
> > @@ -637,9 +552,10 @@ gen8_emit_gpgpu_walk(struct intel_batchbuffer *batch,
> >   }
> >   void
> > -gen8_emit_media_objects_spin(struct intel_batchbuffer *batch)
> > +gen_emit_media_object(struct intel_batchbuffer *batch,
> > +		       unsigned int xoffset, unsigned int yoffset)
> >   {
> > -	OUT_BATCH(GEN8_MEDIA_OBJECT | (8 - 2));
> > +	OUT_BATCH(GEN7_MEDIA_OBJECT | (8 - 2));
> >   	/* interface descriptor offset */
> >   	OUT_BATCH(0);
> > @@ -653,8 +569,8 @@ gen8_emit_media_objects_spin(struct intel_batchbuffer *batch)
> >   	OUT_BATCH(0);
> >   	/* inline data (xoffset, yoffset) */
> > -	OUT_BATCH(0);
> > -	OUT_BATCH(0);
> > +	OUT_BATCH(xoffset);
> > +	OUT_BATCH(yoffset);
> >   	if (AT_LEAST_GEN(batch->devid, 8) && !IS_CHERRYVIEW(batch->devid))
> >   		gen8_emit_media_state_flush(batch);
> >   }
> > diff --git a/lib/gpu_fill.h b/lib/gpu_fill.h
> > index 1e4be4bb..eb9998bc 100644
> > --- a/lib/gpu_fill.h
> > +++ b/lib/gpu_fill.h
> > @@ -37,6 +37,19 @@
> >   #include "intel_chipset.h"
> >   #include <assert.h>
> > +/* VFE STATE params */
> > +#define THREADS 1
> > +#define SPIN_THREADS 0
> > +#define GEN7_GPGPU_URB_ENTRIES 0
> > +#define GEN8_GPGPU_URB_ENTRIES 1
> > +#define MEDIA_URB_ENTRIES 2
> > +#define GPGPU_URB_SIZE 0	/* size of 1 entry in 256 bits unit */
> > +#define MEDIA_URB_SIZE 2
> > +#define GPGPU_CURBE_SIZE 1	/* in 256 bits unit */
> > +#define MEDIA_CURBE_SIZE 2
> 
> 
> Since those defines are workload specific I think they should be in their
> respective workload file (gpgpu_fill.c etc) instead of here, as they are a
> bit mixed up here. There would be a slight duplication, but most of it
> should go away later if we squash the various media_fill files into one.
> 
> Also, a define with a generic name like "THREADS" in a .h could cause issue
> if in the future we include the header from a test file with a define with
> the same name.
> 
> > +#define GEN7_VFE_STATE_GPGPU_MODE 1
> > +#define GEN7_MEDIA_VFE_STATE_GPGPU_MODE 0
> > +
> 
> These 2 names have a slight different format, as one uses GEN7_VFE_STATE and
> the other GEN7_MEDIA_VFE_STATE prefix. The naming of the second one also
> seems to be referring to GPGPU but the value is for media. I'd go with
> GEN7_VFE_STATE_MEDIA_MODE for the second one to solve both issues.
> 
> Also, since those 2 defines represent specific bit values of
> GEN7_MEDIA_VFE_STATE I better place for them would be where
> GEN7_MEDIA_VFE_STATE is defined (like we do for the pipeline bits for
> GEN7_PIPELINE_SELECT)
> 
> Daniele
> 
> >   void
> >   gen7_render_flush(struct intel_batchbuffer *batch, uint32_t batch_end);
> > @@ -68,10 +81,9 @@ void
> >   gen7_emit_state_base_address(struct intel_batchbuffer *batch);
> >   void
> > -gen7_emit_vfe_state(struct intel_batchbuffer *batch);
> > -
> > -void
> > -gen7_emit_vfe_state_gpgpu(struct intel_batchbuffer *batch);
> > +gen7_emit_vfe_state(struct intel_batchbuffer *batch, uint32_t threads,
> > +		    uint32_t urb_entries, uint32_t urb_size,
> > +		    uint32_t curbe_size, uint32_t mode);
> >   void
> >   gen7_emit_curbe_load(struct intel_batchbuffer *batch, uint32_t curbe_buffer);
> > @@ -112,13 +124,9 @@ void
> >   gen8_emit_media_state_flush(struct intel_batchbuffer *batch);
> >   void
> > -gen8_emit_vfe_state(struct intel_batchbuffer *batch);
> > -
> > -void
> > -gen8_emit_vfe_state_gpgpu(struct intel_batchbuffer *batch);
> > -
> > -void
> > -gen8_emit_vfe_state_spin(struct intel_batchbuffer *batch);
> > +gen8_emit_vfe_state(struct intel_batchbuffer *batch, uint32_t threads,
> > +		    uint32_t urb_entries, uint32_t urb_size,
> > +		    uint32_t curbe_size);
> >   void
> >   gen8_emit_gpgpu_walk(struct intel_batchbuffer *batch,
> > @@ -126,7 +134,8 @@ gen8_emit_gpgpu_walk(struct intel_batchbuffer *batch,
> >   		     unsigned int width, unsigned int height);
> >   void
> > -gen8_emit_media_objects_spin(struct intel_batchbuffer *batch);
> > +gen_emit_media_object(struct intel_batchbuffer *batch, unsigned int xoffset,
> > +		  unsigned int yoffset);
> >   void
> >   gen9_emit_state_base_address(struct intel_batchbuffer *batch);
> > diff --git a/lib/media_fill_gen7.c b/lib/media_fill_gen7.c
> > index 3dc5617e..0f277350 100644
> > --- a/lib/media_fill_gen7.c
> > +++ b/lib/media_fill_gen7.c
> > @@ -69,7 +69,8 @@ gen7_media_fillfunc(struct intel_batchbuffer *batch,
> >   	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> >   	gen7_emit_state_base_address(batch);
> > -	gen7_emit_vfe_state(batch);
> > +	gen7_emit_vfe_state(batch, THREADS, MEDIA_URB_ENTRIES, MEDIA_URB_SIZE,
> > +			    MEDIA_CURBE_SIZE, GEN7_MEDIA_VFE_STATE_GPGPU_MODE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> > diff --git a/lib/media_fill_gen8.c b/lib/media_fill_gen8.c
> > index 63fe72eb..b9791c63 100644
> > --- a/lib/media_fill_gen8.c
> > +++ b/lib/media_fill_gen8.c
> > @@ -72,7 +72,8 @@ gen8_media_fillfunc(struct intel_batchbuffer *batch,
> >   	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> >   	gen8_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state(batch);
> > +	gen8_emit_vfe_state(batch, THREADS, MEDIA_URB_ENTRIES, MEDIA_URB_SIZE,
> > +			    MEDIA_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> > diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
> > index 78e892f2..d2c54bdd 100644
> > --- a/lib/media_fill_gen9.c
> > +++ b/lib/media_fill_gen9.c
> > @@ -74,7 +74,8 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
> >   			GEN9_FORCE_MEDIA_AWAKE_MASK);
> >   	gen9_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state(batch);
> > +	gen8_emit_vfe_state(batch, THREADS, MEDIA_URB_ENTRIES, MEDIA_URB_SIZE,
> > +			    MEDIA_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> > diff --git a/lib/media_spin.c b/lib/media_spin.c
> > index b323550a..ecff65e1 100644
> > --- a/lib/media_spin.c
> > +++ b/lib/media_spin.c
> > @@ -68,6 +68,12 @@ static const uint32_t spin_kernel[][4] = {
> >   #define BATCH_STATE_SPLIT 2048
> > +/* Offsets needed in gen_emit_media_object. In media_spin library this
> > + * values do not matter.
> > + */
> > +#define xoffset 0
> > +#define yoffset 0
> > +
> >   void
> >   gen8_media_spinfunc(struct intel_batchbuffer *batch,
> >   		    struct igt_buf *dst, uint32_t spins)
> > @@ -90,13 +96,14 @@ gen8_media_spinfunc(struct intel_batchbuffer *batch,
> >   	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> >   	gen8_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state_spin(batch);
> > +	gen8_emit_vfe_state(batch, SPIN_THREADS, MEDIA_URB_ENTRIES,
> > +			    MEDIA_URB_SIZE, MEDIA_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> >   	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > -	gen8_emit_media_objects_spin(batch);
> > +	gen_emit_media_object(batch, xoffset, yoffset);
> >   	OUT_BATCH(MI_BATCH_BUFFER_END);
> > @@ -134,13 +141,14 @@ gen9_media_spinfunc(struct intel_batchbuffer *batch,
> >   			GEN9_FORCE_MEDIA_AWAKE_MASK);
> >   	gen9_emit_state_base_address(batch);
> > -	gen8_emit_vfe_state_spin(batch);
> > +	gen8_emit_vfe_state(batch, SPIN_THREADS, MEDIA_URB_ENTRIES,
> > +			    MEDIA_URB_SIZE, MEDIA_CURBE_SIZE);
> >   	gen7_emit_curbe_load(batch, curbe_buffer);
> >   	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > -	gen8_emit_media_objects_spin(batch);
> > +	gen_emit_media_object(batch, xoffset, yoffset);
> >   	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
> >   			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
> > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2018-05-07 12:01 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-04 13:02 [igt-dev] [PATCH i-g-t v3 1/5] lib/media_spin: Move helper functions to gpu_fill library Katarzyna Dec
2018-05-04 13:02 ` [igt-dev] [PATCH i-g-t v3 2/5] lib/media_spin: Remove gen8lp_media_spin function Katarzyna Dec
2018-05-04 13:02 ` [igt-dev] [PATCH i-g-t v3 3/5] lib: Adjust media_spin and gpu_fill to our code style Katarzyna Dec
2018-05-10 13:13   ` Katarzyna Dec
2018-05-10 17:11     ` Antonio Argenziano
2018-05-11 14:04       ` Katarzyna Dec
2018-05-11  6:47   ` [igt-dev] [PATCH i-g-t v5 " Katarzyna Dec
2018-05-11 12:45     ` Ewelina Musial
2018-05-04 13:02 ` [igt-dev] [PATCH i-g-t v3 4/5] lib/gpu_fill: Further code unification in gpu_fill Katarzyna Dec
2018-05-05  0:04   ` Daniele Ceraolo Spurio
2018-05-07 12:01     ` Katarzyna Dec [this message]
2018-05-07 12:25     ` Katarzyna Dec
2018-05-07 12:36   ` [igt-dev] [PATCH i-g-t v4 " Katarzyna Dec
2018-05-10 13:15     ` Katarzyna Dec
2018-05-10 15:41     ` Daniele Ceraolo Spurio
2018-05-11 13:52       ` Katarzyna Dec
2018-05-11  6:46     ` [igt-dev] [PATCH i-g-t v5 " Katarzyna Dec
2018-05-11 12:44       ` Ewelina Musial
2018-05-04 13:02 ` [igt-dev] [PATCH i-g-t v3 5/5] lib: Rename library from gpu_fill to gpu_cmds Katarzyna Dec
2018-05-10 13:17   ` Katarzyna Dec
2018-05-10 15:10     ` Daniele Ceraolo Spurio
2018-05-11 14:14       ` Katarzyna Dec
2018-05-04 13:33 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/5] lib/media_spin: Move helper functions to gpu_fill library Patchwork
2018-05-04 15:24 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-05-07 13:14 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/5] lib/media_spin: Move helper functions to gpu_fill library (rev2) Patchwork
2018-05-07 14:01 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-05-11  7:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/5] lib/media_spin: Move helper functions to gpu_fill library (rev4) Patchwork
2018-05-11  8:03 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180507120133.GJ4638@kdec5-desk.ger.corp.intel.com \
    --to=katarzyna.dec@intel.com \
    --cc=daniele.ceraolospurio@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.