* [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2
@ 2018-05-10 13:50 Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 1/2] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Katarzyna Dec @ 2018-05-10 13:50 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
wrappers. This wrappers will be used in later gens. Implementation
for gen10 does not differ from gen9.
v2, v3: fixed indentations in whole series
v4: After comments on review - I've removed gen10 patches. I added missing
copyright headers to new media_fill library. I made __gen9_* functions
static.
Katarzyna Dec (2):
lib/media_fill: Create common media_fill library for all gens
lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
lib/Makefile.sources | 4 +-
lib/gpgpu_fill.c | 25 ++++--
lib/media_fill.c | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++
lib/media_fill.h | 48 +++++++---
lib/media_fill_gen7.c | 87 ------------------
lib/media_fill_gen8.c | 90 -------------------
lib/media_fill_gen9.c | 99 ---------------------
lib/meson.build | 4 +-
8 files changed, 293 insertions(+), 301 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] 5+ messages in thread
* [igt-dev] [PATCH i-g-t v4 1/2] lib/media_fill: Create common media_fill library for all gens
2018-05-10 13:50 [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2 Katarzyna Dec
@ 2018-05-10 13:50 ` Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 2/2] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Katarzyna Dec @ 2018-05-10 13:50 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
v3: Added missing copyright headers. Made __gen9_media_fillfunc static.
Removed gen9 kernel (the same as for gen8).
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>
Cc: Ewelina Musial <ewelina.musial@intel.com>
---
lib/Makefile.sources | 4 +-
lib/media_fill.c | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++
lib/media_fill.h | 48 +++++++---
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, 275 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..b474c307
--- /dev/null
+++ b/lib/media_fill.c
@@ -0,0 +1,237 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#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 },
+};
+
+/*
+ * 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);
+}
+
+static 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,
+ gen8_media_kernel, sizeof(gen8_media_kernel));
+}
diff --git a/lib/media_fill.h b/lib/media_fill.h
index f6db734e..7863ae84 100644
--- a/lib/media_fill.h
+++ b/lib/media_fill.h
@@ -1,3 +1,27 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
#ifndef RENDE_MEDIA_FILL_H
#define RENDE_MEDIA_FILL_H
@@ -6,23 +30,23 @@
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);
+ 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] 5+ messages in thread
* [igt-dev] [PATCH i-g-t v4 2/2] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc
2018-05-10 13:50 [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2 Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 1/2] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
@ 2018-05-10 13:50 ` Katarzyna Dec
2018-05-10 14:22 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev5) Patchwork
2018-05-10 15:17 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
3 siblings, 0 replies; 5+ messages in thread
From: Katarzyna Dec @ 2018-05-10 13:50 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
v3: Made __gen9_gpgpu_fillfunc static
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>
Cc: Ewelina Musial <ewelina.musial@intel.com>
---
lib/gpgpu_fill.c | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
index 010dde06..5b6ee2e6 100644
--- a/lib/gpgpu_fill.c
+++ b/lib/gpgpu_fill.c
@@ -192,12 +192,13 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
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)
+static 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)
{
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));
+}
--
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] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev5)
2018-05-10 13:50 [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2 Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 1/2] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 2/2] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
@ 2018-05-10 14:22 ` Patchwork
2018-05-10 15:17 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-05-10 14:22 UTC (permalink / raw)
To: Katarzyna Dec; +Cc: igt-dev
== Series Details ==
Series: *_fill libraries refactoring part2 (rev5)
URL : https://patchwork.freedesktop.org/series/42943/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4163 -> IGTPW_1341 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/42943/revisions/5/mbox/
== Known issues ==
Here are the changes found in IGTPW_1341 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
fi-bxt-dsi: PASS -> INCOMPLETE (fdo#103927)
==== 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#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
== Participating hosts (41 -> 37) ==
Missing (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-skl-6700hq
== Build changes ==
* IGT: IGT_4468 -> IGTPW_1341
* Piglit: piglit_4468 -> piglit_4474
CI_DRM_4163: 8e1dab6e913be7d014eb9bc355ec65b6b56dcd56 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1341: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1341/
IGT_4468: 548a894dc904c4628522dbbc77cb179a4c965ebc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4468: 1e60f1499e5b71b6d5a747189d7c28f57359a87f @ git://anongit.freedesktop.org/piglit
piglit_4474: 318e0b8c5cdf7aac628f85d0c4a00db8f2d6ab0d @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1341/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for *_fill libraries refactoring part2 (rev5)
2018-05-10 13:50 [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2 Katarzyna Dec
` (2 preceding siblings ...)
2018-05-10 14:22 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev5) Patchwork
@ 2018-05-10 15:17 ` Patchwork
3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-05-10 15:17 UTC (permalink / raw)
To: Katarzyna Dec; +Cc: igt-dev
== Series Details ==
Series: *_fill libraries refactoring part2 (rev5)
URL : https://patchwork.freedesktop.org/series/42943/
State : failure
== Summary ==
= CI Bug Log - changes from IGT_4468_full -> IGTPW_1341_full =
== Summary - FAILURE ==
Serious unknown changes coming with IGTPW_1341_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1341_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/5/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1341_full:
=== IGT changes ===
==== Possible regressions ====
igt@kms_cursor_crc@cursor-256x85-random:
shard-glk: PASS -> DMESG-WARN
==== 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-ctx-render:
shard-kbl: PASS -> SKIP
== Known issues ==
Here are the changes found in IGTPW_1341_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled:
shard-glk: PASS -> FAIL (fdo#104724)
igt@kms_flip@blocking-wf_vblank:
shard-kbl: PASS -> DMESG-WARN (fdo#103558, fdo#105602) +4
igt@kms_flip@wf_vblank-ts-check-interruptible:
shard-glk: PASS -> FAIL (fdo#100368) +1
igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
shard-kbl: PASS -> DMESG-WARN (fdo#103558, fdo#105602, fdo#103313) +11
igt@kms_rotation_crc@primary-rotation-180:
shard-snb: PASS -> FAIL (fdo#103925, fdo#104724)
igt@kms_setmode@basic:
shard-glk: PASS -> FAIL (fdo#99912)
igt@syncobj_wait@single-wait-all-for-submit-submitted:
shard-kbl: PASS -> DMESG-WARN (fdo#103313)
==== 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@plain-flip-fb-recreate-interruptible:
shard-hsw: FAIL (fdo#100368) -> PASS
igt@kms_setmode@basic:
shard-apl: FAIL (fdo#99912) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
fdo#103313 https://bugs.freedesktop.org/show_bug.cgi?id=103313
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
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_1341
* Linux: CI_DRM_4160 -> CI_DRM_4163
* Piglit: piglit_4468 -> piglit_4474
CI_DRM_4160: 6d9a2ccf9fca7c006f24b7ff6193ee356b6d3503 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4163: 8e1dab6e913be7d014eb9bc355ec65b6b56dcd56 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1341: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1341/
IGT_4468: 548a894dc904c4628522dbbc77cb179a4c965ebc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4468: 1e60f1499e5b71b6d5a747189d7c28f57359a87f @ git://anongit.freedesktop.org/piglit
piglit_4474: 318e0b8c5cdf7aac628f85d0c4a00db8f2d6ab0d @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1341/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-05-10 15:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-10 13:50 [igt-dev] [PATCH i-g-t v4 0/2] *_fill libraries refactoring part2 Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 1/2] lib/media_fill: Create common media_fill library for all gens Katarzyna Dec
2018-05-10 13:50 ` [igt-dev] [PATCH i-g-t v4 2/2] lib/gpgpu_fill: Create generic __gen9_gpgpu_fillfunc Katarzyna Dec
2018-05-10 14:22 ` [igt-dev] ✓ Fi.CI.BAT: success for *_fill libraries refactoring part2 (rev5) Patchwork
2018-05-10 15:17 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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.