All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2
@ 2018-05-09 14:21 Katarzyna Dec
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-09 14:21 UTC (permalink / raw)
  To: igt-dev

When I started implementing fillfuncs for future gens, reviewers
suggested to make a wrapper on gen9 functions. Future gens differ
with kernel parameter only. This series is implementing such
wrapper and introduces gen10 functions based on it.
Patches with generic gen9 functions were previously pushed to ML.
I made a series with gen10 to show how this impacts code.

v2, v3: fixed indentations in whole series

Katarzyna Dec (4):
  lib/media_fill: Create common media_fill library for all gens
  lib/media_fill: Add media_fillfunc for Gen10
  lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
  lib/gpgpu_fill: Add gpgpu_fillfunc for Gen10

 lib/Makefile.sources    |   4 +-
 lib/gpgpu_fill.c        |  33 +++++--
 lib/gpgpu_fill.h        |  15 +++
 lib/intel_batchbuffer.c |   8 +-
 lib/media_fill.c        | 239 ++++++++++++++++++++++++++++++++++++++++++++++++
 lib/media_fill.h        |  39 +++++---
 lib/media_fill_gen7.c   |  87 ------------------
 lib/media_fill_gen8.c   |  90 ------------------
 lib/media_fill_gen9.c   |  99 --------------------
 lib/meson.build         |   4 +-
 10 files changed, 316 insertions(+), 302 deletions(-)
 create mode 100644 lib/media_fill.c
 delete mode 100644 lib/media_fill_gen7.c
 delete mode 100644 lib/media_fill_gen8.c
 delete mode 100644 lib/media_fill_gen9.c

-- 
2.14.3

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
@ 2018-05-09 14:21 ` Katarzyna Dec
  2018-05-09 21:16   ` Daniele Ceraolo Spurio
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10 Katarzyna Dec
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-09 14:21 UTC (permalink / raw)
  To: igt-dev

Let's create common media_fill library, similarly as for gpgpu_fill.
This will allow to make code easier to read and maintain.
Moreover we can create generic __gen9_media_fillfunc for future gens.
From gen9 media fillfunctions differ only with kernel parameter.

v2: fixed indentations in files

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>
Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
---
 lib/Makefile.sources  |   4 +-
 lib/media_fill.c      | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/media_fill.h      |  32 ++++---
 lib/media_fill_gen7.c |  87 -------------------
 lib/media_fill_gen8.c |  90 --------------------
 lib/media_fill_gen9.c |  99 ----------------------
 lib/meson.build       |   4 +-
 7 files changed, 249 insertions(+), 294 deletions(-)
 create mode 100644 lib/media_fill.c
 delete mode 100644 lib/media_fill_gen7.c
 delete mode 100644 lib/media_fill_gen8.c
 delete mode 100644 lib/media_fill_gen9.c

diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index 9c0150c1..4e5e9292 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -56,9 +56,7 @@ lib_source_list =	 	\
 	ioctl_wrappers.c	\
 	ioctl_wrappers.h	\
 	media_fill.h            \
-	media_fill_gen7.c       \
-	media_fill_gen8.c       \
-	media_fill_gen9.c       \
+	media_fill.c		\
 	media_spin.h		\
 	media_spin.c		\
 	gpgpu_fill.h		\
diff --git a/lib/media_fill.c b/lib/media_fill.c
new file mode 100644
index 00000000..872faf5a
--- /dev/null
+++ b/lib/media_fill.c
@@ -0,0 +1,227 @@
+#include <intel_bufmgr.h>
+#include <i915_drm.h>
+
+#include "media_fill.h"
+#include "gen7_media.h"
+#include "gen8_media.h"
+#include "intel_reg.h"
+#include "drmtest.h"
+#include "gpu_fill.h"
+#include <assert.h>
+
+static const uint32_t gen7_media_kernel[][4] = {
+	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
+	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
+	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
+	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
+	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
+	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
+	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
+	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
+};
+
+static const uint32_t gen8_media_kernel[][4] = {
+	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
+	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
+	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
+	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
+	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
+	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
+	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
+	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
+};
+
+static const uint32_t gen9_media_kernel[][4] = {
+	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
+	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
+	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
+	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
+	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
+	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
+	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
+	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
+	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
+};
+
+/*
+ * This sets up the media pipeline,
+ *
+ * +---------------+ <---- 4096
+ * |       ^       |
+ * |       |       |
+ * |    various    |
+ * |      state    |
+ * |       |       |
+ * |_______|_______| <---- 2048 + ?
+ * |       ^       |
+ * |       |       |
+ * |   batch       |
+ * |    commands   |
+ * |       |       |
+ * |       |       |
+ * +---------------+ <---- 0 + ?
+ *
+ */
+
+#define BATCH_STATE_SPLIT 2048
+
+void
+gen7_media_fillfunc(struct intel_batchbuffer *batch,
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color)
+{
+	uint32_t curbe_buffer, interface_descriptor;
+	uint32_t batch_end;
+
+	intel_batchbuffer_flush(batch);
+
+	/* setup states */
+	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
+
+	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
+	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
+					gen7_media_kernel,
+					sizeof(gen7_media_kernel));
+	igt_assert(batch->ptr < &batch->buffer[4095]);
+
+	/* media pipeline */
+	batch->ptr = batch->buffer;
+	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
+	gen7_emit_state_base_address(batch);
+
+	gen7_emit_vfe_state(batch);
+
+	gen7_emit_curbe_load(batch, curbe_buffer);
+
+	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
+
+	gen7_emit_media_objects(batch, x, y, width, height);
+
+	OUT_BATCH(MI_BATCH_BUFFER_END);
+
+	batch_end = intel_batchbuffer_align(batch, 8);
+	igt_assert(batch_end < BATCH_STATE_SPLIT);
+
+	gen7_render_flush(batch, batch_end);
+	intel_batchbuffer_reset(batch);
+}
+
+void
+gen8_media_fillfunc(struct intel_batchbuffer *batch,
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color)
+{
+	uint32_t curbe_buffer, interface_descriptor;
+	uint32_t batch_end;
+
+	intel_batchbuffer_flush(batch);
+
+	/* setup states */
+	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
+
+	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
+	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
+					gen8_media_kernel,
+					sizeof(gen8_media_kernel));
+	igt_assert(batch->ptr < &batch->buffer[4095]);
+
+	/* media pipeline */
+	batch->ptr = batch->buffer;
+	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
+	gen8_emit_state_base_address(batch);
+
+	gen8_emit_vfe_state(batch);
+
+	gen7_emit_curbe_load(batch, curbe_buffer);
+
+	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
+
+	gen7_emit_media_objects(batch, x, y, width, height);
+
+	OUT_BATCH(MI_BATCH_BUFFER_END);
+
+	batch_end = intel_batchbuffer_align(batch, 8);
+	igt_assert(batch_end < BATCH_STATE_SPLIT);
+
+	gen7_render_flush(batch, batch_end);
+	intel_batchbuffer_reset(batch);
+}
+
+void
+__gen9_media_fillfunc(struct intel_batchbuffer *batch,
+		      struct igt_buf *dst,
+		      unsigned int x, unsigned int y,
+		      unsigned int width, unsigned int height,
+		      uint8_t color, const uint32_t kernel[][4],
+		      size_t kernel_size)
+{
+	uint32_t curbe_buffer, interface_descriptor;
+	uint32_t batch_end;
+
+	intel_batchbuffer_flush(batch);
+
+	/* setup states */
+	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
+
+	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
+	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
+					kernel, kernel_size);
+	assert(batch->ptr < &batch->buffer[4095]);
+
+	/* media pipeline */
+	batch->ptr = batch->buffer;
+	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
+			GEN9_FORCE_MEDIA_AWAKE_ENABLE |
+			GEN9_SAMPLER_DOP_GATE_DISABLE |
+			GEN9_PIPELINE_SELECTION_MASK |
+			GEN9_SAMPLER_DOP_GATE_MASK |
+			GEN9_FORCE_MEDIA_AWAKE_MASK);
+	gen9_emit_state_base_address(batch);
+
+	gen8_emit_vfe_state(batch);
+
+	gen7_emit_curbe_load(batch, curbe_buffer);
+
+	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
+
+	gen7_emit_media_objects(batch, x, y, width, height);
+
+	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
+			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
+			GEN9_SAMPLER_DOP_GATE_ENABLE |
+			GEN9_PIPELINE_SELECTION_MASK |
+			GEN9_SAMPLER_DOP_GATE_MASK |
+			GEN9_FORCE_MEDIA_AWAKE_MASK);
+
+	OUT_BATCH(MI_BATCH_BUFFER_END);
+
+	batch_end = intel_batchbuffer_align(batch, 8);
+	assert(batch_end < BATCH_STATE_SPLIT);
+
+	gen7_render_flush(batch, batch_end);
+	intel_batchbuffer_reset(batch);
+}
+
+void
+gen9_media_fillfunc(struct intel_batchbuffer *batch,
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color)
+{
+
+	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
+			      gen9_media_kernel, sizeof(gen9_media_kernel));
+}
diff --git a/lib/media_fill.h b/lib/media_fill.h
index f6db734e..42f8cb6a 100644
--- a/lib/media_fill.h
+++ b/lib/media_fill.h
@@ -6,23 +6,31 @@
 
 void
 gen8_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color);
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color);
 
 void
 gen7_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color);
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color);
+
+void
+__gen9_media_fillfunc(struct intel_batchbuffer *batch,
+		      struct igt_buf *dst,
+		      unsigned int x, unsigned int y,
+		      unsigned int width, unsigned int height,
+		      uint8_t color, const uint32_t kernel[][4],
+		      size_t kernel_size);
 
 void
 gen9_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color);
+		    struct igt_buf *dst,
+		    unsigned int x, unsigned int y,
+		    unsigned int width, unsigned int height,
+		    uint8_t color);
 
 #endif /* RENDE_MEDIA_FILL_H */
diff --git a/lib/media_fill_gen7.c b/lib/media_fill_gen7.c
deleted file mode 100644
index 3dc5617e..00000000
--- a/lib/media_fill_gen7.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <intel_bufmgr.h>
-#include <i915_drm.h>
-
-#include "media_fill.h"
-#include "gen7_media.h"
-#include "intel_reg.h"
-#include "drmtest.h"
-#include "gpu_fill.h"
-#include <assert.h>
-
-static const uint32_t media_kernel[][4] = {
-	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
-	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
-	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
-	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
-	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
-	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
-	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
-	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
-};
-
-/*
- * This sets up the media pipeline,
- *
- * +---------------+ <---- 4096
- * |       ^       |
- * |       |       |
- * |    various    |
- * |      state    |
- * |       |       |
- * |_______|_______| <---- 2048 + ?
- * |       ^       |
- * |       |       |
- * |   batch       |
- * |    commands   |
- * |       |       |
- * |       |       |
- * +---------------+ <---- 0 + ?
- *
- */
-
-#define BATCH_STATE_SPLIT 2048
-
-void
-gen7_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color)
-{
-	uint32_t curbe_buffer, interface_descriptor;
-	uint32_t batch_end;
-
-	intel_batchbuffer_flush(batch);
-
-	/* setup states */
-	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
-
-	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
-	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
-					media_kernel, sizeof(media_kernel));
-	igt_assert(batch->ptr < &batch->buffer[4095]);
-
-	/* media pipeline */
-	batch->ptr = batch->buffer;
-	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
-	gen7_emit_state_base_address(batch);
-
-	gen7_emit_vfe_state(batch);
-
-	gen7_emit_curbe_load(batch, curbe_buffer);
-
-	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
-
-	gen7_emit_media_objects(batch, x, y, width, height);
-
-	OUT_BATCH(MI_BATCH_BUFFER_END);
-
-	batch_end = intel_batchbuffer_align(batch, 8);
-	igt_assert(batch_end < BATCH_STATE_SPLIT);
-
-	gen7_render_flush(batch, batch_end);
-	intel_batchbuffer_reset(batch);
-}
diff --git a/lib/media_fill_gen8.c b/lib/media_fill_gen8.c
deleted file mode 100644
index 63fe72eb..00000000
--- a/lib/media_fill_gen8.c
+++ /dev/null
@@ -1,90 +0,0 @@
-#include <intel_bufmgr.h>
-#include <i915_drm.h>
-
-#include "media_fill.h"
-#include "gen8_media.h"
-#include "intel_reg.h"
-#include "drmtest.h"
-#include "gpu_fill.h"
-#include <assert.h>
-
-
-static const uint32_t media_kernel[][4] = {
-	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
-	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
-	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
-	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
-	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
-	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
-	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
-	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
-};
-
-
-
-/*
- * This sets up the media pipeline,
- *
- * +---------------+ <---- 4096
- * |       ^       |
- * |       |       |
- * |    various    |
- * |      state    |
- * |       |       |
- * |_______|_______| <---- 2048 + ?
- * |       ^       |
- * |       |       |
- * |   batch       |
- * |    commands   |
- * |       |       |
- * |       |       |
- * +---------------+ <---- 0 + ?
- *
- */
-
-#define BATCH_STATE_SPLIT 2048
-
-void
-gen8_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color)
-{
-	uint32_t curbe_buffer, interface_descriptor;
-	uint32_t batch_end;
-
-	intel_batchbuffer_flush(batch);
-
-	/* setup states */
-	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
-
-	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
-	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
-					media_kernel, sizeof(media_kernel));
-	igt_assert(batch->ptr < &batch->buffer[4095]);
-
-	/* media pipeline */
-	batch->ptr = batch->buffer;
-	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
-	gen8_emit_state_base_address(batch);
-
-	gen8_emit_vfe_state(batch);
-
-	gen7_emit_curbe_load(batch, curbe_buffer);
-
-	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
-
-	gen7_emit_media_objects(batch, x, y, width, height);
-
-	OUT_BATCH(MI_BATCH_BUFFER_END);
-
-	batch_end = intel_batchbuffer_align(batch, 8);
-	igt_assert(batch_end < BATCH_STATE_SPLIT);
-
-	gen7_render_flush(batch, batch_end);
-	intel_batchbuffer_reset(batch);
-}
diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
deleted file mode 100644
index 78e892f2..00000000
--- a/lib/media_fill_gen9.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include <intel_bufmgr.h>
-#include <i915_drm.h>
-
-#include "media_fill.h"
-#include "gen8_media.h"
-#include "intel_reg.h"
-#include "gpu_fill.h"
-#include <assert.h>
-
-static const uint32_t media_kernel[][4] = {
-	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
-	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
-	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
-	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
-	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
-	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
-	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
-	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
-	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
-};
-
-
-/*
- * This sets up the media pipeline,
- *
- * +---------------+ <---- 4096
- * |       ^       |
- * |       |       |
- * |    various    |
- * |      state    |
- * |       |       |
- * |_______|_______| <---- 2048 + ?
- * |       ^       |
- * |       |       |
- * |   batch       |
- * |    commands   |
- * |       |       |
- * |       |       |
- * +---------------+ <---- 0 + ?
- *
- */
-
-#define BATCH_STATE_SPLIT 2048
-
-void
-gen9_media_fillfunc(struct intel_batchbuffer *batch,
-		struct igt_buf *dst,
-		unsigned int x, unsigned int y,
-		unsigned int width, unsigned int height,
-		uint8_t color)
-{
-	uint32_t curbe_buffer, interface_descriptor;
-	uint32_t batch_end;
-
-	intel_batchbuffer_flush(batch);
-
-	/* setup states */
-	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
-
-	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
-	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
-					media_kernel, sizeof(media_kernel));
-	assert(batch->ptr < &batch->buffer[4095]);
-
-	/* media pipeline */
-	batch->ptr = batch->buffer;
-	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
-			GEN9_FORCE_MEDIA_AWAKE_ENABLE |
-			GEN9_SAMPLER_DOP_GATE_DISABLE |
-			GEN9_PIPELINE_SELECTION_MASK |
-			GEN9_SAMPLER_DOP_GATE_MASK |
-			GEN9_FORCE_MEDIA_AWAKE_MASK);
-	gen9_emit_state_base_address(batch);
-
-	gen8_emit_vfe_state(batch);
-
-	gen7_emit_curbe_load(batch, curbe_buffer);
-
-	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
-
-	gen7_emit_media_objects(batch, x, y, width, height);
-
-	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
-			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
-			GEN9_SAMPLER_DOP_GATE_ENABLE |
-			GEN9_PIPELINE_SELECTION_MASK |
-			GEN9_SAMPLER_DOP_GATE_MASK |
-			GEN9_FORCE_MEDIA_AWAKE_MASK);
-
-	OUT_BATCH(MI_BATCH_BUFFER_END);
-
-	batch_end = intel_batchbuffer_align(batch, 8);
-	assert(batch_end < BATCH_STATE_SPLIT);
-
-	gen7_render_flush(batch, batch_end);
-	intel_batchbuffer_reset(batch);
-}
diff --git a/lib/meson.build b/lib/meson.build
index 04d550fa..3d5a04b0 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -24,9 +24,7 @@ lib_sources = [
 	'intel_os.c',
 	'intel_mmio.c',
 	'ioctl_wrappers.c',
-	'media_fill_gen7.c',
-	'media_fill_gen8.c',
-	'media_fill_gen9.c',
+	'media_fill.c',
 	'media_spin.c',
 	'gpgpu_fill.c',
 	'gpu_fill.c',
-- 
2.14.3

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
@ 2018-05-09 14:21 ` Katarzyna Dec
  2018-05-09 21:20   ` Daniele Ceraolo Spurio
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-09 14:21 UTC (permalink / raw)
  To: igt-dev

Gen10 media_fillfunc so far was the same as for gen9.
Let's add proper gen10 function to make this code more
clear. There are no changes in gen10 code.

v2: fixed indentations in few functions
v3: fixed few more indentations

Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
Cc: Ewelina Musial <ewelina.musial@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
---
 lib/intel_batchbuffer.c |  4 +++-
 lib/media_fill.c        | 12 ++++++++++++
 lib/media_fill.h        |  7 +++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index f87e6bed..42ec4f35 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -858,7 +858,9 @@ igt_fillfunc_t igt_get_media_fillfunc(int devid)
 {
 	igt_fillfunc_t fill = NULL;
 
-	if (IS_GEN9(devid) || IS_GEN10(devid))
+	if (IS_GEN10(devid))
+		fill = gen10_media_fillfunc;
+	else if (IS_GEN9(devid))
 		fill = gen9_media_fillfunc;
 	else if (IS_GEN8(devid))
 		fill = gen8_media_fillfunc;
diff --git a/lib/media_fill.c b/lib/media_fill.c
index 872faf5a..fbcb9b28 100644
--- a/lib/media_fill.c
+++ b/lib/media_fill.c
@@ -225,3 +225,15 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
 	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
 			      gen9_media_kernel, sizeof(gen9_media_kernel));
 }
+
+void
+gen10_media_fillfunc(struct intel_batchbuffer *batch,
+		     struct igt_buf *dst,
+		     unsigned int x, unsigned int y,
+		     unsigned int width, unsigned int height,
+		     uint8_t color)
+{
+
+	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
+			      gen9_media_kernel, sizeof(gen9_media_kernel));
+}
diff --git a/lib/media_fill.h b/lib/media_fill.h
index 42f8cb6a..ba352443 100644
--- a/lib/media_fill.h
+++ b/lib/media_fill.h
@@ -33,4 +33,11 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
 		    unsigned int width, unsigned int height,
 		    uint8_t color);
 
+void
+gen10_media_fillfunc(struct intel_batchbuffer *batch,
+		     struct igt_buf *dst,
+		     unsigned int x, unsigned int y,
+		     unsigned int width, unsigned int height,
+		     uint8_t color);
+
 #endif /* RENDE_MEDIA_FILL_H */
-- 
2.14.3

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10 Katarzyna Dec
@ 2018-05-09 14:21 ` Katarzyna Dec
  2018-05-09 21:21   ` Daniele Ceraolo Spurio
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 4/4] lib/gpgpu_fill: Add gpgpu_fillfunc for Gen10 Katarzyna Dec
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-09 14:21 UTC (permalink / raw)
  To: igt-dev

Starting from gen9 main gpgpu_fillfunc differs only with
kernel parameter. Let's prepare generic __gen9 function to
avoid duplicating all _fillfunc for future gens.

v2: fixed indentations

Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
Cc: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
---
 lib/gpgpu_fill.c | 23 +++++++++++++++++------
 lib/gpgpu_fill.h |  8 ++++++++
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
index 010dde06..c44acb1f 100644
--- a/lib/gpgpu_fill.c
+++ b/lib/gpgpu_fill.c
@@ -193,11 +193,12 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 }
 
 void
-gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
-		    struct igt_buf *dst,
-		    unsigned int x, unsigned int y,
-		    unsigned int width, unsigned int height,
-		    uint8_t color)
+__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
+		      struct igt_buf *dst,
+		      unsigned int x, unsigned int y,
+		      unsigned int width, unsigned int height,
+		      uint8_t color, const uint32_t kernel[][4],
+		      size_t kernel_size)
 {
 	uint32_t curbe_buffer, interface_descriptor;
 	uint32_t batch_end;
@@ -216,7 +217,7 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
 
 	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
-				gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
+				kernel, kernel_size);
 
 	igt_assert(batch->ptr < &batch->buffer[4095]);
 
@@ -240,3 +241,13 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 	gen7_render_flush(batch, batch_end);
 	intel_batchbuffer_reset(batch);
 }
+
+void gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
+			 struct igt_buf *dst,
+			 unsigned int x, unsigned int y,
+			 unsigned int width, unsigned int height,
+			 uint8_t color)
+{
+	__gen9_gpgpu_fillfunc(batch, dst, x, y, width, height, color,
+			      gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
+}
diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h
index 0190bfc1..7260c4fa 100644
--- a/lib/gpgpu_fill.h
+++ b/lib/gpgpu_fill.h
@@ -43,6 +43,14 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 		    unsigned int width, unsigned int height,
 		    uint8_t color);
 
+void
+__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
+		      struct igt_buf *dst,
+		      unsigned int x, unsigned int y,
+		      unsigned int width, unsigned int height,
+		      uint8_t color, const uint32_t kernel[][4],
+		      size_t kernel_size);
+
 void
 gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 		    struct igt_buf *dst,
-- 
2.14.3

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [igt-dev] [PATCH i-g-t v3 4/4] lib/gpgpu_fill: Add gpgpu_fillfunc for Gen10
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
                   ` (2 preceding siblings ...)
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
@ 2018-05-09 14:21 ` Katarzyna Dec
  2018-05-09 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev4) Patchwork
  2018-05-09 18:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 0 replies; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-09 14:21 UTC (permalink / raw)
  To: igt-dev

Gen10 gpgpu_fillfunc so far was the same as for gen9. Let's add
proper gen10 function to make this code more clear. There are
no changes in gen10 code.

v2: Fixed indentations in gen9 and gen10 functions
v3: Fixed few more indentations (after rebase on fixed indentation
in media_fill patches.

Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
---
 lib/gpgpu_fill.c        | 10 ++++++++++
 lib/gpgpu_fill.h        |  7 +++++++
 lib/intel_batchbuffer.c |  4 +++-
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
index c44acb1f..76728ca6 100644
--- a/lib/gpgpu_fill.c
+++ b/lib/gpgpu_fill.c
@@ -251,3 +251,13 @@ void gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 	__gen9_gpgpu_fillfunc(batch, dst, x, y, width, height, color,
 			      gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
 }
+
+void gen10_gpgpu_fillfunc(struct intel_batchbuffer *batch,
+			  struct igt_buf *dst,
+			  unsigned int x, unsigned int y,
+			  unsigned int width, unsigned int height,
+			  uint8_t color)
+{
+	__gen9_gpgpu_fillfunc(batch, dst, x, y, width, height, color,
+			      gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
+}
diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h
index 7260c4fa..369837e4 100644
--- a/lib/gpgpu_fill.h
+++ b/lib/gpgpu_fill.h
@@ -58,4 +58,11 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
 		    unsigned int width, unsigned int height,
 		    uint8_t color);
 
+void
+gen10_gpgpu_fillfunc(struct intel_batchbuffer *batch,
+		     struct igt_buf *dst,
+		     unsigned int x, unsigned int y,
+		     unsigned int width, unsigned int height,
+		     uint8_t color);
+
 #endif /* GPGPU_FILL_H */
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 42ec4f35..ec7f4f19 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -887,8 +887,10 @@ igt_fillfunc_t igt_get_gpgpu_fillfunc(int devid)
 		fill = gen7_gpgpu_fillfunc;
 	else if (IS_BROADWELL(devid))
 		fill = gen8_gpgpu_fillfunc;
-	else if (IS_GEN9(devid) || IS_GEN10(devid))
+	else if (IS_GEN9(devid))
 		fill = gen9_gpgpu_fillfunc;
+	else if (IS_GEN10(devid))
+		fill = gen10_gpgpu_fillfunc;
 
 	return fill;
 }
-- 
2.14.3

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev4)
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
                   ` (3 preceding siblings ...)
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 4/4] lib/gpgpu_fill: Add gpgpu_fillfunc for Gen10 Katarzyna Dec
@ 2018-05-09 15:37 ` Patchwork
  2018-05-09 18:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2018-05-09 15:37 UTC (permalink / raw)
  To: Katarzyna Dec; +Cc: igt-dev

== Series Details ==

Series: *_fill libraries refactoring part2 (rev4)
URL   : https://patchwork.freedesktop.org/series/42943/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4163 -> IGTPW_1333 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42943/revisions/4/mbox/

== Known issues ==

  Here are the changes found in IGTPW_1333 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       PASS -> DMESG-WARN (fdo#105128)

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cfl-s3:          PASS -> FAIL (fdo#103928, fdo#100368)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-4200u:       PASS -> DMESG-FAIL (fdo#106103, fdo#102614)

    
    ==== Possible fixes ====

    igt@drv_module_reload@basic-reload-inject:
      fi-glk-j4005:       DMESG-WARN (fdo#106248) -> PASS

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-hsw-4770r:       FAIL (fdo#100368) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
  fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248


== Participating hosts (41 -> 36) ==

  Missing    (5): fi-byt-j1900 fi-byt-squawks fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

    * IGT: IGT_4468 -> IGTPW_1333

  CI_DRM_4163: 8e1dab6e913be7d014eb9bc355ec65b6b56dcd56 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1333: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1333/
  IGT_4468: 548a894dc904c4628522dbbc77cb179a4c965ebc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4468: 1e60f1499e5b71b6d5a747189d7c28f57359a87f @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1333/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for *_fill libraries refactoring part2 (rev4)
  2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
                   ` (4 preceding siblings ...)
  2018-05-09 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev4) Patchwork
@ 2018-05-09 18:33 ` Patchwork
  5 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2018-05-09 18:33 UTC (permalink / raw)
  To: Katarzyna Dec; +Cc: igt-dev

== Series Details ==

Series: *_fill libraries refactoring part2 (rev4)
URL   : https://patchwork.freedesktop.org/series/42943/
State : success

== Summary ==

= CI Bug Log - changes from IGT_4468_full -> IGTPW_1333_full =

== Summary - WARNING ==

  Minor unknown changes coming with IGTPW_1333_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_1333_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42943/revisions/4/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in IGTPW_1333_full:

  === IGT changes ===

    ==== Warnings ====

    igt@drv_selftest@live_execlists:
      shard-glk:          SKIP -> PASS +1
      shard-apl:          SKIP -> PASS +1

    igt@gem_exec_schedule@deep-blt:
      shard-kbl:          SKIP -> PASS +2

    igt@gem_mocs_settings@mocs-rc6-render:
      shard-kbl:          PASS -> SKIP +1

    
== Known issues ==

  Here are the changes found in IGTPW_1333_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_suspend@forcewake:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@kms_flip@plain-flip-fb-recreate:
      shard-glk:          PASS -> FAIL (fdo#100368) +1

    igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
      shard-snb:          PASS -> FAIL (fdo#104724, fdo#103166)

    igt@kms_setmode@basic:
      shard-glk:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      shard-kbl:          DMESG-FAIL (fdo#106453) -> PASS
      shard-apl:          DMESG-FAIL (fdo#106453) -> PASS
      shard-glk:          DMESG-FAIL (fdo#106453) -> PASS

    igt@drv_selftest@mock_breadcrumbs:
      shard-hsw:          DMESG-WARN (fdo#106453) -> PASS +7

    igt@drv_selftest@mock_dmabuf:
      shard-glk:          DMESG-WARN (fdo#106453) -> PASS +7

    igt@drv_selftest@mock_evict:
      shard-snb:          DMESG-WARN (fdo#106453) -> PASS +7

    igt@drv_selftest@mock_requests:
      shard-kbl:          DMESG-WARN (fdo#106453) -> PASS +7

    igt@drv_selftest@mock_vma:
      shard-apl:          DMESG-WARN (fdo#106453) -> PASS +7

    igt@drv_suspend@debugfs-reader:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> PASS

    igt@kms_flip@flip-vs-expired-vblank-interruptible:
      shard-glk:          FAIL (fdo#102887) -> PASS

    igt@kms_flip@flip-vs-wf_vblank-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip@plain-flip-fb-recreate-interruptible:
      shard-hsw:          FAIL (fdo#100368) -> PASS

    igt@kms_setmode@basic:
      shard-kbl:          FAIL (fdo#99912) -> PASS

    igt@kms_sysfs_edid_timing:
      shard-apl:          WARN (fdo#100047) -> PASS

    
  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
  fdo#106453 https://bugs.freedesktop.org/show_bug.cgi?id=106453
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (9 -> 5) ==

  Missing    (4): pig-snb-2600 pig-glk-j5005 pig-skl-6600 pig-hsw-4770r 


== Build changes ==

    * IGT: IGT_4468 -> IGTPW_1333
    * Linux: CI_DRM_4160 -> CI_DRM_4163

  CI_DRM_4160: 6d9a2ccf9fca7c006f24b7ff6193ee356b6d3503 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_4163: 8e1dab6e913be7d014eb9bc355ec65b6b56dcd56 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1333: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1333/
  IGT_4468: 548a894dc904c4628522dbbc77cb179a4c965ebc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4468: 1e60f1499e5b71b6d5a747189d7c28f57359a87f @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1333/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
@ 2018-05-09 21:16   ` Daniele Ceraolo Spurio
  2018-05-10 12:45     ` Katarzyna Dec
  0 siblings, 1 reply; 13+ messages in thread
From: Daniele Ceraolo Spurio @ 2018-05-09 21:16 UTC (permalink / raw)
  To: Katarzyna Dec, igt-dev



On 09/05/18 07:21, Katarzyna Dec wrote:
> Let's create common media_fill library, similarly as for gpgpu_fill.
> This will allow to make code easier to read and maintain.
> Moreover we can create generic __gen9_media_fillfunc for future gens.
>  From gen9 media fillfunctions differ only with kernel parameter.
> 
> v2: fixed indentations in files
> 
> 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>
> Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
> ---
>   lib/Makefile.sources  |   4 +-
>   lib/media_fill.c      | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++
>   lib/media_fill.h      |  32 ++++---
>   lib/media_fill_gen7.c |  87 -------------------
>   lib/media_fill_gen8.c |  90 --------------------
>   lib/media_fill_gen9.c |  99 ----------------------
>   lib/meson.build       |   4 +-
>   7 files changed, 249 insertions(+), 294 deletions(-)
>   create mode 100644 lib/media_fill.c
>   delete mode 100644 lib/media_fill_gen7.c
>   delete mode 100644 lib/media_fill_gen8.c
>   delete mode 100644 lib/media_fill_gen9.c
> 
> diff --git a/lib/Makefile.sources b/lib/Makefile.sources
> index 9c0150c1..4e5e9292 100644
> --- a/lib/Makefile.sources
> +++ b/lib/Makefile.sources
> @@ -56,9 +56,7 @@ lib_source_list =	 	\
>   	ioctl_wrappers.c	\
>   	ioctl_wrappers.h	\
>   	media_fill.h            \
> -	media_fill_gen7.c       \
> -	media_fill_gen8.c       \
> -	media_fill_gen9.c       \
> +	media_fill.c		\
>   	media_spin.h		\
>   	media_spin.c		\
>   	gpgpu_fill.h		\
> diff --git a/lib/media_fill.c b/lib/media_fill.c
> new file mode 100644
> index 00000000..872faf5a
> --- /dev/null
> +++ b/lib/media_fill.c
> @@ -0,0 +1,227 @@
> +#include <intel_bufmgr.h>
> +#include <i915_drm.h>
> +
> +#include "media_fill.h"
> +#include "gen7_media.h"
> +#include "gen8_media.h"
> +#include "intel_reg.h"
> +#include "drmtest.h"
> +#include "gpu_fill.h"
> +#include <assert.h>
> +
> +static const uint32_t gen7_media_kernel[][4] = {
> +	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
> +	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
> +	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
> +	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
> +	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
> +	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
> +	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
> +	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
> +};
> +
> +static const uint32_t gen8_media_kernel[][4] = {
> +	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> +	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> +	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> +	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> +	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> +	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> +	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> +	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> +};
> +
> +static const uint32_t gen9_media_kernel[][4] = {
> +	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> +	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> +	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> +	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> +	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> +	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> +	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> +	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> +	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> +};

gen8_media_kernel and gen9_media_kernel are identical, no need to have both.

> +
> +/*
> + * This sets up the media pipeline,
> + *
> + * +---------------+ <---- 4096
> + * |       ^       |
> + * |       |       |
> + * |    various    |
> + * |      state    |
> + * |       |       |
> + * |_______|_______| <---- 2048 + ?
> + * |       ^       |
> + * |       |       |
> + * |   batch       |
> + * |    commands   |
> + * |       |       |
> + * |       |       |
> + * +---------------+ <---- 0 + ?
> + *
> + */
> +
> +#define BATCH_STATE_SPLIT 2048
> +
> +void
> +gen7_media_fillfunc(struct intel_batchbuffer *batch,
> +		    struct igt_buf *dst,
> +		    unsigned int x, unsigned int y,
> +		    unsigned int width, unsigned int height,
> +		    uint8_t color)
> +{
> +	uint32_t curbe_buffer, interface_descriptor;
> +	uint32_t batch_end;
> +
> +	intel_batchbuffer_flush(batch);
> +
> +	/* setup states */
> +	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> +
> +	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> +	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
> +					gen7_media_kernel,
> +					sizeof(gen7_media_kernel));
> +	igt_assert(batch->ptr < &batch->buffer[4095]);
> +
> +	/* media pipeline */
> +	batch->ptr = batch->buffer;
> +	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> +	gen7_emit_state_base_address(batch);
> +
> +	gen7_emit_vfe_state(batch);
> +
> +	gen7_emit_curbe_load(batch, curbe_buffer);
> +
> +	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> +
> +	gen7_emit_media_objects(batch, x, y, width, height);
> +
> +	OUT_BATCH(MI_BATCH_BUFFER_END);
> +
> +	batch_end = intel_batchbuffer_align(batch, 8);
> +	igt_assert(batch_end < BATCH_STATE_SPLIT);
> +
> +	gen7_render_flush(batch, batch_end);
> +	intel_batchbuffer_reset(batch);
> +}
> +
> +void
> +gen8_media_fillfunc(struct intel_batchbuffer *batch,
> +		    struct igt_buf *dst,
> +		    unsigned int x, unsigned int y,
> +		    unsigned int width, unsigned int height,
> +		    uint8_t color)
> +{
> +	uint32_t curbe_buffer, interface_descriptor;
> +	uint32_t batch_end;
> +
> +	intel_batchbuffer_flush(batch);
> +
> +	/* setup states */
> +	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> +
> +	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> +	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> +					gen8_media_kernel,
> +					sizeof(gen8_media_kernel));
> +	igt_assert(batch->ptr < &batch->buffer[4095]);
> +
> +	/* media pipeline */
> +	batch->ptr = batch->buffer;
> +	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> +	gen8_emit_state_base_address(batch);
> +
> +	gen8_emit_vfe_state(batch);
> +
> +	gen7_emit_curbe_load(batch, curbe_buffer);
> +
> +	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> +
> +	gen7_emit_media_objects(batch, x, y, width, height);
> +
> +	OUT_BATCH(MI_BATCH_BUFFER_END);
> +
> +	batch_end = intel_batchbuffer_align(batch, 8);
> +	igt_assert(batch_end < BATCH_STATE_SPLIT);
> +
> +	gen7_render_flush(batch, batch_end);
> +	intel_batchbuffer_reset(batch);
> +}
> +
> +void

This should be static and...

> +__gen9_media_fillfunc(struct intel_batchbuffer *batch,
> +		      struct igt_buf *dst,
> +		      unsigned int x, unsigned int y,
> +		      unsigned int width, unsigned int height,
> +		      uint8_t color, const uint32_t kernel[][4],
> +		      size_t kernel_size)
> +{

<snip>

> +void
> +__gen9_media_fillfunc(struct intel_batchbuffer *batch,
> +		      struct igt_buf *dst,
> +		      unsigned int x, unsigned int y,
> +		      unsigned int width, unsigned int height,
> +		      uint8_t color, const uint32_t kernel[][4],
> +		      size_t kernel_size);

... not be added here in the header.

Daniele

>   
>   void
>   gen9_media_fillfunc(struct intel_batchbuffer *batch,
> -		struct igt_buf *dst,
> -		unsigned int x, unsigned int y,
> -		unsigned int width, unsigned int height,
> -		uint8_t color);
> +		    struct igt_buf *dst,
> +		    unsigned int x, unsigned int y,
> +		    unsigned int width, unsigned int height,
> +		    uint8_t color);
>   
>   #endif /* RENDE_MEDIA_FILL_H */
> diff --git a/lib/media_fill_gen7.c b/lib/media_fill_gen7.c
> deleted file mode 100644
> index 3dc5617e..00000000
> --- a/lib/media_fill_gen7.c
> +++ /dev/null
> @@ -1,87 +0,0 @@
> -#include <intel_bufmgr.h>
> -#include <i915_drm.h>
> -
> -#include "media_fill.h"
> -#include "gen7_media.h"
> -#include "intel_reg.h"
> -#include "drmtest.h"
> -#include "gpu_fill.h"
> -#include <assert.h>
> -
> -static const uint32_t media_kernel[][4] = {
> -	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
> -	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
> -	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
> -	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
> -	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
> -	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
> -	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
> -	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
> -};
> -
> -/*
> - * This sets up the media pipeline,
> - *
> - * +---------------+ <---- 4096
> - * |       ^       |
> - * |       |       |
> - * |    various    |
> - * |      state    |
> - * |       |       |
> - * |_______|_______| <---- 2048 + ?
> - * |       ^       |
> - * |       |       |
> - * |   batch       |
> - * |    commands   |
> - * |       |       |
> - * |       |       |
> - * +---------------+ <---- 0 + ?
> - *
> - */
> -
> -#define BATCH_STATE_SPLIT 2048
> -
> -void
> -gen7_media_fillfunc(struct intel_batchbuffer *batch,
> -		struct igt_buf *dst,
> -		unsigned int x, unsigned int y,
> -		unsigned int width, unsigned int height,
> -		uint8_t color)
> -{
> -	uint32_t curbe_buffer, interface_descriptor;
> -	uint32_t batch_end;
> -
> -	intel_batchbuffer_flush(batch);
> -
> -	/* setup states */
> -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> -
> -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> -	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
> -					media_kernel, sizeof(media_kernel));
> -	igt_assert(batch->ptr < &batch->buffer[4095]);
> -
> -	/* media pipeline */
> -	batch->ptr = batch->buffer;
> -	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> -	gen7_emit_state_base_address(batch);
> -
> -	gen7_emit_vfe_state(batch);
> -
> -	gen7_emit_curbe_load(batch, curbe_buffer);
> -
> -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> -
> -	gen7_emit_media_objects(batch, x, y, width, height);
> -
> -	OUT_BATCH(MI_BATCH_BUFFER_END);
> -
> -	batch_end = intel_batchbuffer_align(batch, 8);
> -	igt_assert(batch_end < BATCH_STATE_SPLIT);
> -
> -	gen7_render_flush(batch, batch_end);
> -	intel_batchbuffer_reset(batch);
> -}
> diff --git a/lib/media_fill_gen8.c b/lib/media_fill_gen8.c
> deleted file mode 100644
> index 63fe72eb..00000000
> --- a/lib/media_fill_gen8.c
> +++ /dev/null
> @@ -1,90 +0,0 @@
> -#include <intel_bufmgr.h>
> -#include <i915_drm.h>
> -
> -#include "media_fill.h"
> -#include "gen8_media.h"
> -#include "intel_reg.h"
> -#include "drmtest.h"
> -#include "gpu_fill.h"
> -#include <assert.h>
> -
> -
> -static const uint32_t media_kernel[][4] = {
> -	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> -	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> -	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> -	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> -	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> -	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> -	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> -	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> -};
> -
> -
> -
> -/*
> - * This sets up the media pipeline,
> - *
> - * +---------------+ <---- 4096
> - * |       ^       |
> - * |       |       |
> - * |    various    |
> - * |      state    |
> - * |       |       |
> - * |_______|_______| <---- 2048 + ?
> - * |       ^       |
> - * |       |       |
> - * |   batch       |
> - * |    commands   |
> - * |       |       |
> - * |       |       |
> - * +---------------+ <---- 0 + ?
> - *
> - */
> -
> -#define BATCH_STATE_SPLIT 2048
> -
> -void
> -gen8_media_fillfunc(struct intel_batchbuffer *batch,
> -		struct igt_buf *dst,
> -		unsigned int x, unsigned int y,
> -		unsigned int width, unsigned int height,
> -		uint8_t color)
> -{
> -	uint32_t curbe_buffer, interface_descriptor;
> -	uint32_t batch_end;
> -
> -	intel_batchbuffer_flush(batch);
> -
> -	/* setup states */
> -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> -
> -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> -	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> -					media_kernel, sizeof(media_kernel));
> -	igt_assert(batch->ptr < &batch->buffer[4095]);
> -
> -	/* media pipeline */
> -	batch->ptr = batch->buffer;
> -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> -	gen8_emit_state_base_address(batch);
> -
> -	gen8_emit_vfe_state(batch);
> -
> -	gen7_emit_curbe_load(batch, curbe_buffer);
> -
> -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> -
> -	gen7_emit_media_objects(batch, x, y, width, height);
> -
> -	OUT_BATCH(MI_BATCH_BUFFER_END);
> -
> -	batch_end = intel_batchbuffer_align(batch, 8);
> -	igt_assert(batch_end < BATCH_STATE_SPLIT);
> -
> -	gen7_render_flush(batch, batch_end);
> -	intel_batchbuffer_reset(batch);
> -}
> diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
> deleted file mode 100644
> index 78e892f2..00000000
> --- a/lib/media_fill_gen9.c
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -#include <intel_bufmgr.h>
> -#include <i915_drm.h>
> -
> -#include "media_fill.h"
> -#include "gen8_media.h"
> -#include "intel_reg.h"
> -#include "gpu_fill.h"
> -#include <assert.h>
> -
> -static const uint32_t media_kernel[][4] = {
> -	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> -	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> -	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> -	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> -	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> -	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> -	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> -	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> -	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> -};
> -
> -
> -/*
> - * This sets up the media pipeline,
> - *
> - * +---------------+ <---- 4096
> - * |       ^       |
> - * |       |       |
> - * |    various    |
> - * |      state    |
> - * |       |       |
> - * |_______|_______| <---- 2048 + ?
> - * |       ^       |
> - * |       |       |
> - * |   batch       |
> - * |    commands   |
> - * |       |       |
> - * |       |       |
> - * +---------------+ <---- 0 + ?
> - *
> - */
> -
> -#define BATCH_STATE_SPLIT 2048
> -
> -void
> -gen9_media_fillfunc(struct intel_batchbuffer *batch,
> -		struct igt_buf *dst,
> -		unsigned int x, unsigned int y,
> -		unsigned int width, unsigned int height,
> -		uint8_t color)
> -{
> -	uint32_t curbe_buffer, interface_descriptor;
> -	uint32_t batch_end;
> -
> -	intel_batchbuffer_flush(batch);
> -
> -	/* setup states */
> -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> -
> -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> -	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> -					media_kernel, sizeof(media_kernel));
> -	assert(batch->ptr < &batch->buffer[4095]);
> -
> -	/* media pipeline */
> -	batch->ptr = batch->buffer;
> -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
> -			GEN9_FORCE_MEDIA_AWAKE_ENABLE |
> -			GEN9_SAMPLER_DOP_GATE_DISABLE |
> -			GEN9_PIPELINE_SELECTION_MASK |
> -			GEN9_SAMPLER_DOP_GATE_MASK |
> -			GEN9_FORCE_MEDIA_AWAKE_MASK);
> -	gen9_emit_state_base_address(batch);
> -
> -	gen8_emit_vfe_state(batch);
> -
> -	gen7_emit_curbe_load(batch, curbe_buffer);
> -
> -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> -
> -	gen7_emit_media_objects(batch, x, y, width, height);
> -
> -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
> -			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
> -			GEN9_SAMPLER_DOP_GATE_ENABLE |
> -			GEN9_PIPELINE_SELECTION_MASK |
> -			GEN9_SAMPLER_DOP_GATE_MASK |
> -			GEN9_FORCE_MEDIA_AWAKE_MASK);
> -
> -	OUT_BATCH(MI_BATCH_BUFFER_END);
> -
> -	batch_end = intel_batchbuffer_align(batch, 8);
> -	assert(batch_end < BATCH_STATE_SPLIT);
> -
> -	gen7_render_flush(batch, batch_end);
> -	intel_batchbuffer_reset(batch);
> -}
> diff --git a/lib/meson.build b/lib/meson.build
> index 04d550fa..3d5a04b0 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -24,9 +24,7 @@ lib_sources = [
>   	'intel_os.c',
>   	'intel_mmio.c',
>   	'ioctl_wrappers.c',
> -	'media_fill_gen7.c',
> -	'media_fill_gen8.c',
> -	'media_fill_gen9.c',
> +	'media_fill.c',
>   	'media_spin.c',
>   	'gpgpu_fill.c',
>   	'gpu_fill.c',
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10 Katarzyna Dec
@ 2018-05-09 21:20   ` Daniele Ceraolo Spurio
  2018-05-10 12:57     ` Katarzyna Dec
  0 siblings, 1 reply; 13+ messages in thread
From: Daniele Ceraolo Spurio @ 2018-05-09 21:20 UTC (permalink / raw)
  To: Katarzyna Dec, igt-dev



On 09/05/18 07:21, Katarzyna Dec wrote:
> Gen10 media_fillfunc so far was the same as for gen9.
> Let's add proper gen10 function to make this code more
> clear. There are no changes in gen10 code.
> 

I personally disagree with this. It looks to me like we're making things 
less clear here by hiding the fact that gen10 is actually re-using the 
gen9 code with no changes. I would personally drop this patch (and 
likewise patch 4/4), but will leave the judgment to the maintainers.

Daniele

> v2: fixed indentations in few functions
> v3: fixed few more indentations
> 
> Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
> Cc: Ewelina Musial <ewelina.musial@intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> ---
>   lib/intel_batchbuffer.c |  4 +++-
>   lib/media_fill.c        | 12 ++++++++++++
>   lib/media_fill.h        |  7 +++++++
>   3 files changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index f87e6bed..42ec4f35 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -858,7 +858,9 @@ igt_fillfunc_t igt_get_media_fillfunc(int devid)
>   {
>   	igt_fillfunc_t fill = NULL;
>   
> -	if (IS_GEN9(devid) || IS_GEN10(devid))
> +	if (IS_GEN10(devid))
> +		fill = gen10_media_fillfunc;
> +	else if (IS_GEN9(devid))
>   		fill = gen9_media_fillfunc;
>   	else if (IS_GEN8(devid))
>   		fill = gen8_media_fillfunc;
> diff --git a/lib/media_fill.c b/lib/media_fill.c
> index 872faf5a..fbcb9b28 100644
> --- a/lib/media_fill.c
> +++ b/lib/media_fill.c
> @@ -225,3 +225,15 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
>   	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
>   			      gen9_media_kernel, sizeof(gen9_media_kernel));
>   }
> +
> +void
> +gen10_media_fillfunc(struct intel_batchbuffer *batch,
> +		     struct igt_buf *dst,
> +		     unsigned int x, unsigned int y,
> +		     unsigned int width, unsigned int height,
> +		     uint8_t color)
> +{
> +
> +	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
> +			      gen9_media_kernel, sizeof(gen9_media_kernel));
> +}
> diff --git a/lib/media_fill.h b/lib/media_fill.h
> index 42f8cb6a..ba352443 100644
> --- a/lib/media_fill.h
> +++ b/lib/media_fill.h
> @@ -33,4 +33,11 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
>   		    unsigned int width, unsigned int height,
>   		    uint8_t color);
>   
> +void
> +gen10_media_fillfunc(struct intel_batchbuffer *batch,
> +		     struct igt_buf *dst,
> +		     unsigned int x, unsigned int y,
> +		     unsigned int width, unsigned int height,
> +		     uint8_t color);
> +
>   #endif /* RENDE_MEDIA_FILL_H */
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
  2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
@ 2018-05-09 21:21   ` Daniele Ceraolo Spurio
  2018-05-10 12:43     ` Katarzyna Dec
  0 siblings, 1 reply; 13+ messages in thread
From: Daniele Ceraolo Spurio @ 2018-05-09 21:21 UTC (permalink / raw)
  To: Katarzyna Dec, igt-dev



On 09/05/18 07:21, Katarzyna Dec wrote:
> Starting from gen9 main gpgpu_fillfunc differs only with
> kernel parameter. Let's prepare generic __gen9 function to
> avoid duplicating all _fillfunc for future gens.
> 
> v2: fixed indentations
> 
> Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
> Cc: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
> ---
>   lib/gpgpu_fill.c | 23 +++++++++++++++++------
>   lib/gpgpu_fill.h |  8 ++++++++
>   2 files changed, 25 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
> index 010dde06..c44acb1f 100644
> --- a/lib/gpgpu_fill.c
> +++ b/lib/gpgpu_fill.c
> @@ -193,11 +193,12 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>   }
>   
>   void

As with the media_fill one, this function should be static and not 
exposed in the header.

Daniele

> -gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> -		    struct igt_buf *dst,
> -		    unsigned int x, unsigned int y,
> -		    unsigned int width, unsigned int height,
> -		    uint8_t color)
> +__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> +		      struct igt_buf *dst,
> +		      unsigned int x, unsigned int y,
> +		      unsigned int width, unsigned int height,
> +		      uint8_t color, const uint32_t kernel[][4],
> +		      size_t kernel_size)
>   {
>   	uint32_t curbe_buffer, interface_descriptor;
>   	uint32_t batch_end;
> @@ -216,7 +217,7 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>   	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
>   
>   	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> -				gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
> +				kernel, kernel_size);
>   
>   	igt_assert(batch->ptr < &batch->buffer[4095]);
>   
> @@ -240,3 +241,13 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>   	gen7_render_flush(batch, batch_end);
>   	intel_batchbuffer_reset(batch);
>   }
> +
> +void gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> +			 struct igt_buf *dst,
> +			 unsigned int x, unsigned int y,
> +			 unsigned int width, unsigned int height,
> +			 uint8_t color)
> +{
> +	__gen9_gpgpu_fillfunc(batch, dst, x, y, width, height, color,
> +			      gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
> +}
> diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h
> index 0190bfc1..7260c4fa 100644
> --- a/lib/gpgpu_fill.h
> +++ b/lib/gpgpu_fill.h
> @@ -43,6 +43,14 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>   		    unsigned int width, unsigned int height,
>   		    uint8_t color);
>   
> +void
> +__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> +		      struct igt_buf *dst,
> +		      unsigned int x, unsigned int y,
> +		      unsigned int width, unsigned int height,
> +		      uint8_t color, const uint32_t kernel[][4],
> +		      size_t kernel_size);
> +
>   void
>   gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>   		    struct igt_buf *dst,
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
  2018-05-09 21:21   ` Daniele Ceraolo Spurio
@ 2018-05-10 12:43     ` Katarzyna Dec
  0 siblings, 0 replies; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-10 12:43 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

On Wed, May 09, 2018 at 02:21:30PM -0700, Daniele Ceraolo Spurio wrote:
> 
> 
> On 09/05/18 07:21, Katarzyna Dec wrote:
> > Starting from gen9 main gpgpu_fillfunc differs only with
> > kernel parameter. Let's prepare generic __gen9 function to
> > avoid duplicating all _fillfunc for future gens.
> > 
> > v2: fixed indentations
> > 
> > Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
> > Cc: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> > Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
> > ---
> >   lib/gpgpu_fill.c | 23 +++++++++++++++++------
> >   lib/gpgpu_fill.h |  8 ++++++++
> >   2 files changed, 25 insertions(+), 6 deletions(-)
> > 
> > diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
> > index 010dde06..c44acb1f 100644
> > --- a/lib/gpgpu_fill.c
> > +++ b/lib/gpgpu_fill.c
> > @@ -193,11 +193,12 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   }
> >   void
> 
> As with the media_fill one, this function should be static and not exposed
> in the header.
> 
> Daniele
>
I will change that in v3.
Kasia
> > -gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> > -		    struct igt_buf *dst,
> > -		    unsigned int x, unsigned int y,
> > -		    unsigned int width, unsigned int height,
> > -		    uint8_t color)
> > +__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> > +		      struct igt_buf *dst,
> > +		      unsigned int x, unsigned int y,
> > +		      unsigned int width, unsigned int height,
> > +		      uint8_t color, const uint32_t kernel[][4],
> > +		      size_t kernel_size)
> >   {
> >   	uint32_t curbe_buffer, interface_descriptor;
> >   	uint32_t batch_end;
> > @@ -216,7 +217,7 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> >   	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> > -				gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
> > +				kernel, kernel_size);
> >   	igt_assert(batch->ptr < &batch->buffer[4095]);
> > @@ -240,3 +241,13 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   	gen7_render_flush(batch, batch_end);
> >   	intel_batchbuffer_reset(batch);
> >   }
> > +
> > +void gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> > +			 struct igt_buf *dst,
> > +			 unsigned int x, unsigned int y,
> > +			 unsigned int width, unsigned int height,
> > +			 uint8_t color)
> > +{
> > +	__gen9_gpgpu_fillfunc(batch, dst, x, y, width, height, color,
> > +			      gen9_gpgpu_kernel, sizeof(gen9_gpgpu_kernel));
> > +}
> > diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h
> > index 0190bfc1..7260c4fa 100644
> > --- a/lib/gpgpu_fill.h
> > +++ b/lib/gpgpu_fill.h
> > @@ -43,6 +43,14 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   		    unsigned int width, unsigned int height,
> >   		    uint8_t color);
> > +void
> > +__gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> > +		      struct igt_buf *dst,
> > +		      unsigned int x, unsigned int y,
> > +		      unsigned int width, unsigned int height,
> > +		      uint8_t color, const uint32_t kernel[][4],
> > +		      size_t kernel_size);
> > +
> >   void
> >   gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
> >   		    struct igt_buf *dst,
> > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens
  2018-05-09 21:16   ` Daniele Ceraolo Spurio
@ 2018-05-10 12:45     ` Katarzyna Dec
  0 siblings, 0 replies; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-10 12:45 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

On Wed, May 09, 2018 at 02:16:34PM -0700, Daniele Ceraolo Spurio wrote:
> 
> 
> On 09/05/18 07:21, Katarzyna Dec wrote:
> > Let's create common media_fill library, similarly as for gpgpu_fill.
> > This will allow to make code easier to read and maintain.
> > Moreover we can create generic __gen9_media_fillfunc for future gens.
> >  From gen9 media fillfunctions differ only with kernel parameter.
> > 
> > v2: fixed indentations in files
> > 
> > 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>
> > Reviewed-by: Ewelina Musial <ewelina.musial@intel.com>
> > ---
> >   lib/Makefile.sources  |   4 +-
> >   lib/media_fill.c      | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++
> >   lib/media_fill.h      |  32 ++++---
> >   lib/media_fill_gen7.c |  87 -------------------
> >   lib/media_fill_gen8.c |  90 --------------------
> >   lib/media_fill_gen9.c |  99 ----------------------
> >   lib/meson.build       |   4 +-
> >   7 files changed, 249 insertions(+), 294 deletions(-)
> >   create mode 100644 lib/media_fill.c
> >   delete mode 100644 lib/media_fill_gen7.c
> >   delete mode 100644 lib/media_fill_gen8.c
> >   delete mode 100644 lib/media_fill_gen9.c
> > 
> > diff --git a/lib/Makefile.sources b/lib/Makefile.sources
> > index 9c0150c1..4e5e9292 100644
> > --- a/lib/Makefile.sources
> > +++ b/lib/Makefile.sources
> > @@ -56,9 +56,7 @@ lib_source_list =	 	\
> >   	ioctl_wrappers.c	\
> >   	ioctl_wrappers.h	\
> >   	media_fill.h            \
> > -	media_fill_gen7.c       \
> > -	media_fill_gen8.c       \
> > -	media_fill_gen9.c       \
> > +	media_fill.c		\
> >   	media_spin.h		\
> >   	media_spin.c		\
> >   	gpgpu_fill.h		\
> > diff --git a/lib/media_fill.c b/lib/media_fill.c
> > new file mode 100644
> > index 00000000..872faf5a
> > --- /dev/null
> > +++ b/lib/media_fill.c
> > @@ -0,0 +1,227 @@
> > +#include <intel_bufmgr.h>
> > +#include <i915_drm.h>
> > +
> > +#include "media_fill.h"
> > +#include "gen7_media.h"
> > +#include "gen8_media.h"
> > +#include "intel_reg.h"
> > +#include "drmtest.h"
> > +#include "gpu_fill.h"
> > +#include <assert.h>
> > +
> > +static const uint32_t gen7_media_kernel[][4] = {
> > +	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
> > +	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
> > +	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
> > +	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
> > +	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
> > +	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
> > +	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
> > +	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
> > +};
> > +
> > +static const uint32_t gen8_media_kernel[][4] = {
> > +	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> > +	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> > +	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> > +	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> > +	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> > +	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> > +	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> > +	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> > +};
> > +
> > +static const uint32_t gen9_media_kernel[][4] = {
> > +	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> > +	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> > +	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> > +	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> > +	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> > +	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> > +	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> > +	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> > +	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> > +};
> 
> gen8_media_kernel and gen9_media_kernel are identical, no need to have both.
>
I will check that and remove if it is a duplication.

> > +
> > +/*
> > + * This sets up the media pipeline,
> > + *
> > + * +---------------+ <---- 4096
> > + * |       ^       |
> > + * |       |       |
> > + * |    various    |
> > + * |      state    |
> > + * |       |       |
> > + * |_______|_______| <---- 2048 + ?
> > + * |       ^       |
> > + * |       |       |
> > + * |   batch       |
> > + * |    commands   |
> > + * |       |       |
> > + * |       |       |
> > + * +---------------+ <---- 0 + ?
> > + *
> > + */
> > +
> > +#define BATCH_STATE_SPLIT 2048
> > +
> > +void
> > +gen7_media_fillfunc(struct intel_batchbuffer *batch,
> > +		    struct igt_buf *dst,
> > +		    unsigned int x, unsigned int y,
> > +		    unsigned int width, unsigned int height,
> > +		    uint8_t color)
> > +{
> > +	uint32_t curbe_buffer, interface_descriptor;
> > +	uint32_t batch_end;
> > +
> > +	intel_batchbuffer_flush(batch);
> > +
> > +	/* setup states */
> > +	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> > +
> > +	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> > +	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
> > +					gen7_media_kernel,
> > +					sizeof(gen7_media_kernel));
> > +	igt_assert(batch->ptr < &batch->buffer[4095]);
> > +
> > +	/* media pipeline */
> > +	batch->ptr = batch->buffer;
> > +	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> > +	gen7_emit_state_base_address(batch);
> > +
> > +	gen7_emit_vfe_state(batch);
> > +
> > +	gen7_emit_curbe_load(batch, curbe_buffer);
> > +
> > +	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > +
> > +	gen7_emit_media_objects(batch, x, y, width, height);
> > +
> > +	OUT_BATCH(MI_BATCH_BUFFER_END);
> > +
> > +	batch_end = intel_batchbuffer_align(batch, 8);
> > +	igt_assert(batch_end < BATCH_STATE_SPLIT);
> > +
> > +	gen7_render_flush(batch, batch_end);
> > +	intel_batchbuffer_reset(batch);
> > +}
> > +
> > +void
> > +gen8_media_fillfunc(struct intel_batchbuffer *batch,
> > +		    struct igt_buf *dst,
> > +		    unsigned int x, unsigned int y,
> > +		    unsigned int width, unsigned int height,
> > +		    uint8_t color)
> > +{
> > +	uint32_t curbe_buffer, interface_descriptor;
> > +	uint32_t batch_end;
> > +
> > +	intel_batchbuffer_flush(batch);
> > +
> > +	/* setup states */
> > +	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> > +
> > +	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> > +	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> > +					gen8_media_kernel,
> > +					sizeof(gen8_media_kernel));
> > +	igt_assert(batch->ptr < &batch->buffer[4095]);
> > +
> > +	/* media pipeline */
> > +	batch->ptr = batch->buffer;
> > +	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> > +	gen8_emit_state_base_address(batch);
> > +
> > +	gen8_emit_vfe_state(batch);
> > +
> > +	gen7_emit_curbe_load(batch, curbe_buffer);
> > +
> > +	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > +
> > +	gen7_emit_media_objects(batch, x, y, width, height);
> > +
> > +	OUT_BATCH(MI_BATCH_BUFFER_END);
> > +
> > +	batch_end = intel_batchbuffer_align(batch, 8);
> > +	igt_assert(batch_end < BATCH_STATE_SPLIT);
> > +
> > +	gen7_render_flush(batch, batch_end);
> > +	intel_batchbuffer_reset(batch);
> > +}
> > +
> > +void
> 
> This should be static and...
> 
> > +__gen9_media_fillfunc(struct intel_batchbuffer *batch,
> > +		      struct igt_buf *dst,
> > +		      unsigned int x, unsigned int y,
> > +		      unsigned int width, unsigned int height,
> > +		      uint8_t color, const uint32_t kernel[][4],
> > +		      size_t kernel_size)
> > +{
> 
> <snip>
> 
> > +void
> > +__gen9_media_fillfunc(struct intel_batchbuffer *batch,
> > +		      struct igt_buf *dst,
> > +		      unsigned int x, unsigned int y,
> > +		      unsigned int width, unsigned int height,
> > +		      uint8_t color, const uint32_t kernel[][4],
> > +		      size_t kernel_size);
> 
> ... not be added here in the header.
> 
> Daniele
>
You're right, I have missed that somehow... I will fix it in next version.
Kasia
> >   void
> >   gen9_media_fillfunc(struct intel_batchbuffer *batch,
> > -		struct igt_buf *dst,
> > -		unsigned int x, unsigned int y,
> > -		unsigned int width, unsigned int height,
> > -		uint8_t color);
> > +		    struct igt_buf *dst,
> > +		    unsigned int x, unsigned int y,
> > +		    unsigned int width, unsigned int height,
> > +		    uint8_t color);
> >   #endif /* RENDE_MEDIA_FILL_H */
> > diff --git a/lib/media_fill_gen7.c b/lib/media_fill_gen7.c
> > deleted file mode 100644
> > index 3dc5617e..00000000
> > --- a/lib/media_fill_gen7.c
> > +++ /dev/null
> > @@ -1,87 +0,0 @@
> > -#include <intel_bufmgr.h>
> > -#include <i915_drm.h>
> > -
> > -#include "media_fill.h"
> > -#include "gen7_media.h"
> > -#include "intel_reg.h"
> > -#include "drmtest.h"
> > -#include "gpu_fill.h"
> > -#include <assert.h>
> > -
> > -static const uint32_t media_kernel[][4] = {
> > -	{ 0x00400001, 0x20200231, 0x00000020, 0x00000000 },
> > -	{ 0x00600001, 0x20800021, 0x008d0000, 0x00000000 },
> > -	{ 0x00200001, 0x20800021, 0x00450040, 0x00000000 },
> > -	{ 0x00000001, 0x20880061, 0x00000000, 0x000f000f },
> > -	{ 0x00800001, 0x20a00021, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x20e00021, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21200021, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21600021, 0x00000020, 0x00000000 },
> > -	{ 0x05800031, 0x24001ca8, 0x00000080, 0x120a8000 },
> > -	{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 },
> > -	{ 0x07800031, 0x20001ca8, 0x00000e00, 0x82000010 },
> > -};
> > -
> > -/*
> > - * This sets up the media pipeline,
> > - *
> > - * +---------------+ <---- 4096
> > - * |       ^       |
> > - * |       |       |
> > - * |    various    |
> > - * |      state    |
> > - * |       |       |
> > - * |_______|_______| <---- 2048 + ?
> > - * |       ^       |
> > - * |       |       |
> > - * |   batch       |
> > - * |    commands   |
> > - * |       |       |
> > - * |       |       |
> > - * +---------------+ <---- 0 + ?
> > - *
> > - */
> > -
> > -#define BATCH_STATE_SPLIT 2048
> > -
> > -void
> > -gen7_media_fillfunc(struct intel_batchbuffer *batch,
> > -		struct igt_buf *dst,
> > -		unsigned int x, unsigned int y,
> > -		unsigned int width, unsigned int height,
> > -		uint8_t color)
> > -{
> > -	uint32_t curbe_buffer, interface_descriptor;
> > -	uint32_t batch_end;
> > -
> > -	intel_batchbuffer_flush(batch);
> > -
> > -	/* setup states */
> > -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> > -
> > -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> > -	interface_descriptor = gen7_fill_interface_descriptor(batch, dst,
> > -					media_kernel, sizeof(media_kernel));
> > -	igt_assert(batch->ptr < &batch->buffer[4095]);
> > -
> > -	/* media pipeline */
> > -	batch->ptr = batch->buffer;
> > -	OUT_BATCH(GEN7_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> > -	gen7_emit_state_base_address(batch);
> > -
> > -	gen7_emit_vfe_state(batch);
> > -
> > -	gen7_emit_curbe_load(batch, curbe_buffer);
> > -
> > -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > -
> > -	gen7_emit_media_objects(batch, x, y, width, height);
> > -
> > -	OUT_BATCH(MI_BATCH_BUFFER_END);
> > -
> > -	batch_end = intel_batchbuffer_align(batch, 8);
> > -	igt_assert(batch_end < BATCH_STATE_SPLIT);
> > -
> > -	gen7_render_flush(batch, batch_end);
> > -	intel_batchbuffer_reset(batch);
> > -}
> > diff --git a/lib/media_fill_gen8.c b/lib/media_fill_gen8.c
> > deleted file mode 100644
> > index 63fe72eb..00000000
> > --- a/lib/media_fill_gen8.c
> > +++ /dev/null
> > @@ -1,90 +0,0 @@
> > -#include <intel_bufmgr.h>
> > -#include <i915_drm.h>
> > -
> > -#include "media_fill.h"
> > -#include "gen8_media.h"
> > -#include "intel_reg.h"
> > -#include "drmtest.h"
> > -#include "gpu_fill.h"
> > -#include <assert.h>
> > -
> > -
> > -static const uint32_t media_kernel[][4] = {
> > -	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> > -	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> > -	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> > -	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> > -	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> > -	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> > -	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> > -	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> > -};
> > -
> > -
> > -
> > -/*
> > - * This sets up the media pipeline,
> > - *
> > - * +---------------+ <---- 4096
> > - * |       ^       |
> > - * |       |       |
> > - * |    various    |
> > - * |      state    |
> > - * |       |       |
> > - * |_______|_______| <---- 2048 + ?
> > - * |       ^       |
> > - * |       |       |
> > - * |   batch       |
> > - * |    commands   |
> > - * |       |       |
> > - * |       |       |
> > - * +---------------+ <---- 0 + ?
> > - *
> > - */
> > -
> > -#define BATCH_STATE_SPLIT 2048
> > -
> > -void
> > -gen8_media_fillfunc(struct intel_batchbuffer *batch,
> > -		struct igt_buf *dst,
> > -		unsigned int x, unsigned int y,
> > -		unsigned int width, unsigned int height,
> > -		uint8_t color)
> > -{
> > -	uint32_t curbe_buffer, interface_descriptor;
> > -	uint32_t batch_end;
> > -
> > -	intel_batchbuffer_flush(batch);
> > -
> > -	/* setup states */
> > -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> > -
> > -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> > -	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> > -					media_kernel, sizeof(media_kernel));
> > -	igt_assert(batch->ptr < &batch->buffer[4095]);
> > -
> > -	/* media pipeline */
> > -	batch->ptr = batch->buffer;
> > -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA);
> > -	gen8_emit_state_base_address(batch);
> > -
> > -	gen8_emit_vfe_state(batch);
> > -
> > -	gen7_emit_curbe_load(batch, curbe_buffer);
> > -
> > -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > -
> > -	gen7_emit_media_objects(batch, x, y, width, height);
> > -
> > -	OUT_BATCH(MI_BATCH_BUFFER_END);
> > -
> > -	batch_end = intel_batchbuffer_align(batch, 8);
> > -	igt_assert(batch_end < BATCH_STATE_SPLIT);
> > -
> > -	gen7_render_flush(batch, batch_end);
> > -	intel_batchbuffer_reset(batch);
> > -}
> > diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
> > deleted file mode 100644
> > index 78e892f2..00000000
> > --- a/lib/media_fill_gen9.c
> > +++ /dev/null
> > @@ -1,99 +0,0 @@
> > -#include <intel_bufmgr.h>
> > -#include <i915_drm.h>
> > -
> > -#include "media_fill.h"
> > -#include "gen8_media.h"
> > -#include "intel_reg.h"
> > -#include "gpu_fill.h"
> > -#include <assert.h>
> > -
> > -static const uint32_t media_kernel[][4] = {
> > -	{ 0x00400001, 0x20202288, 0x00000020, 0x00000000 },
> > -	{ 0x00600001, 0x20800208, 0x008d0000, 0x00000000 },
> > -	{ 0x00200001, 0x20800208, 0x00450040, 0x00000000 },
> > -	{ 0x00000001, 0x20880608, 0x00000000, 0x000f000f },
> > -	{ 0x00800001, 0x20a00208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x20e00208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21200208, 0x00000020, 0x00000000 },
> > -	{ 0x00800001, 0x21600208, 0x00000020, 0x00000000 },
> > -	{ 0x0c800031, 0x24000a40, 0x0e000080, 0x120a8000 },
> > -	{ 0x00600001, 0x2e000208, 0x008d0000, 0x00000000 },
> > -	{ 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 },
> > -};
> > -
> > -
> > -/*
> > - * This sets up the media pipeline,
> > - *
> > - * +---------------+ <---- 4096
> > - * |       ^       |
> > - * |       |       |
> > - * |    various    |
> > - * |      state    |
> > - * |       |       |
> > - * |_______|_______| <---- 2048 + ?
> > - * |       ^       |
> > - * |       |       |
> > - * |   batch       |
> > - * |    commands   |
> > - * |       |       |
> > - * |       |       |
> > - * +---------------+ <---- 0 + ?
> > - *
> > - */
> > -
> > -#define BATCH_STATE_SPLIT 2048
> > -
> > -void
> > -gen9_media_fillfunc(struct intel_batchbuffer *batch,
> > -		struct igt_buf *dst,
> > -		unsigned int x, unsigned int y,
> > -		unsigned int width, unsigned int height,
> > -		uint8_t color)
> > -{
> > -	uint32_t curbe_buffer, interface_descriptor;
> > -	uint32_t batch_end;
> > -
> > -	intel_batchbuffer_flush(batch);
> > -
> > -	/* setup states */
> > -	batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
> > -
> > -	curbe_buffer = gen7_fill_curbe_buffer_data(batch, color);
> > -	interface_descriptor = gen8_fill_interface_descriptor(batch, dst,
> > -					media_kernel, sizeof(media_kernel));
> > -	assert(batch->ptr < &batch->buffer[4095]);
> > -
> > -	/* media pipeline */
> > -	batch->ptr = batch->buffer;
> > -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
> > -			GEN9_FORCE_MEDIA_AWAKE_ENABLE |
> > -			GEN9_SAMPLER_DOP_GATE_DISABLE |
> > -			GEN9_PIPELINE_SELECTION_MASK |
> > -			GEN9_SAMPLER_DOP_GATE_MASK |
> > -			GEN9_FORCE_MEDIA_AWAKE_MASK);
> > -	gen9_emit_state_base_address(batch);
> > -
> > -	gen8_emit_vfe_state(batch);
> > -
> > -	gen7_emit_curbe_load(batch, curbe_buffer);
> > -
> > -	gen7_emit_interface_descriptor_load(batch, interface_descriptor);
> > -
> > -	gen7_emit_media_objects(batch, x, y, width, height);
> > -
> > -	OUT_BATCH(GEN8_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA |
> > -			GEN9_FORCE_MEDIA_AWAKE_DISABLE |
> > -			GEN9_SAMPLER_DOP_GATE_ENABLE |
> > -			GEN9_PIPELINE_SELECTION_MASK |
> > -			GEN9_SAMPLER_DOP_GATE_MASK |
> > -			GEN9_FORCE_MEDIA_AWAKE_MASK);
> > -
> > -	OUT_BATCH(MI_BATCH_BUFFER_END);
> > -
> > -	batch_end = intel_batchbuffer_align(batch, 8);
> > -	assert(batch_end < BATCH_STATE_SPLIT);
> > -
> > -	gen7_render_flush(batch, batch_end);
> > -	intel_batchbuffer_reset(batch);
> > -}
> > diff --git a/lib/meson.build b/lib/meson.build
> > index 04d550fa..3d5a04b0 100644
> > --- a/lib/meson.build
> > +++ b/lib/meson.build
> > @@ -24,9 +24,7 @@ lib_sources = [
> >   	'intel_os.c',
> >   	'intel_mmio.c',
> >   	'ioctl_wrappers.c',
> > -	'media_fill_gen7.c',
> > -	'media_fill_gen8.c',
> > -	'media_fill_gen9.c',
> > +	'media_fill.c',
> >   	'media_spin.c',
> >   	'gpgpu_fill.c',
> >   	'gpu_fill.c',
> > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10
  2018-05-09 21:20   ` Daniele Ceraolo Spurio
@ 2018-05-10 12:57     ` Katarzyna Dec
  0 siblings, 0 replies; 13+ messages in thread
From: Katarzyna Dec @ 2018-05-10 12:57 UTC (permalink / raw)
  To: Daniele Ceraolo Spurio; +Cc: igt-dev

On Wed, May 09, 2018 at 02:20:10PM -0700, Daniele Ceraolo Spurio wrote:
> 
> 
> On 09/05/18 07:21, Katarzyna Dec wrote:
> > Gen10 media_fillfunc so far was the same as for gen9.
> > Let's add proper gen10 function to make this code more
> > clear. There are no changes in gen10 code.
> > 
> 
> I personally disagree with this. It looks to me like we're making things
> less clear here by hiding the fact that gen10 is actually re-using the gen9
> code with no changes. I would personally drop this patch (and likewise patch
> 4/4), but will leave the judgment to the maintainers.
> 
> Daniele
>
Patches for gen10 were added after consultation with Michal Winiarski. He suggested
to add gen10 to show actual context and benefit from this change.
However, we didn't realized that we are creating another duplication.
I guess I had the same reason in my head - I didn't send gen10 changes together with v1
of this patches. I will remove gen10 patches. It looks like review process in
this case succeeded (not double checking - patches would be merged with
such duplication).
Kasia

> > v2: fixed indentations in few functions
> > v3: fixed few more indentations
> > 
> > Signed-off-by: Katarzyna Dec <katarzyna.dec@intel.com>
> > Cc: Ewelina Musial <ewelina.musial@intel.com>
> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> > ---
> >   lib/intel_batchbuffer.c |  4 +++-
> >   lib/media_fill.c        | 12 ++++++++++++
> >   lib/media_fill.h        |  7 +++++++
> >   3 files changed, 22 insertions(+), 1 deletion(-)
> > 
> > diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> > index f87e6bed..42ec4f35 100644
> > --- a/lib/intel_batchbuffer.c
> > +++ b/lib/intel_batchbuffer.c
> > @@ -858,7 +858,9 @@ igt_fillfunc_t igt_get_media_fillfunc(int devid)
> >   {
> >   	igt_fillfunc_t fill = NULL;
> > -	if (IS_GEN9(devid) || IS_GEN10(devid))
> > +	if (IS_GEN10(devid))
> > +		fill = gen10_media_fillfunc;
> > +	else if (IS_GEN9(devid))
> >   		fill = gen9_media_fillfunc;
> >   	else if (IS_GEN8(devid))
> >   		fill = gen8_media_fillfunc;
> > diff --git a/lib/media_fill.c b/lib/media_fill.c
> > index 872faf5a..fbcb9b28 100644
> > --- a/lib/media_fill.c
> > +++ b/lib/media_fill.c
> > @@ -225,3 +225,15 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
> >   	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
> >   			      gen9_media_kernel, sizeof(gen9_media_kernel));
> >   }
> > +
> > +void
> > +gen10_media_fillfunc(struct intel_batchbuffer *batch,
> > +		     struct igt_buf *dst,
> > +		     unsigned int x, unsigned int y,
> > +		     unsigned int width, unsigned int height,
> > +		     uint8_t color)
> > +{
> > +
> > +	__gen9_media_fillfunc(batch, dst, x, y, width, height, color,
> > +			      gen9_media_kernel, sizeof(gen9_media_kernel));
> > +}
> > diff --git a/lib/media_fill.h b/lib/media_fill.h
> > index 42f8cb6a..ba352443 100644
> > --- a/lib/media_fill.h
> > +++ b/lib/media_fill.h
> > @@ -33,4 +33,11 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
> >   		    unsigned int width, unsigned int height,
> >   		    uint8_t color);
> > +void
> > +gen10_media_fillfunc(struct intel_batchbuffer *batch,
> > +		     struct igt_buf *dst,
> > +		     unsigned int x, unsigned int y,
> > +		     unsigned int width, unsigned int height,
> > +		     uint8_t color);
> > +
> >   #endif /* RENDE_MEDIA_FILL_H */
> > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-05-10 12:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-09 14:21 [igt-dev] [PATCH i-g-t v3 0/4] *_fill libraries refactoring part2 Katarzyna Dec
2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 1/4] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
2018-05-09 21:16   ` Daniele Ceraolo Spurio
2018-05-10 12:45     ` Katarzyna Dec
2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/media_fill: Add media_fillfunc for Gen10 Katarzyna Dec
2018-05-09 21:20   ` Daniele Ceraolo Spurio
2018-05-10 12:57     ` Katarzyna Dec
2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 3/4] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
2018-05-09 21:21   ` Daniele Ceraolo Spurio
2018-05-10 12:43     ` Katarzyna Dec
2018-05-09 14:21 ` [igt-dev] [PATCH i-g-t v3 4/4] lib/gpgpu_fill: Add gpgpu_fillfunc for Gen10 Katarzyna Dec
2018-05-09 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev4) Patchwork
2018-05-09 18:33 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

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.