* [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
@ 2022-11-16 10:37 Vikas Srivastava
2022-11-16 15:27 ` [igt-dev] ✓ Fi.CI.BAT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2) Patchwork
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Vikas Srivastava @ 2022-11-16 10:37 UTC (permalink / raw)
To: igt-dev
From: "Ye, Tony" <tony.ye@intel.com>
Stop using relocs and the legacy execbuf flags.
Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
---
lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
lib/huc_copy.h | 4 +++
lib/intel_batchbuffer.c | 8 +++--
3 files changed, 87 insertions(+), 2 deletions(-)
diff --git a/lib/huc_copy.c b/lib/huc_copy.c
index 6ec68864b..3b011a305 100644
--- a/lib/huc_copy.c
+++ b/lib/huc_copy.c
@@ -26,6 +26,8 @@
#include "drmtest.h"
#include "huc_copy.h"
#include "intel_allocator.h"
+#include "intel_ctx.h"
+#include "i915/gem_engine_topology.h"
static void
gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
@@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
gem_execbuf(fd, &execbuf);
}
+
+static void
+gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
+ struct drm_i915_gem_exec_object2 *dst,
+ uint32_t *buf,
+ int *i)
+{
+ buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
+
+ for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
+ if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
+ buf[(*i)++] = src->offset;
+ } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
+ buf[(*i)++] = dst->offset;
+ } else {
+ buf[(*i)++] = 0;
+ }
+ buf[(*i)++] = 0;
+ buf[(*i)++] = 0;
+ }
+}
+
+void
+gen12_huc_copyfunc(int fd, uint64_t ahnd,
+ struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
+{
+ struct drm_i915_gem_execbuffer2 execbuf;
+ int i = 0;
+ uint32_t buf[63];
+ const intel_ctx_t *ctx;
+
+ /* load huc kernel */
+ buf[i++] = HUC_IMEM_STATE;
+ buf[i++] = 0;
+ buf[i++] = 0;
+ buf[i++] = 0;
+ buf[i++] = 0x3;
+
+ buf[i++] = MFX_WAIT;
+ buf[i++] = MFX_WAIT;
+
+ buf[i++] = HUC_PIPE_MODE_SELECT;
+ buf[i++] = 0;
+ buf[i++] = 0;
+
+ buf[i++] = MFX_WAIT;
+
+ obj[0].offset = 0x200000;
+ obj[0].flags |= EXEC_OBJECT_PINNED;
+ obj[1].offset = 0x400000;
+ obj[1].flags |= EXEC_OBJECT_PINNED;
+ obj[1].flags |= EXEC_OBJECT_WRITE;
+ obj[2].offset = 0x600000;
+ obj[2].flags |= EXEC_OBJECT_PINNED;
+ gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
+
+ buf[i++] = HUC_START;
+ buf[i++] = 1;
+
+ buf[i++] = MI_BATCH_BUFFER_END;
+
+ gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
+
+ memset(&execbuf, 0, sizeof(execbuf));
+ execbuf.buffers_ptr = to_user_pointer(obj);
+ execbuf.buffer_count = 3;
+ execbuf.flags = I915_EXEC_DEFAULT;
+
+ ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
+ execbuf.rsvd1 = ctx->id;
+
+ gem_execbuf(fd, &execbuf);
+
+ intel_ctx_destroy(fd, ctx);
+}
diff --git a/lib/huc_copy.h b/lib/huc_copy.h
index 69d140933..e87e62c9c 100644
--- a/lib/huc_copy.h
+++ b/lib/huc_copy.h
@@ -46,4 +46,8 @@ void
gen9_huc_copyfunc(int fd, uint64_t ahnd,
struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
+void
+gen12_huc_copyfunc(int fd, uint64_t ahnd,
+ struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
+
#endif /* HUC_COPY_H */
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 19a1fbe4d..9a855a7f0 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
* Returns:
*
* The platform-specific huc copy function pointer for the device specified
- * with @devid. Will return NULL when no media spin function is implemented.
+ * with @devid. Will return NULL when no huc copy function is implemented.
*/
igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
{
igt_huc_copyfunc_t copy = NULL;
- if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
+ if (AT_LEAST_GEN(devid, 12))
+ copy = gen12_huc_copyfunc;
+ else if (IS_GEN11(devid) || IS_GEN9(devid))
copy = gen9_huc_copyfunc;
+ else
+ copy = NULL;
return copy;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2)
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
@ 2022-11-16 15:27 ` Patchwork
2022-11-16 21:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-11-16 15:27 UTC (permalink / raw)
To: Vikas Srivastava; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4625 bytes --]
== Series Details ==
Series: lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2)
URL : https://patchwork.freedesktop.org/series/110955/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12387 -> IGTPW_8115
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
Participating hosts (38 -> 40)
------------------------------
Additional (3): fi-hsw-4770 bat-kbl-2 bat-jsl-3
Missing (1): bat-dg1-6
Known issues
------------
Here are the changes found in IGTPW_8115 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_softpin@allocator-basic-reserve:
- fi-hsw-4770: NOTRUN -> [SKIP][1] ([fdo#109271]) +10 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/fi-hsw-4770/igt@gem_softpin@allocator-basic-reserve.html
* igt@i915_pm_backlight@basic-brightness:
- fi-hsw-4770: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#3012])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/fi-hsw-4770/igt@i915_pm_backlight@basic-brightness.html
* igt@kms_chamelium@dp-crc-fast:
- fi-hsw-4770: NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#111827]) +8 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/fi-hsw-4770/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1072]) +3 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html
#### Possible fixes ####
* igt@fbdev@read:
- {bat-rpls-2}: [SKIP][5] ([i915#2582]) -> [PASS][6] +4 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/bat-rpls-2/igt@fbdev@read.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/bat-rpls-2/igt@fbdev@read.html
* igt@gem_exec_gttfill@basic:
- fi-pnv-d510: [FAIL][7] ([i915#7229]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/fi-pnv-d510/igt@gem_exec_gttfill@basic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/fi-pnv-d510/igt@gem_exec_gttfill@basic.html
* igt@i915_selftest@live@hugepages:
- {bat-rpls-2}: [DMESG-WARN][9] ([i915#5278]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/bat-rpls-2/igt@i915_selftest@live@hugepages.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/bat-rpls-2/igt@i915_selftest@live@hugepages.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278
[i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7061 -> IGTPW_8115
CI-20190529: 20190529
CI_DRM_12387: 79ba9e9b1f528024b320900fa3e5e4e62b8301fb @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8115: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
IGT_7061: d16e679b99d43643c3a0bcc34ec4c4f001dbbbb4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
-igt@device_reset@cold-reset-bound
-igt@device_reset@unbind-cold-reset-rebind
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
[-- Attachment #2: Type: text/html, Size: 4854 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2)
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
2022-11-16 15:27 ` [igt-dev] ✓ Fi.CI.BAT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2) Patchwork
@ 2022-11-16 21:28 ` Patchwork
2022-11-17 15:52 ` [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Kamil Konieczny
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-11-16 21:28 UTC (permalink / raw)
To: Vikas Srivastava; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 38829 bytes --]
== Series Details ==
Series: lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2)
URL : https://patchwork.freedesktop.org/series/110955/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12387_full -> IGTPW_8115_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
Participating hosts (9 -> 8)
------------------------------
Additional (2): shard-rkl shard-dg1
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
Known issues
------------
Here are the changes found in IGTPW_8115_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_create@create-massive:
- shard-tglb: NOTRUN -> [DMESG-WARN][1] ([i915#4991])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@gem_create@create-massive.html
* igt@gem_ctx_param@set-priority-not-supported:
- shard-tglb: NOTRUN -> [SKIP][2] ([fdo#109314])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb3/igt@gem_ctx_param@set-priority-not-supported.html
- shard-iclb: NOTRUN -> [SKIP][3] ([fdo#109314])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb8/igt@gem_ctx_param@set-priority-not-supported.html
* igt@gem_ctx_persistence@engines-hang@rcs0:
- shard-apl: [PASS][4] -> [FAIL][5] ([i915#2410])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl6/igt@gem_ctx_persistence@engines-hang@rcs0.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl2/igt@gem_ctx_persistence@engines-hang@rcs0.html
* igt@gem_ctx_persistence@many-contexts:
- shard-tglb: NOTRUN -> [FAIL][6] ([i915#2410])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb3/igt@gem_ctx_persistence@many-contexts.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#2846])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk1/igt@gem_exec_fair@basic-deadline.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk3/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-tglb: [PASS][9] -> [FAIL][10] ([i915#2842]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb6/igt@gem_exec_fair@basic-pace@rcs0.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb2/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][11] ([i915#2842])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb1/igt@gem_exec_fair@basic-pace@vcs1.html
* igt@gem_lmem_swapping@verify-random-ccs:
- shard-apl: NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#4613])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl6/igt@gem_lmem_swapping@verify-random-ccs.html
- shard-tglb: NOTRUN -> [SKIP][13] ([i915#4613]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb7/igt@gem_lmem_swapping@verify-random-ccs.html
- shard-glk: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#4613]) +1 similar issue
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk9/igt@gem_lmem_swapping@verify-random-ccs.html
- shard-iclb: NOTRUN -> [SKIP][15] ([i915#4613])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb5/igt@gem_lmem_swapping@verify-random-ccs.html
* igt@gem_pxp@create-regular-context-1:
- shard-iclb: NOTRUN -> [SKIP][16] ([i915#4270])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb6/igt@gem_pxp@create-regular-context-1.html
- shard-tglb: NOTRUN -> [SKIP][17] ([i915#4270])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@gem_pxp@create-regular-context-1.html
* igt@gem_render_copy@x-tiled-to-vebox-y-tiled:
- shard-iclb: NOTRUN -> [SKIP][18] ([i915#768]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb6/igt@gem_render_copy@x-tiled-to-vebox-y-tiled.html
* igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
- shard-apl: NOTRUN -> [SKIP][19] ([fdo#109271]) +92 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl3/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
* igt@gem_softpin@evict-single-offset:
- shard-tglb: [PASS][20] -> [FAIL][21] ([i915#4171])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb3/igt@gem_softpin@evict-single-offset.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb3/igt@gem_softpin@evict-single-offset.html
* igt@gen7_exec_parse@oacontrol-tracking:
- shard-tglb: NOTRUN -> [SKIP][22] ([fdo#109289])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@gen7_exec_parse@oacontrol-tracking.html
- shard-iclb: NOTRUN -> [SKIP][23] ([fdo#109289])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb3/igt@gen7_exec_parse@oacontrol-tracking.html
* igt@gen9_exec_parse@batch-zero-length:
- shard-tglb: NOTRUN -> [SKIP][24] ([i915#2527] / [i915#2856])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb2/igt@gen9_exec_parse@batch-zero-length.html
- shard-iclb: NOTRUN -> [SKIP][25] ([i915#2856])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@gen9_exec_parse@batch-zero-length.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: NOTRUN -> [WARN][26] ([i915#2684])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html
- shard-tglb: NOTRUN -> [WARN][27] ([i915#2681])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb2/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@i915_selftest@live@hangcheck:
- shard-tglb: [PASS][28] -> [DMESG-WARN][29] ([i915#5591])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb8/igt@i915_selftest@live@hangcheck.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@i915_selftest@live@hangcheck.html
* igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
- shard-tglb: NOTRUN -> [SKIP][30] ([i915#5286])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html
- shard-iclb: NOTRUN -> [SKIP][31] ([i915#5286])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb8/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-270:
- shard-iclb: NOTRUN -> [SKIP][32] ([fdo#110725] / [fdo#111614]) +1 similar issue
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb3/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
- shard-tglb: NOTRUN -> [SKIP][33] ([fdo#111614]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb7/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-180:
- shard-iclb: NOTRUN -> [SKIP][34] ([fdo#110723])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb1/igt@kms_big_fb@yf-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][35] ([fdo#111615]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html
* igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#3886]) +3 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk1/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][37] ([i915#6095]) +2 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][38] ([i915#3689] / [i915#6095]) +1 similar issue
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3886]) +3 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl8/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][40] ([i915#3689] / [i915#3886])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
- shard-iclb: NOTRUN -> [SKIP][41] ([fdo#109278] / [i915#3886])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-bad-pixel-format-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][42] ([i915#3689]) +1 similar issue
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_ccs@pipe-d-bad-pixel-format-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
- shard-iclb: NOTRUN -> [SKIP][43] ([fdo#109278]) +3 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb6/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
* igt@kms_chamelium@dp-hpd-storm:
- shard-snb: NOTRUN -> [SKIP][44] ([fdo#109271] / [fdo#111827])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-snb7/igt@kms_chamelium@dp-hpd-storm.html
- shard-iclb: NOTRUN -> [SKIP][45] ([fdo#109284] / [fdo#111827])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb8/igt@kms_chamelium@dp-hpd-storm.html
* igt@kms_chamelium@hdmi-audio-edid:
- shard-tglb: NOTRUN -> [SKIP][46] ([fdo#109284] / [fdo#111827]) +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb5/igt@kms_chamelium@hdmi-audio-edid.html
* igt@kms_chamelium@hdmi-crc-nonplanar-formats:
- shard-glk: NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +1 similar issue
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk7/igt@kms_chamelium@hdmi-crc-nonplanar-formats.html
* igt@kms_chamelium@hdmi-hpd-for-each-pipe:
- shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +4 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl8/igt@kms_chamelium@hdmi-hpd-for-each-pipe.html
* igt@kms_color@ctm-0-25@pipe-b-edp-1:
- shard-iclb: NOTRUN -> [FAIL][49] ([i915#315] / [i915#6946]) +2 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb6/igt@kms_color@ctm-0-25@pipe-b-edp-1.html
* igt@kms_color@ctm-0-25@pipe-c-edp-1:
- shard-tglb: NOTRUN -> [FAIL][50] ([i915#315] / [i915#6946]) +3 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_color@ctm-0-25@pipe-c-edp-1.html
* igt@kms_content_protection@atomic-dpms:
- shard-snb: NOTRUN -> [SKIP][51] ([fdo#109271]) +54 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-snb7/igt@kms_content_protection@atomic-dpms.html
- shard-tglb: NOTRUN -> [SKIP][52] ([i915#7118])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb3/igt@kms_content_protection@atomic-dpms.html
- shard-iclb: NOTRUN -> [SKIP][53] ([i915#7118])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb8/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-1:
- shard-apl: NOTRUN -> [TIMEOUT][54] ([i915#7173])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl1/igt@kms_content_protection@atomic-dpms@pipe-a-dp-1.html
* igt@kms_cursor_crc@cursor-onscreen-max-size:
- shard-iclb: NOTRUN -> [SKIP][55] ([i915#3555]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_cursor_crc@cursor-onscreen-max-size.html
- shard-tglb: NOTRUN -> [SKIP][56] ([i915#3555])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb2/igt@kms_cursor_crc@cursor-onscreen-max-size.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [PASS][57] -> [FAIL][58] ([i915#2346]) +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@2x-busy-flip:
- shard-tglb: NOTRUN -> [SKIP][59] ([fdo#109274] / [fdo#111825] / [i915#3637])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@kms_flip@2x-busy-flip.html
* igt@kms_flip@flip-vs-suspend@b-dp1:
- shard-apl: [PASS][60] -> [DMESG-WARN][61] ([i915#180]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl8/igt@kms_flip@flip-vs-suspend@b-dp1.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl6/igt@kms_flip@flip-vs-suspend@b-dp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
- shard-iclb: NOTRUN -> [SKIP][62] ([i915#2587] / [i915#2672]) +4 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode:
- shard-tglb: NOTRUN -> [SKIP][63] ([i915#2587] / [i915#2672])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][64] ([i915#2672]) +3 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt:
- shard-tglb: NOTRUN -> [SKIP][65] ([fdo#109280] / [fdo#111825]) +15 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt:
- shard-tglb: NOTRUN -> [SKIP][66] ([i915#6497]) +1 similar issue
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-glk: NOTRUN -> [SKIP][67] ([fdo#109271]) +70 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk6/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw:
- shard-iclb: NOTRUN -> [SKIP][68] ([fdo#109280]) +8 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw.html
* igt@kms_invalid_mode@clock-too-high@edp-1-pipe-d:
- shard-tglb: NOTRUN -> [SKIP][69] ([i915#6403]) +3 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@kms_invalid_mode@clock-too-high@edp-1-pipe-d.html
* igt@kms_plane_lowres@tiling-y@pipe-c-edp-1:
- shard-tglb: NOTRUN -> [SKIP][70] ([i915#3536]) +3 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb2/igt@kms_plane_lowres@tiling-y@pipe-c-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1:
- shard-tglb: NOTRUN -> [SKIP][71] ([i915#5235]) +3 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html
- shard-iclb: NOTRUN -> [SKIP][72] ([i915#5235]) +2 similar issues
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1:
- shard-iclb: [PASS][73] -> [SKIP][74] ([i915#5235]) +2 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-glk: NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#658]) +1 similar issue
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk6/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][76] -> [SKIP][77] ([fdo#109441]) +3 similar issues
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb3/igt@kms_psr@psr2_cursor_blt.html
* igt@kms_psr@psr2_primary_render:
- shard-tglb: NOTRUN -> [FAIL][78] ([i915#132] / [i915#3467])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb8/igt@kms_psr@psr2_primary_render.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-iclb: [PASS][79] -> [SKIP][80] ([i915#5519])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb1/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@multiplane-rotation-cropping-top:
- shard-glk: [PASS][81] -> [DMESG-FAIL][82] ([i915#118])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk3/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk5/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
* igt@prime_udl:
- shard-tglb: NOTRUN -> [SKIP][83] ([fdo#109291])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@prime_udl.html
- shard-iclb: NOTRUN -> [SKIP][84] ([fdo#109291])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb7/igt@prime_udl.html
* igt@sysfs_clients@recycle-many:
- shard-apl: NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#2994])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl3/igt@sysfs_clients@recycle-many.html
#### Possible fixes ####
* igt@gem_exec_balancer@parallel-contexts:
- shard-iclb: [SKIP][86] ([i915#4525]) -> [PASS][87] +1 similar issue
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [FAIL][88] ([i915#2842]) -> [PASS][89] +1 similar issue
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb8/igt@gem_exec_fair@basic-flow@rcs0.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb8/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-apl: [FAIL][90] ([i915#2842]) -> [PASS][91]
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-glk: [FAIL][92] ([i915#2842]) -> [PASS][93] +1 similar issue
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk2/igt@gem_exec_fair@basic-pace@rcs0.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk8/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_whisper@basic-fds-forked-all:
- shard-tglb: [INCOMPLETE][94] -> [PASS][95]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb1/igt@gem_exec_whisper@basic-fds-forked-all.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@gem_exec_whisper@basic-fds-forked-all.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [FAIL][96] ([i915#3989] / [i915#454]) -> [PASS][97]
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb5/igt@i915_pm_dc@dc6-psr.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb7/igt@i915_pm_dc@dc6-psr.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][98] ([i915#79]) -> [PASS][99] +1 similar issue
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-apl: [DMESG-WARN][100] ([i915#180]) -> [PASS][101]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl8/igt@kms_flip@flip-vs-suspend@c-dp1.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl6/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_psr@psr2_basic:
- shard-iclb: [SKIP][102] ([fdo#109441]) -> [PASS][103] +1 similar issue
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb6/igt@kms_psr@psr2_basic.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_psr@psr2_basic.html
#### Warnings ####
* igt@gem_exec_fair@basic-none@rcs0:
- shard-tglb: [FAIL][104] ([i915#2842]) -> [SKIP][105] ([i915#2848])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-tglb3/igt@gem_exec_fair@basic-none@rcs0.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-tglb6/igt@gem_exec_fair@basic-none@rcs0.html
* igt@gem_pread@exhaustion:
- shard-apl: [WARN][106] ([i915#2658]) -> [INCOMPLETE][107] ([i915#7248]) +1 similar issue
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl2/igt@gem_pread@exhaustion.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl1/igt@gem_pread@exhaustion.html
- shard-glk: [WARN][108] ([i915#2658]) -> [INCOMPLETE][109] ([i915#7248]) +1 similar issue
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-glk9/igt@gem_pread@exhaustion.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-glk7/igt@gem_pread@exhaustion.html
* igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1:
- shard-apl: [FAIL][110] ([i915#4573]) -> [DMESG-FAIL][111] ([IGT#6]) +1 similar issue
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-apl7/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-apl3/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-iclb: [SKIP][112] ([fdo#111068] / [i915#658]) -> [SKIP][113] ([i915#2920])
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb8/igt@kms_psr2_sf@cursor-plane-update-sf.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-iclb: [SKIP][114] ([i915#658]) -> [SKIP][115] ([i915#2920])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb6/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
- shard-iclb: [SKIP][116] ([i915#2920]) -> [SKIP][117] ([i915#658])
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12387/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/shard-iclb3/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2848]: https://gitlab.freedesktop.org/drm/intel/issues/2848
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
[i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
[i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[i915#6403]: https://gitlab.freedesktop.org/drm/intel/issues/6403
[i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
[i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
[i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
[i915#7468]: https://gitlab.freedesktop.org/drm/intel/issues/7468
[i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7061 -> IGTPW_8115
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12387: 79ba9e9b1f528024b320900fa3e5e4e62b8301fb @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8115: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
IGT_7061: d16e679b99d43643c3a0bcc34ec4c4f001dbbbb4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8115/index.html
[-- Attachment #2: Type: text/html, Size: 37537 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
2022-11-16 15:27 ` [igt-dev] ✓ Fi.CI.BAT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2) Patchwork
2022-11-16 21:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2022-11-17 15:52 ` Kamil Konieczny
2022-11-18 18:25 ` Ye, Tony
2022-11-23 13:02 ` Kamil Konieczny
2022-11-29 9:57 ` Kamil Konieczny
4 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2022-11-17 15:52 UTC (permalink / raw)
To: igt-dev
Hi,
please change subject of this commit, there are no changes
in old huc_copy in this patch. Also remove dot from end of
the Subject: line, s/platforms./platforms/
On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
> From: "Ye, Tony" <tony.ye@intel.com>
>
> Stop using relocs and the legacy execbuf flags.
You should put here a little more explanation, as I see this it
is rather
Add new huc_copy for gen12+ with no-relocs and no legacy flags
and there are no changes in old code (except for adding that
AT_LEAST_GEN(12)).
>
> Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
>
> ---
> lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
> lib/huc_copy.h | 4 +++
> lib/intel_batchbuffer.c | 8 +++--
> 3 files changed, 87 insertions(+), 2 deletions(-)
>
> diff --git a/lib/huc_copy.c b/lib/huc_copy.c
> index 6ec68864b..3b011a305 100644
> --- a/lib/huc_copy.c
> +++ b/lib/huc_copy.c
> @@ -26,6 +26,8 @@
> #include "drmtest.h"
> #include "huc_copy.h"
> #include "intel_allocator.h"
> +#include "intel_ctx.h"
> +#include "i915/gem_engine_topology.h"
>
> static void
> gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
>
> gem_execbuf(fd, &execbuf);
> }
> +
> +static void
> +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> + struct drm_i915_gem_exec_object2 *dst,
> + uint32_t *buf,
> + int *i)
> +{
> + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
> +
> + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
> + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
> + buf[(*i)++] = src->offset;
Addr is 48-bit and here we copy only lower 32-bit,
this may work with relocs but not with pinned addresses.
> + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
> + buf[(*i)++] = dst->offset;
Same here.
> + } else {
> + buf[(*i)++] = 0;
> + }
> + buf[(*i)++] = 0;
> + buf[(*i)++] = 0;
> + }
> +}
> +
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
> +{
> + struct drm_i915_gem_execbuffer2 execbuf;
> + int i = 0;
> + uint32_t buf[63];
> + const intel_ctx_t *ctx;
> +
> + /* load huc kernel */
> + buf[i++] = HUC_IMEM_STATE;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0x3;
> +
> + buf[i++] = MFX_WAIT;
> + buf[i++] = MFX_WAIT;
> +
> + buf[i++] = HUC_PIPE_MODE_SELECT;
> + buf[i++] = 0;
> + buf[i++] = 0;
> +
> + buf[i++] = MFX_WAIT;
> +
> + obj[0].offset = 0x200000;
----------------------- ^
Use ahnd as in gen9_huc_copy (without reloc code).
> + obj[0].flags |= EXEC_OBJECT_PINNED;
Add also:
| EXEC_OBJECT_SUPPORTS_48B_ADDRESS
> + obj[1].offset = 0x400000;
Same here.
> + obj[1].flags |= EXEC_OBJECT_PINNED;
> + obj[1].flags |= EXEC_OBJECT_WRITE;
Add also
| EXEC_OBJECT_SUPPORTS_48B_ADDRESS
and maybe make it one bit-or like:
obj[1].flags |= EXEC_OBJECT_PINNED | EXEC_OBJECT_WRITE |
EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
> + obj[2].offset = 0x600000;
Same here.
> + obj[2].flags |= EXEC_OBJECT_PINNED;
Same here (48-bit).
Regards,
Kamil
> + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
> +
> + buf[i++] = HUC_START;
> + buf[i++] = 1;
> +
> + buf[i++] = MI_BATCH_BUFFER_END;
> +
> + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
> +
> + memset(&execbuf, 0, sizeof(execbuf));
> + execbuf.buffers_ptr = to_user_pointer(obj);
> + execbuf.buffer_count = 3;
> + execbuf.flags = I915_EXEC_DEFAULT;
> +
> + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
> + execbuf.rsvd1 = ctx->id;
> +
> + gem_execbuf(fd, &execbuf);
> +
> + intel_ctx_destroy(fd, ctx);
> +}
> diff --git a/lib/huc_copy.h b/lib/huc_copy.h
> index 69d140933..e87e62c9c 100644
> --- a/lib/huc_copy.h
> +++ b/lib/huc_copy.h
> @@ -46,4 +46,8 @@ void
> gen9_huc_copyfunc(int fd, uint64_t ahnd,
> struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
>
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> +
> #endif /* HUC_COPY_H */
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 19a1fbe4d..9a855a7f0 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
> * Returns:
> *
> * The platform-specific huc copy function pointer for the device specified
> - * with @devid. Will return NULL when no media spin function is implemented.
> + * with @devid. Will return NULL when no huc copy function is implemented.
> */
> igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
> {
> igt_huc_copyfunc_t copy = NULL;
>
> - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
> + if (AT_LEAST_GEN(devid, 12))
> + copy = gen12_huc_copyfunc;
> + else if (IS_GEN11(devid) || IS_GEN9(devid))
> copy = gen9_huc_copyfunc;
> + else
> + copy = NULL;
>
> return copy;
> }
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-17 15:52 ` [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Kamil Konieczny
@ 2022-11-18 18:25 ` Ye, Tony
2022-11-21 13:50 ` Kamil Konieczny
2022-11-24 12:17 ` Zbigniew Kempczyński
0 siblings, 2 replies; 9+ messages in thread
From: Ye, Tony @ 2022-11-18 18:25 UTC (permalink / raw)
To: Kamil Konieczny, igt-dev, Vikas Srivastava,
Daniele Ceraolo Spurio, Priyanka Dandamudi
On 11/17/2022 7:52 AM, Kamil Konieczny wrote:
> Hi,
>
> please change subject of this commit, there are no changes
> in old huc_copy in this patch. Also remove dot from end of
> the Subject: line, s/platforms./platforms/
>
> On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
>> From: "Ye, Tony" <tony.ye@intel.com>
>>
>> Stop using relocs and the legacy execbuf flags.
> You should put here a little more explanation, as I see this it
> is rather
>
> Add new huc_copy for gen12+ with no-relocs and no legacy flags
>
> and there are no changes in old code (except for adding that
> AT_LEAST_GEN(12)).
The patch is to switch to softpin from relocations in the huc_copy test
on Gen12+. The old platforms stay with relocations. See the change in
the igt_get_huc_copyfunc function.
>
>> Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
>> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
>> Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
>>
>> ---
>> lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
>> lib/huc_copy.h | 4 +++
>> lib/intel_batchbuffer.c | 8 +++--
>> 3 files changed, 87 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/huc_copy.c b/lib/huc_copy.c
>> index 6ec68864b..3b011a305 100644
>> --- a/lib/huc_copy.c
>> +++ b/lib/huc_copy.c
>> @@ -26,6 +26,8 @@
>> #include "drmtest.h"
>> #include "huc_copy.h"
>> #include "intel_allocator.h"
>> +#include "intel_ctx.h"
>> +#include "i915/gem_engine_topology.h"
>>
>> static void
>> gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
>> @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
>>
>> gem_execbuf(fd, &execbuf);
>> }
>> +
>> +static void
>> +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
>> + struct drm_i915_gem_exec_object2 *dst,
>> + uint32_t *buf,
>> + int *i)
>> +{
>> + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
>> +
>> + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
>> + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
>> + buf[(*i)++] = src->offset;
> Addr is 48-bit and here we copy only lower 32-bit,
> this may work with relocs but not with pinned addresses.
The test only uses 3 addresses: 2M, 4M, 6M. So 48b flag is not set and
we only copy the lower 32 bits.
>
>> + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
>> + buf[(*i)++] = dst->offset;
> Same here.
>
>> + } else {
>> + buf[(*i)++] = 0;
>> + }
>> + buf[(*i)++] = 0;
>> + buf[(*i)++] = 0;
>> + }
>> +}
>> +
>> +void
>> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
>> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
>> +{
>> + struct drm_i915_gem_execbuffer2 execbuf;
>> + int i = 0;
>> + uint32_t buf[63];
>> + const intel_ctx_t *ctx;
>> +
>> + /* load huc kernel */
>> + buf[i++] = HUC_IMEM_STATE;
>> + buf[i++] = 0;
>> + buf[i++] = 0;
>> + buf[i++] = 0;
>> + buf[i++] = 0x3;
>> +
>> + buf[i++] = MFX_WAIT;
>> + buf[i++] = MFX_WAIT;
>> +
>> + buf[i++] = HUC_PIPE_MODE_SELECT;
>> + buf[i++] = 0;
>> + buf[i++] = 0;
>> +
>> + buf[i++] = MFX_WAIT;
>> +
>> + obj[0].offset = 0x200000;
> ----------------------- ^
> Use ahnd as in gen9_huc_copy (without reloc code).
The code here is simply assigning a graphics virtual address to the
source buffer object.
>> + obj[0].flags |= EXEC_OBJECT_PINNED;
> Add also:
> | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
As explained above, we don't need 48b address.
>
>> + obj[1].offset = 0x400000;
> Same here.
>
>> + obj[1].flags |= EXEC_OBJECT_PINNED;
>> + obj[1].flags |= EXEC_OBJECT_WRITE;
> Add also
> | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
>
> and maybe make it one bit-or like:
> obj[1].flags |= EXEC_OBJECT_PINNED | EXEC_OBJECT_WRITE |
> EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
>
>> + obj[2].offset = 0x600000;
> Same here.
>
>> + obj[2].flags |= EXEC_OBJECT_PINNED;
> Same here (48-bit).
>
> Regards,
> Kamil
>
>> + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
>> +
>> + buf[i++] = HUC_START;
>> + buf[i++] = 1;
>> +
>> + buf[i++] = MI_BATCH_BUFFER_END;
>> +
>> + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
>> +
>> + memset(&execbuf, 0, sizeof(execbuf));
>> + execbuf.buffers_ptr = to_user_pointer(obj);
>> + execbuf.buffer_count = 3;
>> + execbuf.flags = I915_EXEC_DEFAULT;
>> +
>> + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
>> + execbuf.rsvd1 = ctx->id;
>> +
>> + gem_execbuf(fd, &execbuf);
>> +
>> + intel_ctx_destroy(fd, ctx);
>> +}
>> diff --git a/lib/huc_copy.h b/lib/huc_copy.h
>> index 69d140933..e87e62c9c 100644
>> --- a/lib/huc_copy.h
>> +++ b/lib/huc_copy.h
>> @@ -46,4 +46,8 @@ void
>> gen9_huc_copyfunc(int fd, uint64_t ahnd,
>> struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
>>
>> +void
>> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
>> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
>> +
>> #endif /* HUC_COPY_H */
>> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
>> index 19a1fbe4d..9a855a7f0 100644
>> --- a/lib/intel_batchbuffer.c
>> +++ b/lib/intel_batchbuffer.c
>> @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
>> * Returns:
>> *
>> * The platform-specific huc copy function pointer for the device specified
>> - * with @devid. Will return NULL when no media spin function is implemented.
>> + * with @devid. Will return NULL when no huc copy function is implemented.
>> */
>> igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
>> {
>> igt_huc_copyfunc_t copy = NULL;
>>
>> - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
>> + if (AT_LEAST_GEN(devid, 12))
>> + copy = gen12_huc_copyfunc;
As mentioned above, we switch to softpin on Gen12+ and stay with old
func on earlier platforms.
Thanks,
Tony
>> + else if (IS_GEN11(devid) || IS_GEN9(devid))
>> copy = gen9_huc_copyfunc;
>> + else
>> + copy = NULL;
>>
>> return copy;
>> }
>> --
>> 2.25.1
>>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-18 18:25 ` Ye, Tony
@ 2022-11-21 13:50 ` Kamil Konieczny
2022-11-24 12:17 ` Zbigniew Kempczyński
1 sibling, 0 replies; 9+ messages in thread
From: Kamil Konieczny @ 2022-11-21 13:50 UTC (permalink / raw)
To: igt-dev
Hi Tony,
On 2022-11-18 at 10:25:40 -0800, Ye, Tony wrote:
>
> On 11/17/2022 7:52 AM, Kamil Konieczny wrote:
> > Hi,
> >
> > please change subject of this commit, there are no changes
> > in old huc_copy in this patch. Also remove dot from end of
> > the Subject: line, s/platforms./platforms/
> >
> > On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
> > > From: "Ye, Tony" <tony.ye@intel.com>
> > >
> > > Stop using relocs and the legacy execbuf flags.
> > You should put here a little more explanation, as I see this it
> > is rather
> >
> > Add new huc_copy for gen12+ with no-relocs and no legacy flags
> >
> > and there are no changes in old code (except for adding that
> > AT_LEAST_GEN(12)).
>
> The patch is to switch to softpin from relocations in the huc_copy test on
> Gen12+. The old platforms stay with relocations. See the change in the
> igt_get_huc_copyfunc function.
Thank you for explanation, it was not clear from commit message,
so maybe Vikas will add more explanations here.
>
>
> >
> > > Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
> > > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > > Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
> > >
> > > ---
> > > lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
> > > lib/huc_copy.h | 4 +++
> > > lib/intel_batchbuffer.c | 8 +++--
> > > 3 files changed, 87 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/lib/huc_copy.c b/lib/huc_copy.c
> > > index 6ec68864b..3b011a305 100644
> > > --- a/lib/huc_copy.c
> > > +++ b/lib/huc_copy.c
> > > @@ -26,6 +26,8 @@
> > > #include "drmtest.h"
> > > #include "huc_copy.h"
> > > #include "intel_allocator.h"
> > > +#include "intel_ctx.h"
> > > +#include "i915/gem_engine_topology.h"
> > > static void
> > > gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> > > @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
> > > gem_execbuf(fd, &execbuf);
> > > }
> > > +
> > > +static void
> > > +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> > > + struct drm_i915_gem_exec_object2 *dst,
> > > + uint32_t *buf,
> > > + int *i)
> > > +{
> > > + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
> > > +
> > > + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
> > > + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
> > > + buf[(*i)++] = src->offset;
> > Addr is 48-bit and here we copy only lower 32-bit,
> > this may work with relocs but not with pinned addresses.
>
>
> The test only uses 3 addresses: 2M, 4M, 6M. So 48b flag is not set and we
> only copy the lower 32 bits.
I see, so here we do some simplification.
imho here we should add some asserts to be sure it is 32-bit
or even more, addr + size <= 32-bit.
>
>
> >
> > > + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
> > > + buf[(*i)++] = dst->offset;
> > Same here.
> >
> > > + } else {
> > > + buf[(*i)++] = 0;
> > > + }
> > > + buf[(*i)++] = 0;
> > > + buf[(*i)++] = 0;
> > > + }
> > > +}
> > > +
> > > +void
> > > +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> > > + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
> > > +{
> > > + struct drm_i915_gem_execbuffer2 execbuf;
> > > + int i = 0;
> > > + uint32_t buf[63];
> > > + const intel_ctx_t *ctx;
> > > +
> > > + /* load huc kernel */
> > > + buf[i++] = HUC_IMEM_STATE;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0x3;
> > > +
> > > + buf[i++] = MFX_WAIT;
> > > + buf[i++] = MFX_WAIT;
> > > +
> > > + buf[i++] = HUC_PIPE_MODE_SELECT;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > +
> > > + buf[i++] = MFX_WAIT;
> > > +
> > > + obj[0].offset = 0x200000;
> > ----------------------- ^
> > Use ahnd as in gen9_huc_copy (without reloc code).
>
>
> The code here is simply assigning a graphics virtual address to the source
> buffer object.
>
>
Why not just copy code from gen9 into gen12 with some
modifications ?
> > > + obj[0].flags |= EXEC_OBJECT_PINNED;
> > Add also:
> > | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
>
> As explained above, we don't need 48b address.
>
>
> >
> > > + obj[1].offset = 0x400000;
> > Same here.
> >
> > > + obj[1].flags |= EXEC_OBJECT_PINNED;
> > > + obj[1].flags |= EXEC_OBJECT_WRITE;
> > Add also
> > | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
> >
> > and maybe make it one bit-or like:
> > obj[1].flags |= EXEC_OBJECT_PINNED | EXEC_OBJECT_WRITE |
> > EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
> >
> > > + obj[2].offset = 0x600000;
> > Same here.
> >
> > > + obj[2].flags |= EXEC_OBJECT_PINNED;
> > Same here (48-bit).
> >
> > Regards,
> > Kamil
> >
> > > + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
> > > +
> > > + buf[i++] = HUC_START;
> > > + buf[i++] = 1;
> > > +
> > > + buf[i++] = MI_BATCH_BUFFER_END;
> > > +
> > > + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
> > > +
> > > + memset(&execbuf, 0, sizeof(execbuf));
> > > + execbuf.buffers_ptr = to_user_pointer(obj);
> > > + execbuf.buffer_count = 3;
> > > + execbuf.flags = I915_EXEC_DEFAULT;
> > > +
> > > + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
> > > + execbuf.rsvd1 = ctx->id;
> > > +
> > > + gem_execbuf(fd, &execbuf);
> > > +
> > > + intel_ctx_destroy(fd, ctx);
> > > +}
> > > diff --git a/lib/huc_copy.h b/lib/huc_copy.h
> > > index 69d140933..e87e62c9c 100644
> > > --- a/lib/huc_copy.h
> > > +++ b/lib/huc_copy.h
> > > @@ -46,4 +46,8 @@ void
> > > gen9_huc_copyfunc(int fd, uint64_t ahnd,
> > > struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> > > +void
> > > +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> > > + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> > > +
I spotted one more problem, the objsize[0] (and indexes 1, 2)
are not used here, if we want to use 2M addresses with size 2M
we should also assert objsize[i] <= 2M for i=0,1
For now tests uses only 4K but this is library function so we
should play safe.
Regards,
Kamil
> > > #endif /* HUC_COPY_H */
> > > diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> > > index 19a1fbe4d..9a855a7f0 100644
> > > --- a/lib/intel_batchbuffer.c
> > > +++ b/lib/intel_batchbuffer.c
> > > @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
> > > * Returns:
> > > *
> > > * The platform-specific huc copy function pointer for the device specified
> > > - * with @devid. Will return NULL when no media spin function is implemented.
> > > + * with @devid. Will return NULL when no huc copy function is implemented.
> > > */
> > > igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
> > > {
> > > igt_huc_copyfunc_t copy = NULL;
> > > - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
> > > + if (AT_LEAST_GEN(devid, 12))
> > > + copy = gen12_huc_copyfunc;
>
> As mentioned above, we switch to softpin on Gen12+ and stay with old func on
> earlier platforms.
>
> Thanks,
> Tony
>
>
> > > + else if (IS_GEN11(devid) || IS_GEN9(devid))
> > > copy = gen9_huc_copyfunc;
> > > + else
> > > + copy = NULL;
> > > return copy;
> > > }
> > > --
> > > 2.25.1
> > >
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
` (2 preceding siblings ...)
2022-11-17 15:52 ` [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Kamil Konieczny
@ 2022-11-23 13:02 ` Kamil Konieczny
2022-11-29 9:57 ` Kamil Konieczny
4 siblings, 0 replies; 9+ messages in thread
From: Kamil Konieczny @ 2022-11-23 13:02 UTC (permalink / raw)
To: igt-dev
Hi,
On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
> From: "Ye, Tony" <tony.ye@intel.com>
>
> Stop using relocs and the legacy execbuf flags.
>
> Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
>
> ---
> lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
> lib/huc_copy.h | 4 +++
> lib/intel_batchbuffer.c | 8 +++--
> 3 files changed, 87 insertions(+), 2 deletions(-)
>
> diff --git a/lib/huc_copy.c b/lib/huc_copy.c
> index 6ec68864b..3b011a305 100644
> --- a/lib/huc_copy.c
> +++ b/lib/huc_copy.c
> @@ -26,6 +26,8 @@
> #include "drmtest.h"
> #include "huc_copy.h"
> #include "intel_allocator.h"
> +#include "intel_ctx.h"
> +#include "i915/gem_engine_topology.h"
>
> static void
> gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
>
> gem_execbuf(fd, &execbuf);
> }
> +
> +static void
> +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> + struct drm_i915_gem_exec_object2 *dst,
> + uint32_t *buf,
> + int *i)
> +{
> + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
> +
> + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
> + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
> + buf[(*i)++] = src->offset;
> + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
> + buf[(*i)++] = dst->offset;
> + } else {
> + buf[(*i)++] = 0;
> + }
> + buf[(*i)++] = 0;
> + buf[(*i)++] = 0;
> + }
> +}
> +
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
> +{
> + struct drm_i915_gem_execbuffer2 execbuf;
> + int i = 0;
> + uint32_t buf[63];
> + const intel_ctx_t *ctx;
> +
> + /* load huc kernel */
> + buf[i++] = HUC_IMEM_STATE;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0x3;
> +
> + buf[i++] = MFX_WAIT;
> + buf[i++] = MFX_WAIT;
> +
> + buf[i++] = HUC_PIPE_MODE_SELECT;
> + buf[i++] = 0;
> + buf[i++] = 0;
> +
> + buf[i++] = MFX_WAIT;
> +
> + obj[0].offset = 0x200000;
> + obj[0].flags |= EXEC_OBJECT_PINNED;
> + obj[1].offset = 0x400000;
> + obj[1].flags |= EXEC_OBJECT_PINNED;
> + obj[1].flags |= EXEC_OBJECT_WRITE;
> + obj[2].offset = 0x600000;
> + obj[2].flags |= EXEC_OBJECT_PINNED;
> + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
> +
> + buf[i++] = HUC_START;
> + buf[i++] = 1;
> +
> + buf[i++] = MI_BATCH_BUFFER_END;
> +
> + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
> +
> + memset(&execbuf, 0, sizeof(execbuf));
> + execbuf.buffers_ptr = to_user_pointer(obj);
> + execbuf.buffer_count = 3;
> + execbuf.flags = I915_EXEC_DEFAULT;
Add here one more flag: I915_EXEC_NO_RELOC
execbuf.flags = I915_EXEC_DEFAULT | I915_EXEC_NO_RELOC;
It will help in transition to no-reloc (and will be ignored when
relocations will be disbaled in driver).
Regrads,
Kamil
> +
> + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
> + execbuf.rsvd1 = ctx->id;
> +
> + gem_execbuf(fd, &execbuf);
> +
> + intel_ctx_destroy(fd, ctx);
> +}
> diff --git a/lib/huc_copy.h b/lib/huc_copy.h
> index 69d140933..e87e62c9c 100644
> --- a/lib/huc_copy.h
> +++ b/lib/huc_copy.h
> @@ -46,4 +46,8 @@ void
> gen9_huc_copyfunc(int fd, uint64_t ahnd,
> struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
>
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> +
> #endif /* HUC_COPY_H */
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 19a1fbe4d..9a855a7f0 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
> * Returns:
> *
> * The platform-specific huc copy function pointer for the device specified
> - * with @devid. Will return NULL when no media spin function is implemented.
> + * with @devid. Will return NULL when no huc copy function is implemented.
> */
> igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
> {
> igt_huc_copyfunc_t copy = NULL;
>
> - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
> + if (AT_LEAST_GEN(devid, 12))
> + copy = gen12_huc_copyfunc;
> + else if (IS_GEN11(devid) || IS_GEN9(devid))
> copy = gen9_huc_copyfunc;
> + else
> + copy = NULL;
>
> return copy;
> }
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-18 18:25 ` Ye, Tony
2022-11-21 13:50 ` Kamil Konieczny
@ 2022-11-24 12:17 ` Zbigniew Kempczyński
1 sibling, 0 replies; 9+ messages in thread
From: Zbigniew Kempczyński @ 2022-11-24 12:17 UTC (permalink / raw)
To: Ye, Tony; +Cc: igt-dev
On Fri, Nov 18, 2022 at 10:25:40AM -0800, Ye, Tony wrote:
>
> On 11/17/2022 7:52 AM, Kamil Konieczny wrote:
> > Hi,
> >
> > please change subject of this commit, there are no changes
> > in old huc_copy in this patch. Also remove dot from end of
> > the Subject: line, s/platforms./platforms/
> >
> > On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
> > > From: "Ye, Tony" <tony.ye@intel.com>
> > >
> > > Stop using relocs and the legacy execbuf flags.
> > You should put here a little more explanation, as I see this it
> > is rather
> >
> > Add new huc_copy for gen12+ with no-relocs and no legacy flags
> >
> > and there are no changes in old code (except for adding that
> > AT_LEAST_GEN(12)).
>
> The patch is to switch to softpin from relocations in the huc_copy test on
> Gen12+. The old platforms stay with relocations. See the change in the
> igt_get_huc_copyfunc function.
>
>
> >
> > > Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
> > > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> > > Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
> > >
> > > ---
> > > lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
> > > lib/huc_copy.h | 4 +++
> > > lib/intel_batchbuffer.c | 8 +++--
> > > 3 files changed, 87 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/lib/huc_copy.c b/lib/huc_copy.c
> > > index 6ec68864b..3b011a305 100644
> > > --- a/lib/huc_copy.c
> > > +++ b/lib/huc_copy.c
> > > @@ -26,6 +26,8 @@
> > > #include "drmtest.h"
> > > #include "huc_copy.h"
> > > #include "intel_allocator.h"
> > > +#include "intel_ctx.h"
> > > +#include "i915/gem_engine_topology.h"
> > > static void
> > > gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> > > @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
> > > gem_execbuf(fd, &execbuf);
> > > }
> > > +
> > > +static void
> > > +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> > > + struct drm_i915_gem_exec_object2 *dst,
> > > + uint32_t *buf,
> > > + int *i)
> > > +{
> > > + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
> > > +
> > > + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
> > > + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
> > > + buf[(*i)++] = src->offset;
> > Addr is 48-bit and here we copy only lower 32-bit,
> > this may work with relocs but not with pinned addresses.
>
>
> The test only uses 3 addresses: 2M, 4M, 6M. So 48b flag is not set and we
> only copy the lower 32 bits.
>
>
> >
> > > + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
> > > + buf[(*i)++] = dst->offset;
> > Same here.
> >
> > > + } else {
> > > + buf[(*i)++] = 0;
> > > + }
> > > + buf[(*i)++] = 0;
> > > + buf[(*i)++] = 0;
> > > + }
> > > +}
> > > +
> > > +void
> > > +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> > > + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
> > > +{
> > > + struct drm_i915_gem_execbuffer2 execbuf;
> > > + int i = 0;
> > > + uint32_t buf[63];
> > > + const intel_ctx_t *ctx;
> > > +
> > > + /* load huc kernel */
> > > + buf[i++] = HUC_IMEM_STATE;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0x3;
> > > +
> > > + buf[i++] = MFX_WAIT;
> > > + buf[i++] = MFX_WAIT;
> > > +
> > > + buf[i++] = HUC_PIPE_MODE_SELECT;
> > > + buf[i++] = 0;
> > > + buf[i++] = 0;
> > > +
> > > + buf[i++] = MFX_WAIT;
> > > +
> > > + obj[0].offset = 0x200000;
> > ----------------------- ^
> > Use ahnd as in gen9_huc_copy (without reloc code).
>
>
> The code here is simply assigning a graphics virtual address to the source
> buffer object.
You shouldn't hardcode offsets here. You provide copyfunc implementation
so it should honour environment (allocator requirement).
Fix is simple, just use:
obj[0].offset = get_offset(ahnd, bo_handle, bo_size, 0);
--
Zbigniew
>
>
> > > + obj[0].flags |= EXEC_OBJECT_PINNED;
> > Add also:
> > | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
>
> As explained above, we don't need 48b address.
>
>
> >
> > > + obj[1].offset = 0x400000;
> > Same here.
> >
> > > + obj[1].flags |= EXEC_OBJECT_PINNED;
> > > + obj[1].flags |= EXEC_OBJECT_WRITE;
> > Add also
> > | EXEC_OBJECT_SUPPORTS_48B_ADDRESS
> >
> > and maybe make it one bit-or like:
> > obj[1].flags |= EXEC_OBJECT_PINNED | EXEC_OBJECT_WRITE |
> > EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
> >
> > > + obj[2].offset = 0x600000;
> > Same here.
> >
> > > + obj[2].flags |= EXEC_OBJECT_PINNED;
> > Same here (48-bit).
> >
> > Regards,
> > Kamil
> >
> > > + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
> > > +
> > > + buf[i++] = HUC_START;
> > > + buf[i++] = 1;
> > > +
> > > + buf[i++] = MI_BATCH_BUFFER_END;
> > > +
> > > + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
> > > +
> > > + memset(&execbuf, 0, sizeof(execbuf));
> > > + execbuf.buffers_ptr = to_user_pointer(obj);
> > > + execbuf.buffer_count = 3;
> > > + execbuf.flags = I915_EXEC_DEFAULT;
> > > +
> > > + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
> > > + execbuf.rsvd1 = ctx->id;
> > > +
> > > + gem_execbuf(fd, &execbuf);
> > > +
> > > + intel_ctx_destroy(fd, ctx);
> > > +}
> > > diff --git a/lib/huc_copy.h b/lib/huc_copy.h
> > > index 69d140933..e87e62c9c 100644
> > > --- a/lib/huc_copy.h
> > > +++ b/lib/huc_copy.h
> > > @@ -46,4 +46,8 @@ void
> > > gen9_huc_copyfunc(int fd, uint64_t ahnd,
> > > struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> > > +void
> > > +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> > > + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> > > +
> > > #endif /* HUC_COPY_H */
> > > diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> > > index 19a1fbe4d..9a855a7f0 100644
> > > --- a/lib/intel_batchbuffer.c
> > > +++ b/lib/intel_batchbuffer.c
> > > @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
> > > * Returns:
> > > *
> > > * The platform-specific huc copy function pointer for the device specified
> > > - * with @devid. Will return NULL when no media spin function is implemented.
> > > + * with @devid. Will return NULL when no huc copy function is implemented.
> > > */
> > > igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
> > > {
> > > igt_huc_copyfunc_t copy = NULL;
> > > - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
> > > + if (AT_LEAST_GEN(devid, 12))
> > > + copy = gen12_huc_copyfunc;
>
> As mentioned above, we switch to softpin on Gen12+ and stay with old func on
> earlier platforms.
>
> Thanks,
> Tony
>
>
> > > + else if (IS_GEN11(devid) || IS_GEN9(devid))
> > > copy = gen9_huc_copyfunc;
> > > + else
> > > + copy = NULL;
> > > return copy;
> > > }
> > > --
> > > 2.25.1
> > >
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms.
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
` (3 preceding siblings ...)
2022-11-23 13:02 ` Kamil Konieczny
@ 2022-11-29 9:57 ` Kamil Konieczny
4 siblings, 0 replies; 9+ messages in thread
From: Kamil Konieczny @ 2022-11-29 9:57 UTC (permalink / raw)
To: igt-dev
Hi,
few more nits, see below.
On 2022-11-16 at 16:07:06 +0530, Vikas Srivastava wrote:
> From: "Ye, Tony" <tony.ye@intel.com>
>
> Stop using relocs and the legacy execbuf flags.
>
> Signed-off-by: "Ye, Tony" <tony.ye@intel.com>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Acked-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
>
> ---
> lib/huc_copy.c | 77 +++++++++++++++++++++++++++++++++++++++++
> lib/huc_copy.h | 4 +++
> lib/intel_batchbuffer.c | 8 +++--
> 3 files changed, 87 insertions(+), 2 deletions(-)
>
> diff --git a/lib/huc_copy.c b/lib/huc_copy.c
> index 6ec68864b..3b011a305 100644
> --- a/lib/huc_copy.c
> +++ b/lib/huc_copy.c
> @@ -26,6 +26,8 @@
> #include "drmtest.h"
> #include "huc_copy.h"
> #include "intel_allocator.h"
> +#include "intel_ctx.h"
> +#include "i915/gem_engine_topology.h"
>
> static void
> gen9_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
> @@ -123,3 +125,78 @@ gen9_huc_copyfunc(int fd, uint64_t ahnd,
>
> gem_execbuf(fd, &execbuf);
> }
> +
> +static void
> +gen12_emit_huc_virtual_addr_state(struct drm_i915_gem_exec_object2 *src,
------------------------------------ ^
> + struct drm_i915_gem_exec_object2 *dst,
--------------- ^
Align to above.
> + uint32_t *buf,
Same here.
> + int *i)
Same here.
> +{
> + buf[(*i)++] = HUC_VIRTUAL_ADDR_STATE;
> +
> + for (int j = 0; j < HUC_VIRTUAL_ADDR_REGION_NUM; j++) {
> + if (j == HUC_VIRTUAL_ADDR_REGION_SRC) {
> + buf[(*i)++] = src->offset;
Add here:
buf[(*i)++] = upper_32_bits(src->offset);
> + } else if (j == HUC_VIRTUAL_ADDR_REGION_DST) {
> + buf[(*i)++] = dst->offset;
Same here.
> + } else {
> + buf[(*i)++] = 0;
Add
buf[(*i)++] = 0;
> + }
Put newline.
> + buf[(*i)++] = 0;
--------------- ^
Remove this.
> + buf[(*i)++] = 0;
btw here are encoded mocs bits starting from bit 1, do we need
this on MTL ? At least for src/dst addresses.
+Cc Zbigniew
Regards,
Kamil
> + }
> +}
> +
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize)
> +{
> + struct drm_i915_gem_execbuffer2 execbuf;
> + int i = 0;
> + uint32_t buf[63];
> + const intel_ctx_t *ctx;
> +
> + /* load huc kernel */
> + buf[i++] = HUC_IMEM_STATE;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0;
> + buf[i++] = 0x3;
> +
> + buf[i++] = MFX_WAIT;
> + buf[i++] = MFX_WAIT;
> +
> + buf[i++] = HUC_PIPE_MODE_SELECT;
> + buf[i++] = 0;
> + buf[i++] = 0;
> +
> + buf[i++] = MFX_WAIT;
> +
> + obj[0].offset = 0x200000;
> + obj[0].flags |= EXEC_OBJECT_PINNED;
> + obj[1].offset = 0x400000;
> + obj[1].flags |= EXEC_OBJECT_PINNED;
> + obj[1].flags |= EXEC_OBJECT_WRITE;
> + obj[2].offset = 0x600000;
> + obj[2].flags |= EXEC_OBJECT_PINNED;
> + gen12_emit_huc_virtual_addr_state(&obj[0], &obj[1], buf, &i);
> +
> + buf[i++] = HUC_START;
> + buf[i++] = 1;
> +
> + buf[i++] = MI_BATCH_BUFFER_END;
> +
> + gem_write(fd, obj[2].handle, 0, buf, sizeof(buf));
> +
> + memset(&execbuf, 0, sizeof(execbuf));
> + execbuf.buffers_ptr = to_user_pointer(obj);
> + execbuf.buffer_count = 3;
> + execbuf.flags = I915_EXEC_DEFAULT;
> +
> + ctx = intel_ctx_create_for_engine(fd, I915_ENGINE_CLASS_VIDEO, 0);
> + execbuf.rsvd1 = ctx->id;
> +
> + gem_execbuf(fd, &execbuf);
> +
> + intel_ctx_destroy(fd, ctx);
> +}
> diff --git a/lib/huc_copy.h b/lib/huc_copy.h
> index 69d140933..e87e62c9c 100644
> --- a/lib/huc_copy.h
> +++ b/lib/huc_copy.h
> @@ -46,4 +46,8 @@ void
> gen9_huc_copyfunc(int fd, uint64_t ahnd,
> struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
>
> +void
> +gen12_huc_copyfunc(int fd, uint64_t ahnd,
> + struct drm_i915_gem_exec_object2 *obj, uint64_t *objsize);
> +
> #endif /* HUC_COPY_H */
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 19a1fbe4d..9a855a7f0 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -3066,14 +3066,18 @@ void intel_bb_copy_intel_buf(struct intel_bb *ibb,
> * Returns:
> *
> * The platform-specific huc copy function pointer for the device specified
> - * with @devid. Will return NULL when no media spin function is implemented.
> + * with @devid. Will return NULL when no huc copy function is implemented.
> */
> igt_huc_copyfunc_t igt_get_huc_copyfunc(int devid)
> {
> igt_huc_copyfunc_t copy = NULL;
>
> - if (IS_GEN12(devid) || IS_GEN11(devid) || IS_GEN9(devid))
> + if (AT_LEAST_GEN(devid, 12))
> + copy = gen12_huc_copyfunc;
> + else if (IS_GEN11(devid) || IS_GEN9(devid))
> copy = gen9_huc_copyfunc;
> + else
> + copy = NULL;
>
> return copy;
> }
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-11-29 9:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-16 10:37 [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Vikas Srivastava
2022-11-16 15:27 ` [igt-dev] ✓ Fi.CI.BAT: success for lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms. (rev2) Patchwork
2022-11-16 21:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2022-11-17 15:52 ` [igt-dev] [PATCH i-g-t v2] lib: Remove deprecated interfaces from huc_copy for Gen12+ platforms Kamil Konieczny
2022-11-18 18:25 ` Ye, Tony
2022-11-21 13:50 ` Kamil Konieczny
2022-11-24 12:17 ` Zbigniew Kempczyński
2022-11-23 13:02 ` Kamil Konieczny
2022-11-29 9:57 ` Kamil Konieczny
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.