public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11
@ 2018-10-09 14:45 Lukasz Kalamarz
  2018-10-09 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Lukasz Kalamarz @ 2018-10-09 14:45 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, Rodrigo Vivi

From: "Kalamarz, Lukasz" <lukasz.kalamarz@intel.com>

In Gen11 there were EU changes which was causing gem_render_copy test
failing. Shader used in gen9 is no longer applicable for those change
and it had to be aligned to gen11 changes. Since only difference is
shader, created a wrapper for gen9 function.

Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>

Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Katarzyna Dec <katarzyna.dec@intel.com>
---
 lib/i915/shaders/ps/blit.g11a | 22 ++++++++++
 lib/intel_batchbuffer.c       |  2 +
 lib/rendercopy.h              |  5 +++
 lib/rendercopy_gen9.c         | 97 ++++++++++++++++++++++++++++++++++---------
 4 files changed, 106 insertions(+), 20 deletions(-)
 create mode 100644 lib/i915/shaders/ps/blit.g11a

diff --git a/lib/i915/shaders/ps/blit.g11a b/lib/i915/shaders/ps/blit.g11a
new file mode 100644
index 00000000..15fe78af
--- /dev/null
+++ b/lib/i915/shaders/ps/blit.g11a
@@ -0,0 +1,22 @@
+/*  This is the same shader as for previous gens. On Gen 11 instruction pln was deleted and needs to be replaced by mad.
+This shader was generated using IGA tool (not assembler integrated into IGT)
+*/
+
+(W) mad(8|M0) acc0.0<1>:nf r6.7<0;0>:f r2.0<8;1>:f r6.0<0>:f
+(W) mad(8|M0) r10.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.1<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.0<0>:f
+(W) mad(8|M0) r11.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.1<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.4<0;0>:f r2.0<8;1>:f r6.4<0>:f
+(W) mad(8|M0) r12.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.5<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.4<0>:f
+(W) mad(8|M0) r13.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.5<0>:f
+
+(W) send(16|M0) r112:f r10:ub 0x10000002 0x08840001 //  SAMPLER  wr:4, rd:8, fc: 0x40001
+    mov (16|M0)              r113.0<1>:f   r12.0<8;8,1>:f
+    mov (16|M0)              r115.0<1>:f   r14.0<8;8,1>:f
+    mov (16|M0)              r117.0<1>:f   r16.0<8;8,1>:f
+    mov (16|M0)              r119.0<1>:f   r18.0<8;8,1>:f
+(W) send(16|M0) null:f r112:ub 0x10000025 0x10031000 {EOT} //  DP_RC  wr:8, rd:0, Render Target Write msc:16, to #0
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 387404ff..c13b1dc4 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -843,6 +843,8 @@ igt_render_copyfunc_t igt_get_render_copyfunc(int devid)
 		copy = gen8_render_copyfunc;
 	else if (IS_GEN9(devid) || IS_GEN10(devid))
 		copy = gen9_render_copyfunc;
+	else if (IS_GEN11(devid))
+		copy = gen11_render_copyfunc;
 
 	return copy;
 }
diff --git a/lib/rendercopy.h b/lib/rendercopy.h
index d1bb6284..35c28dd9 100644
--- a/lib/rendercopy.h
+++ b/lib/rendercopy.h
@@ -23,6 +23,11 @@ static inline void emit_vertex_normalized(struct intel_batchbuffer *batch,
 	OUT_BATCH(u.ui);
 }
 
+void gen11_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
 void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 			  drm_intel_context *context,
 			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
index f324fbd7..3bf18ae5 100644
--- a/lib/rendercopy_gen9.c
+++ b/lib/rendercopy_gen9.c
@@ -50,23 +50,53 @@ struct {
 } viewport;
 
 /* see lib/i915/shaders/ps/blit.g7a */
-static const uint32_t ps_kernel[][4] = {
+static const uint32_t ps_kernel_gen9[][4] = {
 #if 1
-   { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
-   { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
-   { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
-   { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
+	{ 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
+	{ 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
+	{ 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
+	{ 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
 #else
-   /* Write all -1 */
-   { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
-   { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
+	/* Write all -1 */
+	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
+	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
+#endif
+};
+
+static const uint32_t ps_kernel_gen11[][4] = {
+#if 1
+	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800404 },
+	{ 0x0060005b, 0x7100480c, 0x0722003b, 0x01880406 },
+	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800408 },
+	{ 0x0060005b, 0x7200480c, 0x0722003b, 0x0188040a },
+	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00404 },
+	{ 0x0060005b, 0x7300480c, 0x0722003b, 0x01a80406 },
+	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00408 },
+	{ 0x0060005b, 0x7400480c, 0x0722003b, 0x01a8040a },
+	{ 0x02800031, 0x21804a4c, 0x06000e20, 0x08840001 },
+	{ 0x00800001, 0x2e204b28, 0x008d0180, 0x00000000 },
+	{ 0x00800001, 0x2e604b28, 0x008d01c0, 0x00000000 },
+	{ 0x00800001, 0x2ea04b28, 0x008d0200, 0x00000000 },
+	{ 0x00800001, 0x2ee04b28, 0x008d0240, 0x00000000 },
+	{ 0x05800031, 0x20004a44, 0x06000e20, 0x90031000 },
+#else
+	/* Write all -1 */
+	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
+	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
 #endif
 };
 
@@ -907,11 +937,14 @@ static void gen8_emit_primitive(struct intel_batchbuffer *batch, uint32_t offset
 
 #define BATCH_STATE_SPLIT 2048
 
-void gen9_render_copyfunc(struct intel_batchbuffer *batch,
+static
+void _gen9_render_copyfunc(struct intel_batchbuffer *batch,
 			  drm_intel_context *context,
-			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
-			  unsigned width, unsigned height,
-			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+			  const struct igt_buf *src, unsigned src_x,
+			  unsigned src_y, unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x,
+			  unsigned dst_y, const uint32_t ps_kernel[][4],
+			  uint32_t ps_kernel_size)
 {
 	uint32_t ps_sampler_state, ps_kernel_off, ps_binding_table;
 	uint32_t scissor_state;
@@ -928,7 +961,7 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 
 	ps_binding_table  = gen8_bind_surfaces(batch, src, dst);
 	ps_sampler_state  = gen8_create_sampler(batch);
-	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, sizeof(ps_kernel));
+	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, ps_kernel_size);
 	vertex_buffer = gen7_fill_vertex_buffer_data(batch, src,
 						     src_x, src_y,
 						     dst_x, dst_y,
@@ -1014,3 +1047,27 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 	gen6_render_flush(batch, context, batch_end);
 	intel_batchbuffer_reset(batch);
 }
+
+void gen9_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+
+{
+	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
+			  width, height, dst, dst_x, dst_y, ps_kernel_gen9,
+			  sizeof(ps_kernel_gen9));
+}
+
+void gen11_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+
+{
+	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
+			  width, height, dst, dst_x, dst_y, ps_kernel_gen11,
+			  sizeof(ps_kernel_gen11));
+}
-- 
2.14.4

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for libs: Adding rendercopy support for gen11
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
@ 2018-10-09 15:16 ` Patchwork
  2018-10-09 17:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-09 15:16 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev

== Series Details ==

Series: libs: Adding rendercopy support for gen11
URL   : https://patchwork.freedesktop.org/series/50753/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4952 -> IGTPW_1928 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/50753/revisions/1/mbox/

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s3:
      fi-cfl-8109u:       PASS -> INCOMPLETE (fdo#108126, fdo#107187)

    
    ==== Possible fixes ====

    igt@gem_exec_suspend@basic-s3:
      fi-blb-e6850:       INCOMPLETE (fdo#107718) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      fi-byt-clapper:     FAIL (fdo#103167) -> PASS

    
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
  fdo#108126 https://bugs.freedesktop.org/show_bug.cgi?id=108126


== Participating hosts (47 -> 42) ==

  Additional (1): fi-skl-6700hq 
  Missing    (6): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-u2 fi-ctg-p8600 


== Build changes ==

    * IGT: IGT_4671 -> IGTPW_1928

  CI_DRM_4952: a62e43ba13605a478b22307ea1790d48aea029a6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1928: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1928/
  IGT_4671: b121f7d42c260ae3a050c3f440d1c11f7cff7d1a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for libs: Adding rendercopy support for gen11
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
  2018-10-09 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-10-09 17:32 ` Patchwork
  2018-10-10  9:23 ` [igt-dev] [PATCH i-g-t] " Petri Latvala
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-09 17:32 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev

== Series Details ==

Series: libs: Adding rendercopy support for gen11
URL   : https://patchwork.freedesktop.org/series/50753/
State : success

== Summary ==

= CI Bug Log - changes from IGT_4671_full -> IGTPW_1928_full =

== Summary - WARNING ==

  Minor unknown changes coming with IGTPW_1928_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_1928_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/50753/revisions/1/mbox/

== Possible new issues ==

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

  === IGT changes ===

    ==== Warnings ====

    igt@pm_rc6_residency@rc6-accuracy:
      shard-snb:          PASS -> SKIP

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_suspend@shrink:
      shard-kbl:          PASS -> INCOMPLETE (fdo#106886, fdo#103665)

    igt@kms_available_modes_crc@available_mode_test_crc:
      shard-apl:          PASS -> FAIL (fdo#106641)
      shard-snb:          PASS -> FAIL (fdo#106641)

    igt@kms_color@pipe-b-degamma:
      shard-apl:          PASS -> FAIL (fdo#104782)

    igt@kms_cursor_crc@cursor-256x256-onscreen:
      shard-kbl:          PASS -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-256x256-suspend:
      shard-glk:          PASS -> FAIL (fdo#103232) +2
      shard-apl:          PASS -> FAIL (fdo#103232, fdo#103191)

    igt@kms_cursor_crc@cursor-64x21-sliding:
      shard-apl:          PASS -> FAIL (fdo#103232) +4

    igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
      shard-glk:          PASS -> DMESG-WARN (fdo#106538, fdo#105763)

    igt@kms_flip@2x-flip-vs-dpms:
      shard-glk:          PASS -> INCOMPLETE (k.org#198133, fdo#103359) +1

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

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
      shard-apl:          PASS -> FAIL (fdo#103167) +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
      shard-glk:          PASS -> FAIL (fdo#103167) +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
      shard-kbl:          PASS -> FAIL (fdo#103167) +1

    igt@kms_plane@pixel-format-pipe-c-planes:
      shard-apl:          PASS -> FAIL (fdo#103166) +5
      shard-glk:          PASS -> FAIL (fdo#103166) +2

    igt@kms_plane_multiple@atomic-pipe-a-tiling-yf:
      shard-kbl:          PASS -> FAIL (fdo#103166) +4

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

    
    ==== Possible fixes ====

    igt@gem_tiled_blits@interruptible:
      shard-apl:          INCOMPLETE (fdo#103927) -> PASS

    igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
      shard-glk:          FAIL (fdo#108145) -> PASS +1

    igt@kms_color@pipe-c-legacy-gamma:
      shard-kbl:          FAIL (fdo#104782) -> PASS
      shard-apl:          FAIL (fdo#104782) -> PASS

    igt@kms_cursor_crc@cursor-128x128-random:
      shard-kbl:          FAIL (fdo#103232) -> PASS

    igt@kms_cursor_crc@cursor-256x256-random:
      shard-glk:          FAIL (fdo#103232) -> PASS +4

    igt@kms_cursor_crc@cursor-256x256-suspend:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS

    igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> PASS

    igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
      shard-hsw:          FAIL (fdo#105767) -> PASS

    igt@kms_flip@flip-vs-fences-interruptible:
      shard-snb:          INCOMPLETE (fdo#105411) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt:
      shard-glk:          DMESG-FAIL (fdo#106538, fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
      shard-apl:          FAIL (fdo#103167) -> PASS +3

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen:
      shard-kbl:          FAIL (fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-rte:
      shard-glk:          FAIL (fdo#105682, fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
      shard-glk:          FAIL (fdo#103167) -> PASS +11

    {igt@kms_plane_alpha_blend@pipe-a-coverage-7efc}:
      shard-glk:          DMESG-FAIL (fdo#106538) -> PASS

    igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
      shard-glk:          FAIL (fdo#103166) -> PASS +3

    igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
      shard-apl:          FAIL (fdo#103166) -> PASS

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

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104782 https://bugs.freedesktop.org/show_bug.cgi?id=104782
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105682 https://bugs.freedesktop.org/show_bug.cgi?id=105682
  fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
  fdo#105767 https://bugs.freedesktop.org/show_bug.cgi?id=105767
  fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
  fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
  fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
  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 (6 -> 5) ==

  Missing    (1): shard-skl 


== Build changes ==

    * IGT: IGT_4671 -> IGTPW_1928
    * Linux: CI_DRM_4944 -> CI_DRM_4952

  CI_DRM_4944: 66bd263b99fd264b57432c232756baf95b0a6255 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_4952: a62e43ba13605a478b22307ea1790d48aea029a6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1928: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1928/
  IGT_4671: b121f7d42c260ae3a050c3f440d1c11f7cff7d1a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* Re: [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
  2018-10-09 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2018-10-09 17:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2018-10-10  9:23 ` Petri Latvala
  2018-10-10 10:48 ` [igt-dev] [PATCH i-g-t v2] " Lukasz Kalamarz
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Petri Latvala @ 2018-10-10  9:23 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev, Lucas De Marchi, Rodrigo Vivi

On Tue, Oct 09, 2018 at 04:45:25PM +0200, Lukasz Kalamarz wrote:
> From: "Kalamarz, Lukasz" <lukasz.kalamarz@intel.com>
> 
> In Gen11 there were EU changes which was causing gem_render_copy test
> failing. Shader used in gen9 is no longer applicable for those change
> and it had to be aligned to gen11 changes. Since only difference is
> shader, created a wrapper for gen9 function.
> 
> Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
> 
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Katarzyna Dec <katarzyna.dec@intel.com>
> ---
>  lib/i915/shaders/ps/blit.g11a | 22 ++++++++++
>  lib/intel_batchbuffer.c       |  2 +
>  lib/rendercopy.h              |  5 +++
>  lib/rendercopy_gen9.c         | 97 ++++++++++++++++++++++++++++++++++---------
>  4 files changed, 106 insertions(+), 20 deletions(-)
>  create mode 100644 lib/i915/shaders/ps/blit.g11a
> 
> diff --git a/lib/i915/shaders/ps/blit.g11a b/lib/i915/shaders/ps/blit.g11a
> new file mode 100644
> index 00000000..15fe78af
> --- /dev/null
> +++ b/lib/i915/shaders/ps/blit.g11a
> @@ -0,0 +1,22 @@
> +/*  This is the same shader as for previous gens. On Gen 11 instruction pln was deleted and needs to be replaced by mad.
> +This shader was generated using IGA tool (not assembler integrated into IGT)
> +*/
> +
> +(W) mad(8|M0) acc0.0<1>:nf r6.7<0;0>:f r2.0<8;1>:f r6.0<0>:f
> +(W) mad(8|M0) r10.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.1<0>:f
> +
> +(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.0<0>:f
> +(W) mad(8|M0) r11.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.1<0>:f
> +
> +(W) mad(8|M0) acc0.0<1>:nf r6.4<0;0>:f r2.0<8;1>:f r6.4<0>:f
> +(W) mad(8|M0) r12.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.5<0>:f
> +
> +(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.4<0>:f
> +(W) mad(8|M0) r13.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.5<0>:f
> +
> +(W) send(16|M0) r112:f r10:ub 0x10000002 0x08840001 //  SAMPLER  wr:4, rd:8, fc: 0x40001
> +    mov (16|M0)              r113.0<1>:f   r12.0<8;8,1>:f
> +    mov (16|M0)              r115.0<1>:f   r14.0<8;8,1>:f
> +    mov (16|M0)              r117.0<1>:f   r16.0<8;8,1>:f
> +    mov (16|M0)              r119.0<1>:f   r18.0<8;8,1>:f
> +(W) send(16|M0) null:f r112:ub 0x10000025 0x10031000 {EOT} //  DP_RC  wr:8, rd:0, Render Target Write msc:16, to #0
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 387404ff..c13b1dc4 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -843,6 +843,8 @@ igt_render_copyfunc_t igt_get_render_copyfunc(int devid)
>  		copy = gen8_render_copyfunc;
>  	else if (IS_GEN9(devid) || IS_GEN10(devid))
>  		copy = gen9_render_copyfunc;
> +	else if (IS_GEN11(devid))
> +		copy = gen11_render_copyfunc;
>  
>  	return copy;
>  }
> diff --git a/lib/rendercopy.h b/lib/rendercopy.h
> index d1bb6284..35c28dd9 100644
> --- a/lib/rendercopy.h
> +++ b/lib/rendercopy.h
> @@ -23,6 +23,11 @@ static inline void emit_vertex_normalized(struct intel_batchbuffer *batch,
>  	OUT_BATCH(u.ui);
>  }
>  
> +void gen11_render_copyfunc(struct intel_batchbuffer *batch,
> +			  drm_intel_context *context,
> +			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
> +			  unsigned width, unsigned height,
> +			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
>  void gen9_render_copyfunc(struct intel_batchbuffer *batch,
>  			  drm_intel_context *context,
>  			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
> diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
> index f324fbd7..3bf18ae5 100644
> --- a/lib/rendercopy_gen9.c
> +++ b/lib/rendercopy_gen9.c
> @@ -50,23 +50,53 @@ struct {
>  } viewport;
>  
>  /* see lib/i915/shaders/ps/blit.g7a */
> -static const uint32_t ps_kernel[][4] = {
> +static const uint32_t ps_kernel_gen9[][4] = {
>  #if 1
> -   { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
> -   { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
> -   { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
> -   { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
> +	{ 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
> +	{ 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
> +	{ 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
> +	{ 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
>  #else
> -   /* Write all -1 */
> -   { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
> -   { 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
> -   { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
> +	/* Write all -1 */
> +	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
> +	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
> +#endif
> +};
> +

Add comment with the path to the shader source here.


-- 
Petri Latvala


> +static const uint32_t ps_kernel_gen11[][4] = {
> +#if 1
> +	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800404 },
> +	{ 0x0060005b, 0x7100480c, 0x0722003b, 0x01880406 },
> +	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800408 },
> +	{ 0x0060005b, 0x7200480c, 0x0722003b, 0x0188040a },
> +	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00404 },
> +	{ 0x0060005b, 0x7300480c, 0x0722003b, 0x01a80406 },
> +	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00408 },
> +	{ 0x0060005b, 0x7400480c, 0x0722003b, 0x01a8040a },
> +	{ 0x02800031, 0x21804a4c, 0x06000e20, 0x08840001 },
> +	{ 0x00800001, 0x2e204b28, 0x008d0180, 0x00000000 },
> +	{ 0x00800001, 0x2e604b28, 0x008d01c0, 0x00000000 },
> +	{ 0x00800001, 0x2ea04b28, 0x008d0200, 0x00000000 },
> +	{ 0x00800001, 0x2ee04b28, 0x008d0240, 0x00000000 },
> +	{ 0x05800031, 0x20004a44, 0x06000e20, 0x90031000 },
> +#else
> +	/* Write all -1 */
> +	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
> +	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
> +	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
>  #endif
>  };
>  
> @@ -907,11 +937,14 @@ static void gen8_emit_primitive(struct intel_batchbuffer *batch, uint32_t offset
>  
>  #define BATCH_STATE_SPLIT 2048
>  
> -void gen9_render_copyfunc(struct intel_batchbuffer *batch,
> +static
> +void _gen9_render_copyfunc(struct intel_batchbuffer *batch,
>  			  drm_intel_context *context,
> -			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
> -			  unsigned width, unsigned height,
> -			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
> +			  const struct igt_buf *src, unsigned src_x,
> +			  unsigned src_y, unsigned width, unsigned height,
> +			  const struct igt_buf *dst, unsigned dst_x,
> +			  unsigned dst_y, const uint32_t ps_kernel[][4],
> +			  uint32_t ps_kernel_size)
>  {
>  	uint32_t ps_sampler_state, ps_kernel_off, ps_binding_table;
>  	uint32_t scissor_state;
> @@ -928,7 +961,7 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
>  
>  	ps_binding_table  = gen8_bind_surfaces(batch, src, dst);
>  	ps_sampler_state  = gen8_create_sampler(batch);
> -	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, sizeof(ps_kernel));
> +	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, ps_kernel_size);
>  	vertex_buffer = gen7_fill_vertex_buffer_data(batch, src,
>  						     src_x, src_y,
>  						     dst_x, dst_y,
> @@ -1014,3 +1047,27 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
>  	gen6_render_flush(batch, context, batch_end);
>  	intel_batchbuffer_reset(batch);
>  }
> +
> +void gen9_render_copyfunc(struct intel_batchbuffer *batch,
> +			  drm_intel_context *context,
> +			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
> +			  unsigned width, unsigned height,
> +			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
> +
> +{
> +	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
> +			  width, height, dst, dst_x, dst_y, ps_kernel_gen9,
> +			  sizeof(ps_kernel_gen9));
> +}
> +
> +void gen11_render_copyfunc(struct intel_batchbuffer *batch,
> +			  drm_intel_context *context,
> +			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
> +			  unsigned width, unsigned height,
> +			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
> +
> +{
> +	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
> +			  width, height, dst, dst_x, dst_y, ps_kernel_gen11,
> +			  sizeof(ps_kernel_gen11));
> +}
> -- 
> 2.14.4
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v2] libs: Adding rendercopy support for gen11
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
                   ` (2 preceding siblings ...)
  2018-10-10  9:23 ` [igt-dev] [PATCH i-g-t] " Petri Latvala
@ 2018-10-10 10:48 ` Lukasz Kalamarz
  2018-10-11  8:33   ` Katarzyna Dec
  2018-10-10 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for libs: Adding rendercopy support for gen11 (rev2) Patchwork
  2018-10-10 15:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 1 reply; 8+ messages in thread
From: Lukasz Kalamarz @ 2018-10-10 10:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi, Rodrigo Vivi

From: "Kalamarz, Lukasz" <lukasz.kalamarz@intel.com>

In Gen11 there were EU changes which was causing gem_render_copy test
failing. Shader used in gen9 is no longer applicable for those change
and it had to be aligned to gen11 changes. Since only difference is
shader, created a wrapper for gen9 function.

v2: Added gen11 shader source path next to it binary form

Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>

Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Katarzyna Dec <katarzyna.dec@intel.com>
---
 lib/i915/shaders/ps/blit.g11a | 22 ++++++++++
 lib/intel_batchbuffer.c       |  2 +
 lib/rendercopy.h              |  5 +++
 lib/rendercopy_gen9.c         | 98 ++++++++++++++++++++++++++++++++++---------
 4 files changed, 107 insertions(+), 20 deletions(-)
 create mode 100644 lib/i915/shaders/ps/blit.g11a

diff --git a/lib/i915/shaders/ps/blit.g11a b/lib/i915/shaders/ps/blit.g11a
new file mode 100644
index 00000000..15fe78af
--- /dev/null
+++ b/lib/i915/shaders/ps/blit.g11a
@@ -0,0 +1,22 @@
+/*  This is the same shader as for previous gens. On Gen 11 instruction pln was deleted and needs to be replaced by mad.
+This shader was generated using IGA tool (not assembler integrated into IGT)
+*/
+
+(W) mad(8|M0) acc0.0<1>:nf r6.7<0;0>:f r2.0<8;1>:f r6.0<0>:f
+(W) mad(8|M0) r10.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.1<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.0<0>:f
+(W) mad(8|M0) r11.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.1<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.4<0;0>:f r2.0<8;1>:f r6.4<0>:f
+(W) mad(8|M0) r12.0<1>:f acc0.0<8;1>:nf r3.0<8;1>:f r6.5<0>:f
+
+(W) mad(8|M0) acc0.0<1>:nf r6.0<0;0>:f r4.0<8;1>:f r6.4<0>:f
+(W) mad(8|M0) r13.0<1>:f acc0.0<8;1>:nf r5.0<8;1>:f r6.5<0>:f
+
+(W) send(16|M0) r112:f r10:ub 0x10000002 0x08840001 //  SAMPLER  wr:4, rd:8, fc: 0x40001
+    mov (16|M0)              r113.0<1>:f   r12.0<8;8,1>:f
+    mov (16|M0)              r115.0<1>:f   r14.0<8;8,1>:f
+    mov (16|M0)              r117.0<1>:f   r16.0<8;8,1>:f
+    mov (16|M0)              r119.0<1>:f   r18.0<8;8,1>:f
+(W) send(16|M0) null:f r112:ub 0x10000025 0x10031000 {EOT} //  DP_RC  wr:8, rd:0, Render Target Write msc:16, to #0
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 387404ff..c13b1dc4 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -843,6 +843,8 @@ igt_render_copyfunc_t igt_get_render_copyfunc(int devid)
 		copy = gen8_render_copyfunc;
 	else if (IS_GEN9(devid) || IS_GEN10(devid))
 		copy = gen9_render_copyfunc;
+	else if (IS_GEN11(devid))
+		copy = gen11_render_copyfunc;
 
 	return copy;
 }
diff --git a/lib/rendercopy.h b/lib/rendercopy.h
index d1bb6284..35c28dd9 100644
--- a/lib/rendercopy.h
+++ b/lib/rendercopy.h
@@ -23,6 +23,11 @@ static inline void emit_vertex_normalized(struct intel_batchbuffer *batch,
 	OUT_BATCH(u.ui);
 }
 
+void gen11_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y);
 void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 			  drm_intel_context *context,
 			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
index f324fbd7..adbd8124 100644
--- a/lib/rendercopy_gen9.c
+++ b/lib/rendercopy_gen9.c
@@ -50,23 +50,54 @@ struct {
 } viewport;
 
 /* see lib/i915/shaders/ps/blit.g7a */
-static const uint32_t ps_kernel[][4] = {
+static const uint32_t ps_kernel_gen9[][4] = {
 #if 1
-   { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
-   { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
-   { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
-   { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
+	{ 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 },
+	{ 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 },
+	{ 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 },
+	{ 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 },
 #else
-   /* Write all -1 */
-   { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
-   { 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
-   { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
+	/* Write all -1 */
+	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
+	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
+#endif
+};
+
+/* see lib/i915/shaders/ps/blit.g11a */
+static const uint32_t ps_kernel_gen11[][4] = {
+#if 1
+	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800404 },
+	{ 0x0060005b, 0x7100480c, 0x0722003b, 0x01880406 },
+	{ 0x0060005b, 0x2000c01c, 0x07206601, 0x01800408 },
+	{ 0x0060005b, 0x7200480c, 0x0722003b, 0x0188040a },
+	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00404 },
+	{ 0x0060005b, 0x7300480c, 0x0722003b, 0x01a80406 },
+	{ 0x0060005b, 0x2000c01c, 0x07206e01, 0x01a00408 },
+	{ 0x0060005b, 0x7400480c, 0x0722003b, 0x01a8040a },
+	{ 0x02800031, 0x21804a4c, 0x06000e20, 0x08840001 },
+	{ 0x00800001, 0x2e204b28, 0x008d0180, 0x00000000 },
+	{ 0x00800001, 0x2e604b28, 0x008d01c0, 0x00000000 },
+	{ 0x00800001, 0x2ea04b28, 0x008d0200, 0x00000000 },
+	{ 0x00800001, 0x2ee04b28, 0x008d0240, 0x00000000 },
+	{ 0x05800031, 0x20004a44, 0x06000e20, 0x90031000 },
+#else
+	/* Write all -1 */
+	{ 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e200608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e400608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e600608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2e800608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ea00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ec00608, 0x00000000, 0x3f800000 },
+	{ 0x00600001, 0x2ee00608, 0x00000000, 0x3f800000 },
+	{ 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 },
 #endif
 };
 
@@ -907,11 +938,14 @@ static void gen8_emit_primitive(struct intel_batchbuffer *batch, uint32_t offset
 
 #define BATCH_STATE_SPLIT 2048
 
-void gen9_render_copyfunc(struct intel_batchbuffer *batch,
+static
+void _gen9_render_copyfunc(struct intel_batchbuffer *batch,
 			  drm_intel_context *context,
-			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
-			  unsigned width, unsigned height,
-			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+			  const struct igt_buf *src, unsigned src_x,
+			  unsigned src_y, unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x,
+			  unsigned dst_y, const uint32_t ps_kernel[][4],
+			  uint32_t ps_kernel_size)
 {
 	uint32_t ps_sampler_state, ps_kernel_off, ps_binding_table;
 	uint32_t scissor_state;
@@ -928,7 +962,7 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 
 	ps_binding_table  = gen8_bind_surfaces(batch, src, dst);
 	ps_sampler_state  = gen8_create_sampler(batch);
-	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, sizeof(ps_kernel));
+	ps_kernel_off = gen8_fill_ps(batch, ps_kernel, ps_kernel_size);
 	vertex_buffer = gen7_fill_vertex_buffer_data(batch, src,
 						     src_x, src_y,
 						     dst_x, dst_y,
@@ -1014,3 +1048,27 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
 	gen6_render_flush(batch, context, batch_end);
 	intel_batchbuffer_reset(batch);
 }
+
+void gen9_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+
+{
+	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
+			  width, height, dst, dst_x, dst_y, ps_kernel_gen9,
+			  sizeof(ps_kernel_gen9));
+}
+
+void gen11_render_copyfunc(struct intel_batchbuffer *batch,
+			  drm_intel_context *context,
+			  const struct igt_buf *src, unsigned src_x, unsigned src_y,
+			  unsigned width, unsigned height,
+			  const struct igt_buf *dst, unsigned dst_x, unsigned dst_y)
+
+{
+	_gen9_render_copyfunc(batch, context, src, src_x, src_y,
+			  width, height, dst, dst_x, dst_y, ps_kernel_gen11,
+			  sizeof(ps_kernel_gen11));
+}
-- 
2.14.4

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for libs: Adding rendercopy support for gen11 (rev2)
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
                   ` (3 preceding siblings ...)
  2018-10-10 10:48 ` [igt-dev] [PATCH i-g-t v2] " Lukasz Kalamarz
@ 2018-10-10 11:45 ` Patchwork
  2018-10-10 15:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-10 11:45 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev

== Series Details ==

Series: libs: Adding rendercopy support for gen11 (rev2)
URL   : https://patchwork.freedesktop.org/series/50753/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4958 -> IGTPW_1931 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/50753/revisions/2/mbox/

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_hangcheck:
      fi-skl-guc:         PASS -> DMESG-FAIL (fdo#106685)

    igt@kms_chamelium@dp-crc-fast:
      fi-kbl-7500u:       PASS -> FAIL (fdo#103841) +2

    igt@kms_chamelium@dp-hpd-fast:
      fi-skl-6700k2:      SKIP -> FAIL (fdo#103841) +4

    igt@kms_chamelium@hdmi-crc-fast:
      fi-skl-6700k2:      PASS -> FAIL (fdo#103841) +3

    igt@kms_chamelium@vga-hpd-fast:
      fi-kbl-7500u:       SKIP -> FAIL (fdo#103841) +4

    
    ==== Possible fixes ====

    igt@kms_frontbuffer_tracking@basic:
      fi-byt-clapper:     FAIL (fdo#103167) -> PASS

    igt@pm_rpm@basic-pci-d3-state:
      fi-skl-6600u:       FAIL (fdo#107707) -> PASS

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         FAIL (fdo#104008) -> PASS

    
    ==== Warnings ====

    igt@kms_chamelium@common-hpd-after-suspend:
      fi-kbl-7500u:       DMESG-WARN (fdo#102505, fdo#105602, fdo#105079) -> FAIL (fdo#103841)

    
  fdo#102505 https://bugs.freedesktop.org/show_bug.cgi?id=102505
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105079 https://bugs.freedesktop.org/show_bug.cgi?id=105079
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#106685 https://bugs.freedesktop.org/show_bug.cgi?id=106685
  fdo#107707 https://bugs.freedesktop.org/show_bug.cgi?id=107707


== Participating hosts (48 -> 42) ==

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-u2 fi-ctg-p8600 


== Build changes ==

    * IGT: IGT_4672 -> IGTPW_1931

  CI_DRM_4958: 9990e1665029dc2ef4a9c0632b8a2f516263e595 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1931: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1931/
  IGT_4672: 4497591d2572831a9f07fd9e48a2571bfcffe354 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for libs: Adding rendercopy support for gen11 (rev2)
  2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
                   ` (4 preceding siblings ...)
  2018-10-10 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for libs: Adding rendercopy support for gen11 (rev2) Patchwork
@ 2018-10-10 15:11 ` Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-10-10 15:11 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev

== Series Details ==

Series: libs: Adding rendercopy support for gen11 (rev2)
URL   : https://patchwork.freedesktop.org/series/50753/
State : success

== Summary ==

= CI Bug Log - changes from IGT_4672_full -> IGTPW_1931_full =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/50753/revisions/2/mbox/

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_eio@reset-stress:
      shard-glk:          PASS -> INCOMPLETE (k.org#198133, fdo#103359) +1

    igt@gem_ppgtt@blt-vs-render-ctx0:
      shard-kbl:          PASS -> INCOMPLETE (fdo#106023, fdo#103665)

    igt@kms_cursor_crc@cursor-128x128-onscreen:
      shard-kbl:          PASS -> FAIL (fdo#103232)
      shard-glk:          PASS -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-256x85-onscreen:
      shard-apl:          PASS -> FAIL (fdo#103232) +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
      shard-kbl:          PASS -> FAIL (fdo#103167)

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
      shard-apl:          PASS -> FAIL (fdo#103167) +3

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
      shard-glk:          PASS -> FAIL (fdo#103167) +11

    igt@kms_plane@plane-position-covered-pipe-c-planes:
      shard-apl:          PASS -> FAIL (fdo#103166) +3

    {igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max}:
      shard-glk:          PASS -> FAIL (fdo#108145) +1
      shard-kbl:          PASS -> FAIL (fdo#108145)
      shard-apl:          PASS -> FAIL (fdo#108145)

    igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
      shard-glk:          PASS -> FAIL (fdo#103166) +3
      shard-kbl:          PASS -> FAIL (fdo#103166)

    
    ==== Possible fixes ====

    igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
      shard-hsw:          DMESG-WARN (fdo#107956) -> PASS

    igt@kms_cursor_crc@cursor-128x42-onscreen:
      shard-glk:          FAIL (fdo#103232) -> PASS +2
      shard-apl:          FAIL (fdo#103232) -> PASS +2

    igt@kms_cursor_crc@cursor-64x64-sliding:
      shard-kbl:          FAIL (fdo#103232) -> PASS

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-apl:          FAIL (fdo#103191, fdo#103232) -> PASS

    igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
      shard-hsw:          FAIL (fdo#105767) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
      shard-snb:          INCOMPLETE (fdo#105411) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
      shard-apl:          FAIL (fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
      shard-glk:          FAIL (fdo#103167) -> PASS +1

    {igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb}:
      shard-glk:          FAIL (fdo#108145) -> PASS

    igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
      shard-apl:          FAIL (fdo#103166) -> PASS +2

    igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
      shard-glk:          FAIL (fdo#103166) -> PASS +1

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

    
    ==== Warnings ====

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-glk:          INCOMPLETE (k.org#198133, fdo#103359) -> FAIL (fdo#103232)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105767 https://bugs.freedesktop.org/show_bug.cgi?id=105767
  fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
  fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
  fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
  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 (6 -> 5) ==

  Missing    (1): shard-skl 


== Build changes ==

    * IGT: IGT_4672 -> IGTPW_1931
    * Linux: CI_DRM_4952 -> CI_DRM_4958

  CI_DRM_4952: a62e43ba13605a478b22307ea1790d48aea029a6 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_4958: 9990e1665029dc2ef4a9c0632b8a2f516263e595 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1931: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1931/
  IGT_4672: 4497591d2572831a9f07fd9e48a2571bfcffe354 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* Re: [igt-dev] [PATCH i-g-t v2] libs: Adding rendercopy support for gen11
  2018-10-10 10:48 ` [igt-dev] [PATCH i-g-t v2] " Lukasz Kalamarz
@ 2018-10-11  8:33   ` Katarzyna Dec
  0 siblings, 0 replies; 8+ messages in thread
From: Katarzyna Dec @ 2018-10-11  8:33 UTC (permalink / raw)
  To: Lukasz Kalamarz; +Cc: igt-dev

On Wed, Oct 10, 2018 at 12:48:37PM +0200, Lukasz Kalamarz wrote:
> From: "Kalamarz, Lukasz" <lukasz.kalamarz@intel.com>
> 
> In Gen11 there were EU changes which was causing gem_render_copy test
> failing. Shader used in gen9 is no longer applicable for those change
 and it had to be aligned to gen11 changes. Only/s/main/?? difference is
shader, /* I have */ created a wrapper for gen9 function.
> 
> v2: Added gen11 shader source path next to it binary form
> 
> Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
> 
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
I would have change commit msg a little bit (see above), but it is not
blocking patch from merging. LGTM :)
Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com>

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

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

end of thread, other threads:[~2018-10-11  8:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-09 14:45 [igt-dev] [PATCH i-g-t] libs: Adding rendercopy support for gen11 Lukasz Kalamarz
2018-10-09 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-10-09 17:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-10-10  9:23 ` [igt-dev] [PATCH i-g-t] " Petri Latvala
2018-10-10 10:48 ` [igt-dev] [PATCH i-g-t v2] " Lukasz Kalamarz
2018-10-11  8:33   ` Katarzyna Dec
2018-10-10 11:45 ` [igt-dev] ✓ Fi.CI.BAT: success for libs: Adding rendercopy support for gen11 (rev2) Patchwork
2018-10-10 15:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox