* [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH
@ 2023-03-27 15:43 Zbigniew Kempczyński
2023-03-27 18:27 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Zbigniew Kempczyński @ 2023-03-27 15:43 UTC (permalink / raw)
To: igt-dev
From: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Adding xeph_gpgpu_fillfunc to have gpgpu_fill running on XEPH (DG2).
On XEPH there's no GPGPU_WALK command, it has COMPUTE_WALK what requires
pipeline creation change.
Shader used in the test was taken from previous generation with
adding SWSB dependency tracking. SWSB was added using iga64 automatic
dependency generating:
iga64 -p=12p5 -Xauto-deps shader.asm
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
lib/gen8_media.h | 2 +
lib/gpgpu_fill.c | 65 +++++
lib/gpgpu_fill.h | 6 +
lib/gpu_cmds.c | 251 +++++++++++++++++++
lib/gpu_cmds.h | 35 +++
lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm | 12 +
lib/intel_batchbuffer.c | 18 +-
lib/xeph_media.h | 207 +++++++++++++++
8 files changed, 588 insertions(+), 8 deletions(-)
create mode 100644 lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm
create mode 100644 lib/xeph_media.h
diff --git a/lib/gen8_media.h b/lib/gen8_media.h
index d2a049a1ec..b5c19e503c 100644
--- a/lib/gen8_media.h
+++ b/lib/gen8_media.h
@@ -23,6 +23,8 @@
#define GEN8_MEDIA_STATE_FLUSH GFXPIPE(2, 0, 4)
#define GEN8_MEDIA_OBJECT GFXPIPE(2, 1, 0)
+#define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC GFXPIPE(3, 1, 25)
+
struct gen8_interface_descriptor_data
{
struct {
diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
index 0f031a5248..5655ec9477 100644
--- a/lib/gpgpu_fill.c
+++ b/lib/gpgpu_fill.c
@@ -99,6 +99,19 @@ static const uint32_t gen12_gpgpu_kernel[][4] = {
{ 0x00040131, 0x00000004, 0x7020700c, 0x10000000 },
};
+static const uint32_t xeph_gpgpu_kernel[][4] = {
+ { 0x00020061, 0x01050000, 0x00000104, 0x00000000 },
+ { 0x00000069, 0x02058220, 0x02000024, 0x00000004 },
+ { 0x00000061, 0x02250220, 0x000000c4, 0x00000000 },
+ { 0x00030061, 0x04050220, 0x00460005, 0x00000000 },
+ { 0x00011a61, 0x04050220, 0x00220205, 0x00000000 },
+ { 0x00000061, 0x04454220, 0x00000000, 0x0000000f },
+ { 0x00041e61, 0x05050220, 0x00000104, 0x00000000 },
+ { 0x80001901, 0x00010000, 0x00000000, 0x00000000 },
+ { 0x00044031, 0x00000000, 0xc0000414, 0x02a00000 },
+ { 0x00030031, 0x00000004, 0x3000500c, 0x00000000 },
+};
+
/*
* This sets up the gpgpu pipeline,
*
@@ -280,6 +293,47 @@ __gen9_gpgpu_fillfunc(int i915,
intel_bb_destroy(ibb);
}
+static void
+__xeph_gpgpu_fillfunc(int i915,
+ struct intel_buf *buf,
+ unsigned int x, unsigned int y,
+ unsigned int width, unsigned int height,
+ uint8_t color, const uint32_t kernel[][4],
+ size_t kernel_size)
+{
+ struct intel_bb *ibb;
+ struct xeph_interface_descriptor_data idd;
+ (void) x;
+ (void) y;
+
+ ibb = intel_bb_create(i915, PAGE_SIZE);
+ intel_bb_add_intel_buf(ibb, buf, true);
+
+ intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT);
+
+ xeph_fill_interface_descriptor(ibb, buf,
+ kernel, kernel_size, &idd);
+
+ intel_bb_ptr_set(ibb, 0);
+
+ /* GPGPU pipeline */
+ intel_bb_out(ibb, GEN7_PIPELINE_SELECT | GEN9_PIPELINE_SELECTION_MASK |
+ PIPELINE_SELECT_GPGPU);
+ xeph_emit_state_base_address(ibb);
+ xeph_emit_state_compute_mode(ibb);
+ xeph_emit_state_binding_table_pool_alloc(ibb);
+ xeph_emit_cfe_state(ibb, THREADS);
+ xeph_emit_compute_walk(ibb, width, height, &idd, color);
+
+ intel_bb_out(ibb, MI_BATCH_BUFFER_END);
+ intel_bb_ptr_align(ibb, 32);
+
+ intel_bb_exec(ibb, intel_bb_offset(ibb),
+ I915_EXEC_DEFAULT | I915_EXEC_NO_RELOC, true);
+
+ intel_bb_destroy(ibb);
+}
+
void gen9_gpgpu_fillfunc(int i915,
struct intel_buf *buf,
unsigned x, unsigned y,
@@ -312,3 +366,14 @@ void gen12_gpgpu_fillfunc(int i915,
gen12_gpgpu_kernel,
sizeof(gen12_gpgpu_kernel));
}
+
+void xeph_gpgpu_fillfunc(int i915,
+ struct intel_buf *buf,
+ unsigned int x, unsigned int y,
+ unsigned int width, unsigned int height,
+ uint8_t color)
+{
+ __xeph_gpgpu_fillfunc(i915, buf, x, y, width, height, color,
+ xeph_gpgpu_kernel,
+ sizeof(xeph_gpgpu_kernel));
+}
diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h
index 25abe1fa19..15ef147ce0 100644
--- a/lib/gpgpu_fill.h
+++ b/lib/gpgpu_fill.h
@@ -61,4 +61,10 @@ void gen12_gpgpu_fillfunc(int i915,
unsigned width, unsigned height,
uint8_t color);
+void
+xeph_gpgpu_fillfunc(int i915,
+ struct intel_buf *dst,
+ unsigned int x, unsigned int y,
+ unsigned int width, unsigned int height,
+ uint8_t color);
#endif /* GPGPU_FILL_H */
diff --git a/lib/gpu_cmds.c b/lib/gpu_cmds.c
index c31b51f7b4..0abca0a007 100644
--- a/lib/gpu_cmds.c
+++ b/lib/gpu_cmds.c
@@ -262,6 +262,10 @@ gen7_fill_binding_table(struct intel_bb *ibb,
binding_table[0] = gen7_fill_surface_state(ibb, buf,
SURFACEFORMAT_R8_UNORM, 1);
+ else if (intel_graphics_ver(devid) >= IP_VER(12, 50))
+ binding_table[0] = xeph_fill_surface_state(ibb, buf,
+ SURFACEFORMAT_R8_UNORM, 1);
+
else
binding_table[0] = gen8_fill_surface_state(ibb, buf,
SURFACEFORMAT_R8_UNORM, 1);
@@ -773,3 +777,250 @@ gen7_emit_media_objects(struct intel_bb *ibb,
for (j = 0; j < height / 16; j++)
gen_emit_media_object(ibb, x + i * 16, y + j * 16);
}
+
+/*
+ * XEPH
+ */
+void
+xeph_fill_interface_descriptor(struct intel_bb *ibb,
+ struct intel_buf *dst,
+ const uint32_t kernel[][4],
+ size_t size,
+ struct xeph_interface_descriptor_data *idd)
+{
+ uint32_t binding_table_offset, kernel_offset;
+
+ binding_table_offset = gen7_fill_binding_table(ibb, dst);
+ kernel_offset = gen7_fill_kernel(ibb, kernel, size);
+
+ memset(idd, 0, sizeof(*idd));
+ idd->desc0.kernel_start_pointer = (kernel_offset >> 6);
+
+ idd->desc2.single_program_flow = 1;
+ idd->desc2.floating_point_mode = GEN8_FLOATING_POINT_IEEE_754;
+
+ idd->desc3.sampler_count = 0; /* 0 samplers used */
+ idd->desc3.sampler_state_pointer = 0;
+
+ idd->desc4.binding_table_entry_count = 0;
+ idd->desc4.binding_table_pointer = (binding_table_offset >> 5);
+
+ idd->desc5.num_threads_in_tg = 1;
+}
+
+uint32_t
+xeph_fill_surface_state(struct intel_bb *ibb,
+ struct intel_buf *buf,
+ uint32_t format,
+ int is_dst)
+{
+ struct xeph_surface_state *ss;
+ uint32_t write_domain, read_domain, offset;
+ uint64_t address;
+
+ if (is_dst) {
+ write_domain = read_domain = I915_GEM_DOMAIN_RENDER;
+ } else {
+ write_domain = 0;
+ read_domain = I915_GEM_DOMAIN_SAMPLER;
+ }
+
+ intel_bb_ptr_align(ibb, 64);
+ offset = intel_bb_offset(ibb);
+ ss = intel_bb_ptr(ibb);
+ intel_bb_ptr_add(ibb, 64);
+
+ ss->ss0.surface_type = SURFACE_2D;
+ ss->ss0.surface_format = format;
+ ss->ss0.render_cache_read_write = 1;
+ ss->ss0.vertical_alignment = 1; /* align 4 */
+ ss->ss0.horizontal_alignment = 1; /* align 4 */
+
+ if (buf->tiling == I915_TILING_X)
+ ss->ss0.tiled_mode = 2;
+ else if (buf->tiling == I915_TILING_Y || buf->tiling == I915_TILING_4)
+ ss->ss0.tiled_mode = 3;
+
+ address = intel_bb_offset_reloc(ibb, buf->handle,
+ read_domain, write_domain,
+ offset + 4 * 8, 0x0);
+
+ ss->ss8.base_addr_lo = (uint32_t) address;
+ ss->ss9.base_addr_hi = address >> 32;
+
+ ss->ss2.height = intel_buf_height(buf) - 1;
+ ss->ss2.width = intel_buf_width(buf) - 1;
+ ss->ss3.pitch = buf->surface[0].stride - 1;
+
+ ss->ss7.shader_channel_select_r = 4;
+ ss->ss7.shader_channel_select_g = 5;
+ ss->ss7.shader_channel_select_b = 6;
+ ss->ss7.shader_channel_select_a = 7;
+
+ return offset;
+}
+
+void
+xeph_emit_cfe_state(struct intel_bb *ibb, uint32_t threads)
+{
+ bool dfeud = CFE_CAN_DISABLE_FUSED_EU_DISPATCH(ibb->devid);
+
+ intel_bb_out(ibb, XEPH_CFE_STATE | (6 - 2));
+
+ /* scratch buffer */
+ intel_bb_out(ibb, 0);
+ intel_bb_out(ibb, 0);
+
+#define _LEGACY_MODE (1 << 6)
+ /* number of threads & urb entries */
+ intel_bb_out(ibb, (max_t(threads, threads, 64) - 1) << 16 | (dfeud ? _LEGACY_MODE : 0));
+
+ intel_bb_out(ibb, 0);
+ intel_bb_out(ibb, 0);
+}
+
+void
+xeph_emit_state_compute_mode(struct intel_bb *ibb)
+{
+ intel_bb_out(ibb, XEPH_STATE_COMPUTE_MODE);
+ intel_bb_out(ibb, 0);
+}
+
+void
+xeph_emit_state_binding_table_pool_alloc(struct intel_bb *ibb)
+{
+ intel_bb_out(ibb, GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC | 2);
+ intel_bb_emit_reloc(ibb, ibb->handle,
+ I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
+ 0, 0, 0x0);
+ intel_bb_out(ibb, 1 << 12);
+}
+
+void
+xeph_emit_state_base_address(struct intel_bb *ibb)
+{
+ intel_bb_out(ibb, GEN8_STATE_BASE_ADDRESS | 0x14); //dw0
+
+ /* general */
+ intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw1-dw2
+ intel_bb_out(ibb, 0);
+
+ /* stateless data port */
+ intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw3
+
+ /* surface */
+ intel_bb_emit_reloc(ibb, ibb->handle, I915_GEM_DOMAIN_SAMPLER, //dw4-dw5
+ 0, BASE_ADDRESS_MODIFY, 0x0);
+
+ /* dynamic */
+ intel_bb_emit_reloc(ibb, ibb->handle, //dw6-dw7
+ I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION,
+ 0, BASE_ADDRESS_MODIFY, 0x0);
+
+ /* indirect */
+ intel_bb_out(ibb, 0); //dw8-dw9
+ intel_bb_out(ibb, 0);
+
+ /* instruction */
+ intel_bb_emit_reloc(ibb, ibb->handle,
+ I915_GEM_DOMAIN_INSTRUCTION, //dw10-dw11
+ 0, BASE_ADDRESS_MODIFY, 0x0);
+
+ /* general state buffer size */
+ intel_bb_out(ibb, 0xfffff000 | 1); //dw12
+ /* dynamic state buffer size */
+ intel_bb_out(ibb, 1 << 12 | 1); //dw13
+ /* indirect object buffer size */
+ intel_bb_out(ibb, 0xfffff000 | 1); //dw14
+ /* intruction buffer size */
+ intel_bb_out(ibb, 1 << 12 | 1); //dw15
+
+ /* Bindless surface state base address */
+ intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw16
+ intel_bb_out(ibb, 0); //dw17
+ intel_bb_out(ibb, 0xfffff000); //dw18
+
+ /* Bindless sampler state base address */
+ intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw19
+ intel_bb_out(ibb, 0); //dw20
+ intel_bb_out(ibb, 0); //dw21
+}
+
+void
+xeph_emit_compute_walk(struct intel_bb *ibb,
+ unsigned int width, unsigned int height,
+ struct xeph_interface_descriptor_data *pidd,
+ uint8_t color)
+{
+ uint32_t x_dim, y_dim;
+
+ /*
+ * Simply do SIMD16 based dispatch, so every thread uses
+ * SIMD16 channels.
+ *
+ * Define our own thread group size, e.g 16x1 for every group, then
+ * will have 1 thread each group in SIMD16 dispatch. So thread
+ * width/height/depth are all 1.
+ *
+ * Then thread group X = width / 16 (aligned to 16)
+ * thread group Y = height;
+ */
+ x_dim = (width + 15) / 16;
+ y_dim = height;
+
+ intel_bb_out(ibb, XEPH_COMPUTE_WALKER | 0x25);
+
+ intel_bb_out(ibb, 0); /* debug object */ //dw1
+ intel_bb_out(ibb, 0); /* indirect data length */ //dw2
+ intel_bb_out(ibb, 0); /* indirect data offset */ //dw3
+
+ /* SIMD size */
+ intel_bb_out(ibb, 1 << 30 | 1 << 25); /* SIMD16 | enable inline */ //dw4
+
+ /* Execution mask */
+ intel_bb_out(ibb, 0xffffffff); //dw5
+
+ /* x/y/z max */
+ intel_bb_out(ibb, (x_dim << 20) | (y_dim << 10) | 1); //dw6
+
+ /* x dim */
+ intel_bb_out(ibb, x_dim); //dw7
+
+ /* y dim */
+ intel_bb_out(ibb, y_dim); //dw8
+
+ /* z dim */
+ intel_bb_out(ibb, 1); //dw9
+
+ /* group id x/y/z */
+ intel_bb_out(ibb, 0); //dw10
+ intel_bb_out(ibb, 0); //dw11
+ intel_bb_out(ibb, 0); //dw12
+
+ /* partition id / partition size */
+ intel_bb_out(ibb, 0); //dw13
+ intel_bb_out(ibb, 0); //dw14
+
+ /* preempt x/y/z */
+ intel_bb_out(ibb, 0); //dw15
+ intel_bb_out(ibb, 0); //dw16
+ intel_bb_out(ibb, 0); //dw17
+
+ /* Interface descriptor data */
+ for (int i = 0; i < 8; i++) { //dw18-25
+ intel_bb_out(ibb, ((uint32_t *) pidd)[i]);
+ }
+
+ /* Postsync data */
+ intel_bb_out(ibb, 0); //dw26
+ intel_bb_out(ibb, 0); //dw27
+ intel_bb_out(ibb, 0); //dw28
+ intel_bb_out(ibb, 0); //dw29
+ intel_bb_out(ibb, 0); //dw30
+
+ /* Inline data */
+ intel_bb_out(ibb, (uint32_t) color); //dw31
+ for (int i = 0; i < 7; i++) { //dw32-38
+ intel_bb_out(ibb, 0x0);
+ }
+}
diff --git a/lib/gpu_cmds.h b/lib/gpu_cmds.h
index 56f09b6e1e..ac9d4c07c8 100644
--- a/lib/gpu_cmds.h
+++ b/lib/gpu_cmds.h
@@ -30,6 +30,7 @@
#include "media_fill.h"
#include "gen7_media.h"
#include "gen8_media.h"
+#include "xeph_media.h"
#include "intel_reg.h"
#include "drmtest.h"
#include "intel_batchbuffer.h"
@@ -107,4 +108,38 @@ void
gen7_emit_media_objects(struct intel_bb *ibb,
unsigned int x, unsigned int y,
unsigned int width, unsigned int height);
+
+void
+xeph_fill_interface_descriptor(struct intel_bb *ibb,
+ struct intel_buf *dst,
+ const uint32_t kernel[][4],
+ size_t size,
+ struct xeph_interface_descriptor_data *idd);
+
+uint32_t
+xeph_fill_surface_state(struct intel_bb *ibb,
+ struct intel_buf *buf,
+ uint32_t format,
+ int is_dst);
+
+void
+xeph_emit_state_compute_mode(struct intel_bb *ibb);
+
+void
+xeph_emit_state_binding_table_pool_alloc(struct intel_bb *ibb);
+
+void
+xeph_emit_cfe_state(struct intel_bb *ibb, uint32_t threads);
+
+#define CFE_CAN_DISABLE_FUSED_EU_DISPATCH(devid) (IS_DG2(devid))
+
+void
+xeph_emit_state_base_address(struct intel_bb *ibb);
+
+void
+xeph_emit_compute_walk(struct intel_bb *ibb,
+ unsigned int width, unsigned int height,
+ struct xeph_interface_descriptor_data *pidd,
+ uint8_t color);
+
#endif /* GPU_CMDS_H */
diff --git a/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm b/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm
new file mode 100644
index 0000000000..7adfbd0f04
--- /dev/null
+++ b/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm
@@ -0,0 +1,12 @@
+L0:
+ mov (4|M0) r1.0<1>:ub r1.0<0;1,0>:ub
+ shl (1|M0) r2.0<1>:ud r0.1<0;1,0>:ud 0x4:ud
+ mov (1|M0) r2.1<1>:ud r0.6<0;1,0>:ud
+ mov (8|M0) r4.0<1>:ud r0.0<8;8,1>:ud
+ mov (2|M0) r4.0<1>:ud r2.0<2;2,1>:ud {I@2}
+ mov (1|M0) r4.2<1>:ud 0xF:ud
+ mov (16|M0) r5.0<1>:ud r1.0<0;1,0>:ud {I@6}
+(W) sync.nop null {I@1}
+ send.dc1 (16|M0) null r4 null 0x0 0x40A8000 {$0} // wr:2h+0, rd:0, Media Block Write msc:0, to #0
+ send.gtwy (8|M0) null r80 null 0x0 0x02000000 {EOT}
+L176:
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index da4c238cae..6850f3a864 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -747,16 +747,18 @@ igt_fillfunc_t igt_get_gpgpu_fillfunc(int devid)
{
igt_fillfunc_t fill = NULL;
- if (IS_GEN7(devid))
- fill = gen7_gpgpu_fillfunc;
- else if (IS_GEN8(devid))
- fill = gen8_gpgpu_fillfunc;
- else if (IS_GEN9(devid) || IS_GEN10(devid))
- fill = gen9_gpgpu_fillfunc;
- else if (IS_GEN11(devid))
- fill = gen11_gpgpu_fillfunc;
+ if (intel_graphics_ver(devid) >= IP_VER(12, 50))
+ fill = xeph_gpgpu_fillfunc;
else if (IS_GEN12(devid))
fill = gen12_gpgpu_fillfunc;
+ else if (IS_GEN11(devid))
+ fill = gen11_gpgpu_fillfunc;
+ else if (IS_GEN9(devid) || IS_GEN10(devid))
+ fill = gen9_gpgpu_fillfunc;
+ else if (IS_GEN8(devid))
+ fill = gen8_gpgpu_fillfunc;
+ else if (IS_GEN7(devid))
+ fill = gen7_gpgpu_fillfunc;
return fill;
}
diff --git a/lib/xeph_media.h b/lib/xeph_media.h
new file mode 100644
index 0000000000..0a93e649f0
--- /dev/null
+++ b/lib/xeph_media.h
@@ -0,0 +1,207 @@
+/* SPDX-License-Identifier: MIT */
+
+#ifndef XEPH_MEDIA_H
+#define XEPH_MEDIA_H
+
+#include <stdint.h>
+#include "surfaceformat.h"
+#include "gen7_media.h"
+
+#define GFXPIPE_XEPH(Pipeline, Opcode, Subopcode) ((3 << 29) | \
+ ((Pipeline) << 27) | \
+ ((Opcode) << 24) | \
+ ((Subopcode) << 18))
+
+#define XEPH_STATE_COMPUTE_MODE GFXPIPE(0, 1, 5)
+#define XEPH_CFE_STATE GFXPIPE_XEPH(2, 2, 0)
+#define XEPH_COMPUTE_WALKER GFXPIPE_XEPH(2, 2, 2)
+
+#define BITRANGE(start, end) (end - start + 1)
+
+struct xeph_interface_descriptor_data {
+ struct {
+ uint32_t pad0: BITRANGE(0, 5);
+ uint32_t kernel_start_pointer: BITRANGE(6, 31);
+ } desc0;
+
+ struct {
+ uint32_t kernel_start_pointer_high: BITRANGE(0, 15);
+ uint32_t pad0: BITRANGE(16, 31);
+ } desc1;
+
+ struct {
+ uint32_t pad0: BITRANGE(0, 6);
+ uint32_t software_exception_enable: BITRANGE(7, 7);
+ uint32_t pad1: BITRANGE(8, 10);
+ uint32_t maskstack_exception_enable: BITRANGE(11, 11);
+ uint32_t pad2: BITRANGE(12, 12);
+ uint32_t illegal_opcode_exception_enable: BITRANGE(13, 13);
+ uint32_t pad3: BITRANGE(14, 15);
+ uint32_t floating_point_mode: BITRANGE(16, 16);
+ uint32_t pad4: BITRANGE(17, 17);
+ uint32_t single_program_flow: BITRANGE(18, 18);
+ uint32_t denorm_mode: BITRANGE(19, 19);
+ uint32_t thread_preemption_disable: BITRANGE(20, 20);
+ uint32_t pad5: BITRANGE(21, 31);
+ } desc2;
+
+ struct {
+ uint32_t pad0: BITRANGE(0, 1);
+ uint32_t sampler_count: BITRANGE(2, 4);
+ uint32_t sampler_state_pointer: BITRANGE(5, 31);
+ } desc3;
+
+ struct {
+ uint32_t binding_table_entry_count: BITRANGE(0, 4);
+ uint32_t binding_table_pointer: BITRANGE(5, 20);
+ uint32_t pad0: BITRANGE(21, 31);
+ } desc4;
+
+ struct {
+ uint32_t num_threads_in_tg: BITRANGE(0, 9);
+ uint32_t pad0: BITRANGE(10, 15);
+ uint32_t shared_local_memory_size: BITRANGE(16, 20);
+ uint32_t barrier_enable: BITRANGE(21, 21);
+ uint32_t rounding_mode: BITRANGE(22, 23);
+ uint32_t pad1: BITRANGE(24, 26);
+ uint32_t thread_group_dispatch_size: BITRANGE(27, 27);
+ uint32_t pad2: BITRANGE(28, 31);
+ } desc5;
+
+ struct {
+ uint32_t pad0;
+ } desc6;
+
+ struct {
+ uint32_t pad0;
+ } desc7;
+};
+
+struct xeph_surface_state {
+ struct {
+ uint32_t cube_pos_z: BITRANGE(0, 0);
+ uint32_t cube_neg_z: BITRANGE(1, 1);
+ uint32_t cube_pos_y: BITRANGE(2, 2);
+ uint32_t cube_neg_y: BITRANGE(3, 3);
+ uint32_t cube_pos_x: BITRANGE(4, 4);
+ uint32_t cube_neg_x: BITRANGE(5, 5);
+ uint32_t media_boundary_pixel_mode: BITRANGE(6, 7);
+ uint32_t render_cache_read_write: BITRANGE(8, 8);
+ uint32_t sampler_l2_bypass_disable: BITRANGE(9, 9);
+ uint32_t vert_line_stride_ofs: BITRANGE(10, 10);
+ uint32_t vert_line_stride: BITRANGE(11, 11);
+ uint32_t tiled_mode: BITRANGE(12, 13);
+ uint32_t horizontal_alignment: BITRANGE(14, 15);
+ uint32_t vertical_alignment: BITRANGE(16, 17);
+ uint32_t surface_format: BITRANGE(18, 26); /**< BRW_SURFACEFORMAT_x */
+ uint32_t astc_enable: BITRANGE(27, 27);
+ uint32_t is_array: BITRANGE(28, 28);
+ uint32_t surface_type: BITRANGE(29, 31); /**< BRW_SURFACE_1D/2D/3D/CUBE */
+ } ss0;
+
+ struct {
+ uint32_t qpitch: BITRANGE(0, 14);
+ uint32_t sample_tap_discard_disable: BITRANGE(15, 15);
+ uint32_t pad0: BITRANGE(16, 16);
+ uint32_t double_fetch_disable: BITRANGE(17, 17);
+ uint32_t corner_texel_mode: BITRANGE(18, 18);
+ uint32_t base_mip_level: BITRANGE(19, 23);
+ uint32_t memory_object_control: BITRANGE(24, 30);
+ uint32_t unorm_path_in_color_pipe: BITRANGE(31, 31);
+ } ss1;
+
+ struct {
+ uint32_t width: BITRANGE(0, 13);
+ uint32_t pad0: BITRANGE(14, 15);
+ uint32_t height: BITRANGE(16, 29);
+ uint32_t pad1: BITRANGE(30, 30);
+ uint32_t depth_stencil_resource: BITRANGE(31, 31);
+ } ss2;
+
+ struct {
+ uint32_t pitch: BITRANGE(0, 17);
+ uint32_t null_probing_enable: BITRANGE(18, 18);
+ uint32_t standard_tiling_mode_ext: BITRANGE(19, 19);
+ uint32_t pad0: BITRANGE(20, 20);
+ uint32_t depth: BITRANGE(21, 31);
+ } ss3;
+
+ struct {
+ uint32_t multisample_position_palette_index: BITRANGE(0, 2);
+ uint32_t num_multisamples: BITRANGE(3, 5);
+ uint32_t multisampled_surface_storage_format: BITRANGE(6, 6);
+ uint32_t render_target_view_extent: BITRANGE(7, 17);
+ uint32_t min_array_element: BITRANGE(18, 28);
+ uint32_t rotation: BITRANGE(29, 30);
+ uint32_t decompress_in_l3: BITRANGE(31, 31);
+ } ss4;
+
+ struct {
+ uint32_t mip_count: BITRANGE(0, 3);
+ uint32_t surface_min_lod: BITRANGE(4, 7);
+ uint32_t mip_tail_start_lod: BITRANGE(8, 11);
+ uint32_t yuv_bpt: BITRANGE(12, 13);
+ uint32_t coherency_type: BITRANGE(14, 15);
+ uint32_t pad0: BITRANGE(16, 17);
+ uint32_t tiled_resource_mode: BITRANGE(18, 19);
+ uint32_t ewa_disable_for_cube: BITRANGE(20, 20);
+ uint32_t y_offset: BITRANGE(21, 23);
+ uint32_t pad1: BITRANGE(24, 24);
+ uint32_t x_offset: BITRANGE(25, 31);
+ } ss5;
+
+ struct {
+ uint32_t pad; /* Multisample Control Surface stuff */
+ } ss6;
+
+ struct {
+ uint32_t resource_min_lod: BITRANGE(0, 11);
+ uint32_t pad0: BITRANGE(12, 13);
+ uint32_t disable_support_for_multigpu_atomics: BITRANGE(14, 14);
+ uint32_t disable_support_for_multigpu_partwrite: BITRANGE(15, 15);
+ uint32_t shader_channel_select_a: BITRANGE(16, 18);
+ uint32_t shader_channel_select_b: BITRANGE(19, 21);
+ uint32_t shader_channel_select_g: BITRANGE(22, 24);
+ uint32_t shader_channel_select_r: BITRANGE(25, 27);
+ uint32_t pad1: BITRANGE(28, 29);
+ uint32_t memory_compression_enable: BITRANGE(30, 30);
+ uint32_t memory_compression_mode: BITRANGE(31, 31);
+ } ss7;
+
+ struct {
+ uint32_t base_addr_lo;
+ } ss8;
+
+ struct {
+ uint32_t base_addr_hi;
+ } ss9;
+
+ struct {
+ uint32_t pad0: BITRANGE(0, 11);
+ uint32_t aux_base_addr_lo: BITRANGE(12, 31);
+ } ss10;
+
+ struct {
+ uint32_t aux_base_addr_hi;
+ } ss11;
+
+ struct {
+ uint32_t compression_format: BITRANGE(0, 4);
+ uint32_t clear_address_lo: BITRANGE(5, 31);
+ } ss12;
+
+ struct {
+ uint32_t clear_address_hi: BITRANGE(0, 15);
+ uint32_t pad0: BITRANGE(16, 31);
+ } ss13;
+
+ struct {
+ uint32_t reserved;
+ } ss14;
+
+ struct {
+ uint32_t reserved;
+ } ss15;
+};
+
+#endif /* XEPH_MEDIA_H */
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [igt-dev] ✗ Fi.CI.BAT: failure for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński @ 2023-03-27 18:27 ` Patchwork 2023-03-27 18:48 ` Zbigniew Kempczyński 2023-03-28 4:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork ` (3 subsequent siblings) 4 siblings, 1 reply; 9+ messages in thread From: Patchwork @ 2023-03-27 18:27 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 5692 bytes --] == Series Details == Series: lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH URL : https://patchwork.freedesktop.org/series/115672/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12921 -> IGTPW_8688 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_8688 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_8688, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html Participating hosts (37 -> 36) ------------------------------ Missing (1): fi-kbl-soraka Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8688: ### IGT changes ### #### Possible regressions #### * igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1: - bat-dg2-8: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html Known issues ------------ Here are the changes found in IGTPW_8688 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@execlists: - fi-bsw-n3050: [PASS][3] -> [ABORT][4] ([i915#7911] / [i915#7913]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/fi-bsw-n3050/igt@i915_selftest@live@execlists.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/fi-bsw-n3050/igt@i915_selftest@live@execlists.html * igt@i915_selftest@live@slpc: - bat-rpls-2: NOTRUN -> [DMESG-FAIL][5] ([i915#6997] / [i915#7913]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@i915_selftest@live@slpc.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-rpls-2: NOTRUN -> [SKIP][6] ([i915#7828]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html - bat-rpls-1: NOTRUN -> [SKIP][7] ([i915#7828]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-rpls-1: NOTRUN -> [SKIP][8] ([i915#1845]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html - bat-rpls-2: NOTRUN -> [SKIP][9] ([i915#1845]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3: - bat-dg2-11: [PASS][10] -> [INCOMPLETE][11] ([i915#1982] / [i915#7908]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s3@smem: - bat-rpls-1: [ABORT][12] ([i915#6687] / [i915#7978]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html * igt@i915_selftest@live@reset: - bat-rpls-2: [ABORT][14] ([i915#4983] / [i915#7913]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-2/igt@i915_selftest@live@reset.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@i915_selftest@live@reset.html #### Warnings #### * igt@i915_selftest@live@slpc: - bat-rpls-1: [DMESG-FAIL][16] ([i915#6367]) -> [DMESG-FAIL][17] ([i915#6367] / [i915#7996]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-1/igt@i915_selftest@live@slpc.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@i915_selftest@live@slpc.html [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7908]: https://gitlab.freedesktop.org/drm/intel/issues/7908 [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978 [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7221 -> IGTPW_8688 CI-20190529: 20190529 CI_DRM_12921: 3de6040ce9900a94ec626662d5c6a227b37eeb1c @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8688: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html [-- Attachment #2: Type: text/html, Size: 6878 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 18:27 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork @ 2023-03-27 18:48 ` Zbigniew Kempczyński 2023-03-28 5:02 ` Yedireswarapu, SaiX Nandan 0 siblings, 1 reply; 9+ messages in thread From: Zbigniew Kempczyński @ 2023-03-27 18:48 UTC (permalink / raw) To: igt-dev, SaiX Nandan Yedireswarapu On Mon, Mar 27, 2023 at 06:27:18PM +0000, Patchwork wrote: > Patch Details > > Series: lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH > URL: https://patchwork.freedesktop.org/series/115672/ > State: failure > Details: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > > CI Bug Log - changes from CI_DRM_12921 -> IGTPW_8688 > > Summary > > FAILURE > > Serious unknown changes coming with IGTPW_8688 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_8688, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in > CI. > > External URL: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > > Participating hosts (37 -> 36) > > Missing (1): fi-kbl-soraka > > Possible new issues > > Here are the unknown changes that may have been introduced in IGTPW_8688: > > IGT changes > > Possible regressions > > * igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1: > * bat-dg2-8: PASS -> FAIL Unrelated to the change. May I ask for run shards for it? -- Zbigniew > > Known issues > > Here are the changes found in IGTPW_8688 that come from known issues: > > IGT changes > > Issues hit > > * igt@i915_selftest@live@execlists: > > * fi-bsw-n3050: PASS -> ABORT (i915#7911 / i915#7913) > * igt@i915_selftest@live@slpc: > > * bat-rpls-2: NOTRUN -> DMESG-FAIL (i915#6997 / i915#7913) > * igt@kms_chamelium_hpd@common-hpd-after-suspend: > > * bat-rpls-2: NOTRUN -> SKIP (i915#7828) > > * bat-rpls-1: NOTRUN -> SKIP (i915#7828) > > * igt@kms_pipe_crc_basic@suspend-read-crc: > > * bat-rpls-1: NOTRUN -> SKIP (i915#1845) > > * bat-rpls-2: NOTRUN -> SKIP (i915#1845) > > * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3: > > * bat-dg2-11: PASS -> INCOMPLETE (i915#1982 / i915#7908) > > Possible fixes > > * igt@gem_exec_suspend@basic-s3@smem: > > * bat-rpls-1: ABORT (i915#6687 / i915#7978) -> PASS > * igt@i915_selftest@live@reset: > > * bat-rpls-2: ABORT (i915#4983 / i915#7913) -> PASS > > Warnings > > * igt@i915_selftest@live@slpc: > * bat-rpls-1: DMESG-FAIL (i915#6367) -> DMESG-FAIL (i915#6367 / > i915#7996) > > Build changes > > * CI: CI-20190529 -> None > * IGT: IGT_7221 -> IGTPW_8688 > > CI-20190529: 20190529 > CI_DRM_12921: 3de6040ce9900a94ec626662d5c6a227b37eeb1c @ > git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_8688: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ > https://gitlab.freedesktop.org/drm/igt-gpu-tools.git ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 18:48 ` Zbigniew Kempczyński @ 2023-03-28 5:02 ` Yedireswarapu, SaiX Nandan 0 siblings, 0 replies; 9+ messages in thread From: Yedireswarapu, SaiX Nandan @ 2023-03-28 5:02 UTC (permalink / raw) To: Kempczynski, Zbigniew, igt-dev@lists.freedesktop.org Cc: Marikkar, SanjuX, Veesam, RavitejaX Hi, Issue re-reported, https://patchwork.freedesktop.org/series/115672/ Thanks, Y Sai Nandan -----Original Message----- From: Kempczynski, Zbigniew <zbigniew.kempczynski@intel.com> Sent: Tuesday, March 28, 2023 12:19 AM To: igt-dev@lists.freedesktop.org; Yedireswarapu, SaiX Nandan <saix.nandan.yedireswarapu@intel.com> Subject: Re: ✗ Fi.CI.BAT: failure for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH On Mon, Mar 27, 2023 at 06:27:18PM +0000, Patchwork wrote: > Patch Details > > Series: lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH > URL: https://patchwork.freedesktop.org/series/115672/ > State: failure > Details: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > > CI Bug Log - changes from CI_DRM_12921 -> IGTPW_8688 > > Summary > > FAILURE > > Serious unknown changes coming with IGTPW_8688 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_8688, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in > CI. > > External URL: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > > Participating hosts (37 -> 36) > > Missing (1): fi-kbl-soraka > > Possible new issues > > Here are the unknown changes that may have been introduced in IGTPW_8688: > > IGT changes > > Possible regressions > > * igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1: > * bat-dg2-8: PASS -> FAIL Unrelated to the change. May I ask for run shards for it? -- Zbigniew > > Known issues > > Here are the changes found in IGTPW_8688 that come from known issues: > > IGT changes > > Issues hit > > * igt@i915_selftest@live@execlists: > > * fi-bsw-n3050: PASS -> ABORT (i915#7911 / i915#7913) > * igt@i915_selftest@live@slpc: > > * bat-rpls-2: NOTRUN -> DMESG-FAIL (i915#6997 / i915#7913) > * igt@kms_chamelium_hpd@common-hpd-after-suspend: > > * bat-rpls-2: NOTRUN -> SKIP (i915#7828) > > * bat-rpls-1: NOTRUN -> SKIP (i915#7828) > > * igt@kms_pipe_crc_basic@suspend-read-crc: > > * bat-rpls-1: NOTRUN -> SKIP (i915#1845) > > * bat-rpls-2: NOTRUN -> SKIP (i915#1845) > > * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3: > > * bat-dg2-11: PASS -> INCOMPLETE (i915#1982 / i915#7908) > > Possible fixes > > * igt@gem_exec_suspend@basic-s3@smem: > > * bat-rpls-1: ABORT (i915#6687 / i915#7978) -> PASS > * igt@i915_selftest@live@reset: > > * bat-rpls-2: ABORT (i915#4983 / i915#7913) -> PASS > > Warnings > > * igt@i915_selftest@live@slpc: > * bat-rpls-1: DMESG-FAIL (i915#6367) -> DMESG-FAIL (i915#6367 / > i915#7996) > > Build changes > > * CI: CI-20190529 -> None > * IGT: IGT_7221 -> IGTPW_8688 > > CI-20190529: 20190529 > CI_DRM_12921: 3de6040ce9900a94ec626662d5c6a227b37eeb1c @ > git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_8688: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html > IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ > https://gitlab.freedesktop.org/drm/igt-gpu-tools.git ^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński 2023-03-27 18:27 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork @ 2023-03-28 4:37 ` Patchwork 2023-03-28 12:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork ` (2 subsequent siblings) 4 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2023-03-28 4:37 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 5309 bytes --] == Series Details == Series: lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH URL : https://patchwork.freedesktop.org/series/115672/ State : success == Summary == CI Bug Log - changes from CI_DRM_12921 -> IGTPW_8688 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html Participating hosts (37 -> 36) ------------------------------ Missing (1): fi-kbl-soraka Known issues ------------ Here are the changes found in IGTPW_8688 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@execlists: - fi-bsw-n3050: [PASS][1] -> [ABORT][2] ([i915#7911] / [i915#7913]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/fi-bsw-n3050/igt@i915_selftest@live@execlists.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/fi-bsw-n3050/igt@i915_selftest@live@execlists.html * igt@i915_selftest@live@slpc: - bat-rpls-2: NOTRUN -> [DMESG-FAIL][3] ([i915#6997] / [i915#7913]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@i915_selftest@live@slpc.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-rpls-2: NOTRUN -> [SKIP][4] ([i915#7828]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html - bat-rpls-1: NOTRUN -> [SKIP][5] ([i915#7828]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1: - bat-dg2-8: [PASS][6] -> [FAIL][7] ([i915#7932]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-dg2-8/igt@kms_pipe_crc_basic@compare-crc-sanitycheck@pipe-d-dp-1.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-rpls-1: NOTRUN -> [SKIP][8] ([i915#1845]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html - bat-rpls-2: NOTRUN -> [SKIP][9] ([i915#1845]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3: - bat-dg2-11: [PASS][10] -> [INCOMPLETE][11] ([i915#1982] / [i915#7908]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-3.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s3@smem: - bat-rpls-1: [ABORT][12] ([i915#6687] / [i915#7978]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html * igt@i915_selftest@live@reset: - bat-rpls-2: [ABORT][14] ([i915#4983] / [i915#7913]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-2/igt@i915_selftest@live@reset.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-2/igt@i915_selftest@live@reset.html #### Warnings #### * igt@i915_selftest@live@slpc: - bat-rpls-1: [DMESG-FAIL][16] ([i915#6367]) -> [DMESG-FAIL][17] ([i915#6367] / [i915#7996]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/bat-rpls-1/igt@i915_selftest@live@slpc.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/bat-rpls-1/igt@i915_selftest@live@slpc.html [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7908]: https://gitlab.freedesktop.org/drm/intel/issues/7908 [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932 [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978 [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7221 -> IGTPW_8688 CI-20190529: 20190529 CI_DRM_12921: 3de6040ce9900a94ec626662d5c6a227b37eeb1c @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8688: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html [-- Attachment #2: Type: text/html, Size: 6483 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński 2023-03-27 18:27 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2023-03-28 4:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork @ 2023-03-28 12:02 ` Patchwork 2023-03-28 13:06 ` [igt-dev] [PATCH i-g-t] " Kamil Konieczny 2023-03-28 13:12 ` Matthew Auld 4 siblings, 0 replies; 9+ messages in thread From: Patchwork @ 2023-03-28 12:02 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 14885 bytes --] == Series Details == Series: lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH URL : https://patchwork.freedesktop.org/series/115672/ State : success == Summary == CI Bug Log - changes from CI_DRM_12921_full -> IGTPW_8688_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html Participating hosts (7 -> 7) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in IGTPW_8688_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_fair@basic-deadline: - shard-glk: [PASS][1] -> [FAIL][2] ([i915#2846]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-glk1/igt@gem_exec_fair@basic-deadline.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk3/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [PASS][3] -> [FAIL][4] ([i915#2842]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_lmem_swapping@parallel-random-engines: - shard-glk: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk5/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [PASS][6] -> [ABORT][7] ([i915#5566]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-glk1/igt@gen9_exec_parse@allowed-single.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk2/igt@gen9_exec_parse@allowed-single.html * igt@i915_module_load@reload-with-fault-injection: - shard-snb: [PASS][8] -> [ABORT][9] ([i915#4528]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-snb7/igt@i915_module_load@reload-with-fault-injection.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-snb5/igt@i915_module_load@reload-with-fault-injection.html * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#3886]) +2 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl1/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [PASS][11] -> [FAIL][12] ([i915#2346]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-apl: [PASS][13] -> [FAIL][14] ([i915#2346]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-glk: NOTRUN -> [SKIP][15] ([fdo#109271]) +18 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-dp-1: - shard-apl: NOTRUN -> [SKIP][16] ([fdo#109271]) +76 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl6/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-dp-1.html * igt@kms_psr2_sf@plane-move-sf-dmg-area: - shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#658]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl3/igt@kms_psr2_sf@plane-move-sf-dmg-area.html #### Possible fixes #### * igt@gem_ctx_exec@basic-nohangcheck: - {shard-tglu}: [FAIL][18] ([i915#6268]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-tglu-7/igt@gem_ctx_exec@basic-nohangcheck.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-tglu-3/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_exec_fair@basic-pace-share@rcs0: - {shard-tglu}: [FAIL][20] ([i915#2842]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-tglu-10/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_mmap_offset@clear@smem0: - {shard-dg1}: [DMESG-WARN][22] ([i915#8304]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-dg1-17/igt@gem_mmap_offset@clear@smem0.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-dg1-16/igt@gem_mmap_offset@clear@smem0.html * igt@gen9_exec_parse@allowed-all: - shard-apl: [ABORT][24] ([i915#5566]) -> [PASS][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-apl6/igt@gen9_exec_parse@allowed-all.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl2/igt@gen9_exec_parse@allowed-all.html * igt@i915_pm_dc@dc9-dpms: - shard-apl: [SKIP][26] ([fdo#109271]) -> [PASS][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-apl7/igt@i915_pm_dc@dc9-dpms.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl3/igt@i915_pm_dc@dc9-dpms.html * igt@i915_pm_rc6_residency@rc6-idle@vecs0: - {shard-dg1}: [FAIL][28] ([i915#3591]) -> [PASS][29] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html * igt@i915_pm_rpm@dpms-mode-unset-lpsp: - {shard-dg1}: [SKIP][30] ([i915#1397]) -> [PASS][31] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-dg1-15/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-dg1-14/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html * igt@i915_selftest@live@gt_heartbeat: - shard-apl: [DMESG-FAIL][32] ([i915#5334]) -> [PASS][33] [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-apl2/igt@i915_selftest@live@gt_heartbeat.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl3/igt@i915_selftest@live@gt_heartbeat.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes: - shard-apl: [ABORT][34] ([i915#180]) -> [PASS][35] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-apl2/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-apl2/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html * {igt@perf@oa-exponents@0-rcs0}: - shard-glk: [ABORT][36] ([i915#5213]) -> [PASS][37] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12921/shard-glk3/igt@perf@oa-exponents@0-rcs0.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/shard-glk1/igt@perf@oa-exponents@0-rcs0.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#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [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#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [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#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952 [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404 [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#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391 [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [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#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#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [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#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150 [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211 [i915#8304]: https://gitlab.freedesktop.org/drm/intel/issues/8304 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7221 -> IGTPW_8688 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_12921: 3de6040ce9900a94ec626662d5c6a227b37eeb1c @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8688: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8688/index.html IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ 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_8688/index.html [-- Attachment #2: Type: text/html, Size: 11262 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński ` (2 preceding siblings ...) 2023-03-28 12:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2023-03-28 13:06 ` Kamil Konieczny 2023-03-28 13:12 ` Matthew Auld 4 siblings, 0 replies; 9+ messages in thread From: Kamil Konieczny @ 2023-03-28 13:06 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev Hi Zbigniew, On 2023-03-27 at 17:43:59 +0200, Zbigniew Kempczyński wrote: > From: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > > Adding xeph_gpgpu_fillfunc to have gpgpu_fill running on XEPH (DG2). > On XEPH there's no GPGPU_WALK command, it has COMPUTE_WALK what requires > pipeline creation change. > > Shader used in the test was taken from previous generation with > adding SWSB dependency tracking. SWSB was added using iga64 automatic > dependency generating: > > iga64 -p=12p5 -Xauto-deps shader.asm > > Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > lib/gen8_media.h | 2 + > lib/gpgpu_fill.c | 65 +++++ > lib/gpgpu_fill.h | 6 + > lib/gpu_cmds.c | 251 +++++++++++++++++++ > lib/gpu_cmds.h | 35 +++ > lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm | 12 + > lib/intel_batchbuffer.c | 18 +- > lib/xeph_media.h | 207 +++++++++++++++ > 8 files changed, 588 insertions(+), 8 deletions(-) > create mode 100644 lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm > create mode 100644 lib/xeph_media.h > > diff --git a/lib/gen8_media.h b/lib/gen8_media.h > index d2a049a1ec..b5c19e503c 100644 > --- a/lib/gen8_media.h > +++ b/lib/gen8_media.h > @@ -23,6 +23,8 @@ > #define GEN8_MEDIA_STATE_FLUSH GFXPIPE(2, 0, 4) > #define GEN8_MEDIA_OBJECT GFXPIPE(2, 1, 0) > > +#define GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC GFXPIPE(3, 1, 25) > + > struct gen8_interface_descriptor_data > { > struct { > diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c > index 0f031a5248..5655ec9477 100644 > --- a/lib/gpgpu_fill.c > +++ b/lib/gpgpu_fill.c > @@ -99,6 +99,19 @@ static const uint32_t gen12_gpgpu_kernel[][4] = { > { 0x00040131, 0x00000004, 0x7020700c, 0x10000000 }, > }; > > +static const uint32_t xeph_gpgpu_kernel[][4] = { > + { 0x00020061, 0x01050000, 0x00000104, 0x00000000 }, > + { 0x00000069, 0x02058220, 0x02000024, 0x00000004 }, > + { 0x00000061, 0x02250220, 0x000000c4, 0x00000000 }, > + { 0x00030061, 0x04050220, 0x00460005, 0x00000000 }, > + { 0x00011a61, 0x04050220, 0x00220205, 0x00000000 }, > + { 0x00000061, 0x04454220, 0x00000000, 0x0000000f }, > + { 0x00041e61, 0x05050220, 0x00000104, 0x00000000 }, > + { 0x80001901, 0x00010000, 0x00000000, 0x00000000 }, > + { 0x00044031, 0x00000000, 0xc0000414, 0x02a00000 }, > + { 0x00030031, 0x00000004, 0x3000500c, 0x00000000 }, > +}; > + > /* > * This sets up the gpgpu pipeline, > * > @@ -280,6 +293,47 @@ __gen9_gpgpu_fillfunc(int i915, > intel_bb_destroy(ibb); > } > > +static void > +__xeph_gpgpu_fillfunc(int i915, > + struct intel_buf *buf, > + unsigned int x, unsigned int y, > + unsigned int width, unsigned int height, > + uint8_t color, const uint32_t kernel[][4], > + size_t kernel_size) > +{ > + struct intel_bb *ibb; > + struct xeph_interface_descriptor_data idd; > + (void) x; > + (void) y; > + > + ibb = intel_bb_create(i915, PAGE_SIZE); > + intel_bb_add_intel_buf(ibb, buf, true); > + > + intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT); > + > + xeph_fill_interface_descriptor(ibb, buf, > + kernel, kernel_size, &idd); > + > + intel_bb_ptr_set(ibb, 0); > + > + /* GPGPU pipeline */ > + intel_bb_out(ibb, GEN7_PIPELINE_SELECT | GEN9_PIPELINE_SELECTION_MASK | > + PIPELINE_SELECT_GPGPU); > + xeph_emit_state_base_address(ibb); > + xeph_emit_state_compute_mode(ibb); > + xeph_emit_state_binding_table_pool_alloc(ibb); > + xeph_emit_cfe_state(ibb, THREADS); > + xeph_emit_compute_walk(ibb, width, height, &idd, color); > + > + intel_bb_out(ibb, MI_BATCH_BUFFER_END); > + intel_bb_ptr_align(ibb, 32); > + > + intel_bb_exec(ibb, intel_bb_offset(ibb), > + I915_EXEC_DEFAULT | I915_EXEC_NO_RELOC, true); > + > + intel_bb_destroy(ibb); > +} > + > void gen9_gpgpu_fillfunc(int i915, > struct intel_buf *buf, > unsigned x, unsigned y, > @@ -312,3 +366,14 @@ void gen12_gpgpu_fillfunc(int i915, > gen12_gpgpu_kernel, > sizeof(gen12_gpgpu_kernel)); > } > + > +void xeph_gpgpu_fillfunc(int i915, > + struct intel_buf *buf, > + unsigned int x, unsigned int y, > + unsigned int width, unsigned int height, > + uint8_t color) > +{ > + __xeph_gpgpu_fillfunc(i915, buf, x, y, width, height, color, > + xeph_gpgpu_kernel, > + sizeof(xeph_gpgpu_kernel)); > +} > diff --git a/lib/gpgpu_fill.h b/lib/gpgpu_fill.h > index 25abe1fa19..15ef147ce0 100644 > --- a/lib/gpgpu_fill.h > +++ b/lib/gpgpu_fill.h > @@ -61,4 +61,10 @@ void gen12_gpgpu_fillfunc(int i915, > unsigned width, unsigned height, > uint8_t color); > > +void > +xeph_gpgpu_fillfunc(int i915, > + struct intel_buf *dst, > + unsigned int x, unsigned int y, > + unsigned int width, unsigned int height, > + uint8_t color); > #endif /* GPGPU_FILL_H */ > diff --git a/lib/gpu_cmds.c b/lib/gpu_cmds.c > index c31b51f7b4..0abca0a007 100644 > --- a/lib/gpu_cmds.c > +++ b/lib/gpu_cmds.c > @@ -262,6 +262,10 @@ gen7_fill_binding_table(struct intel_bb *ibb, > binding_table[0] = gen7_fill_surface_state(ibb, buf, > SURFACEFORMAT_R8_UNORM, 1); > > + else if (intel_graphics_ver(devid) >= IP_VER(12, 50)) > + binding_table[0] = xeph_fill_surface_state(ibb, buf, > + SURFACEFORMAT_R8_UNORM, 1); > + > else > binding_table[0] = gen8_fill_surface_state(ibb, buf, > SURFACEFORMAT_R8_UNORM, 1); > @@ -773,3 +777,250 @@ gen7_emit_media_objects(struct intel_bb *ibb, > for (j = 0; j < height / 16; j++) > gen_emit_media_object(ibb, x + i * 16, y + j * 16); > } > + > +/* > + * XEPH > + */ > +void > +xeph_fill_interface_descriptor(struct intel_bb *ibb, > + struct intel_buf *dst, > + const uint32_t kernel[][4], > + size_t size, > + struct xeph_interface_descriptor_data *idd) > +{ > + uint32_t binding_table_offset, kernel_offset; > + > + binding_table_offset = gen7_fill_binding_table(ibb, dst); > + kernel_offset = gen7_fill_kernel(ibb, kernel, size); > + > + memset(idd, 0, sizeof(*idd)); > + idd->desc0.kernel_start_pointer = (kernel_offset >> 6); > + > + idd->desc2.single_program_flow = 1; > + idd->desc2.floating_point_mode = GEN8_FLOATING_POINT_IEEE_754; > + > + idd->desc3.sampler_count = 0; /* 0 samplers used */ > + idd->desc3.sampler_state_pointer = 0; > + > + idd->desc4.binding_table_entry_count = 0; > + idd->desc4.binding_table_pointer = (binding_table_offset >> 5); > + > + idd->desc5.num_threads_in_tg = 1; > +} > + > +uint32_t > +xeph_fill_surface_state(struct intel_bb *ibb, > + struct intel_buf *buf, > + uint32_t format, > + int is_dst) > +{ > + struct xeph_surface_state *ss; > + uint32_t write_domain, read_domain, offset; > + uint64_t address; > + > + if (is_dst) { > + write_domain = read_domain = I915_GEM_DOMAIN_RENDER; > + } else { > + write_domain = 0; > + read_domain = I915_GEM_DOMAIN_SAMPLER; > + } > + > + intel_bb_ptr_align(ibb, 64); > + offset = intel_bb_offset(ibb); > + ss = intel_bb_ptr(ibb); > + intel_bb_ptr_add(ibb, 64); > + > + ss->ss0.surface_type = SURFACE_2D; > + ss->ss0.surface_format = format; > + ss->ss0.render_cache_read_write = 1; > + ss->ss0.vertical_alignment = 1; /* align 4 */ > + ss->ss0.horizontal_alignment = 1; /* align 4 */ > + > + if (buf->tiling == I915_TILING_X) > + ss->ss0.tiled_mode = 2; > + else if (buf->tiling == I915_TILING_Y || buf->tiling == I915_TILING_4) > + ss->ss0.tiled_mode = 3; > + > + address = intel_bb_offset_reloc(ibb, buf->handle, > + read_domain, write_domain, > + offset + 4 * 8, 0x0); > + > + ss->ss8.base_addr_lo = (uint32_t) address; > + ss->ss9.base_addr_hi = address >> 32; > + > + ss->ss2.height = intel_buf_height(buf) - 1; > + ss->ss2.width = intel_buf_width(buf) - 1; > + ss->ss3.pitch = buf->surface[0].stride - 1; > + > + ss->ss7.shader_channel_select_r = 4; > + ss->ss7.shader_channel_select_g = 5; > + ss->ss7.shader_channel_select_b = 6; > + ss->ss7.shader_channel_select_a = 7; > + > + return offset; > +} > + > +void > +xeph_emit_cfe_state(struct intel_bb *ibb, uint32_t threads) > +{ > + bool dfeud = CFE_CAN_DISABLE_FUSED_EU_DISPATCH(ibb->devid); > + > + intel_bb_out(ibb, XEPH_CFE_STATE | (6 - 2)); > + > + /* scratch buffer */ > + intel_bb_out(ibb, 0); > + intel_bb_out(ibb, 0); > + > +#define _LEGACY_MODE (1 << 6) > + /* number of threads & urb entries */ > + intel_bb_out(ibb, (max_t(threads, threads, 64) - 1) << 16 | (dfeud ? _LEGACY_MODE : 0)); > + > + intel_bb_out(ibb, 0); > + intel_bb_out(ibb, 0); > +} > + > +void > +xeph_emit_state_compute_mode(struct intel_bb *ibb) > +{ > + intel_bb_out(ibb, XEPH_STATE_COMPUTE_MODE); > + intel_bb_out(ibb, 0); > +} > + > +void > +xeph_emit_state_binding_table_pool_alloc(struct intel_bb *ibb) > +{ > + intel_bb_out(ibb, GEN8_3DSTATE_BINDING_TABLE_POOL_ALLOC | 2); > + intel_bb_emit_reloc(ibb, ibb->handle, > + I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, > + 0, 0, 0x0); > + intel_bb_out(ibb, 1 << 12); > +} > + > +void > +xeph_emit_state_base_address(struct intel_bb *ibb) > +{ > + intel_bb_out(ibb, GEN8_STATE_BASE_ADDRESS | 0x14); //dw0 > + > + /* general */ > + intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw1-dw2 > + intel_bb_out(ibb, 0); > + > + /* stateless data port */ > + intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw3 > + > + /* surface */ > + intel_bb_emit_reloc(ibb, ibb->handle, I915_GEM_DOMAIN_SAMPLER, //dw4-dw5 > + 0, BASE_ADDRESS_MODIFY, 0x0); > + > + /* dynamic */ > + intel_bb_emit_reloc(ibb, ibb->handle, //dw6-dw7 > + I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, > + 0, BASE_ADDRESS_MODIFY, 0x0); > + > + /* indirect */ > + intel_bb_out(ibb, 0); //dw8-dw9 > + intel_bb_out(ibb, 0); > + > + /* instruction */ > + intel_bb_emit_reloc(ibb, ibb->handle, > + I915_GEM_DOMAIN_INSTRUCTION, //dw10-dw11 > + 0, BASE_ADDRESS_MODIFY, 0x0); > + > + /* general state buffer size */ > + intel_bb_out(ibb, 0xfffff000 | 1); //dw12 > + /* dynamic state buffer size */ > + intel_bb_out(ibb, 1 << 12 | 1); //dw13 > + /* indirect object buffer size */ > + intel_bb_out(ibb, 0xfffff000 | 1); //dw14 > + /* intruction buffer size */ > + intel_bb_out(ibb, 1 << 12 | 1); //dw15 > + > + /* Bindless surface state base address */ > + intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw16 > + intel_bb_out(ibb, 0); //dw17 > + intel_bb_out(ibb, 0xfffff000); //dw18 > + > + /* Bindless sampler state base address */ > + intel_bb_out(ibb, 0 | BASE_ADDRESS_MODIFY); //dw19 > + intel_bb_out(ibb, 0); //dw20 > + intel_bb_out(ibb, 0); //dw21 > +} > + > +void > +xeph_emit_compute_walk(struct intel_bb *ibb, > + unsigned int width, unsigned int height, > + struct xeph_interface_descriptor_data *pidd, > + uint8_t color) > +{ > + uint32_t x_dim, y_dim; > + > + /* > + * Simply do SIMD16 based dispatch, so every thread uses > + * SIMD16 channels. > + * > + * Define our own thread group size, e.g 16x1 for every group, then > + * will have 1 thread each group in SIMD16 dispatch. So thread > + * width/height/depth are all 1. > + * > + * Then thread group X = width / 16 (aligned to 16) > + * thread group Y = height; > + */ > + x_dim = (width + 15) / 16; > + y_dim = height; > + > + intel_bb_out(ibb, XEPH_COMPUTE_WALKER | 0x25); > + > + intel_bb_out(ibb, 0); /* debug object */ //dw1 > + intel_bb_out(ibb, 0); /* indirect data length */ //dw2 > + intel_bb_out(ibb, 0); /* indirect data offset */ //dw3 > + > + /* SIMD size */ > + intel_bb_out(ibb, 1 << 30 | 1 << 25); /* SIMD16 | enable inline */ //dw4 > + > + /* Execution mask */ > + intel_bb_out(ibb, 0xffffffff); //dw5 > + > + /* x/y/z max */ > + intel_bb_out(ibb, (x_dim << 20) | (y_dim << 10) | 1); //dw6 > + > + /* x dim */ > + intel_bb_out(ibb, x_dim); //dw7 > + > + /* y dim */ > + intel_bb_out(ibb, y_dim); //dw8 > + > + /* z dim */ > + intel_bb_out(ibb, 1); //dw9 > + > + /* group id x/y/z */ > + intel_bb_out(ibb, 0); //dw10 > + intel_bb_out(ibb, 0); //dw11 > + intel_bb_out(ibb, 0); //dw12 > + > + /* partition id / partition size */ > + intel_bb_out(ibb, 0); //dw13 > + intel_bb_out(ibb, 0); //dw14 > + > + /* preempt x/y/z */ > + intel_bb_out(ibb, 0); //dw15 > + intel_bb_out(ibb, 0); //dw16 > + intel_bb_out(ibb, 0); //dw17 > + > + /* Interface descriptor data */ > + for (int i = 0; i < 8; i++) { //dw18-25 > + intel_bb_out(ibb, ((uint32_t *) pidd)[i]); > + } > + > + /* Postsync data */ > + intel_bb_out(ibb, 0); //dw26 > + intel_bb_out(ibb, 0); //dw27 > + intel_bb_out(ibb, 0); //dw28 > + intel_bb_out(ibb, 0); //dw29 > + intel_bb_out(ibb, 0); //dw30 > + > + /* Inline data */ > + intel_bb_out(ibb, (uint32_t) color); //dw31 > + for (int i = 0; i < 7; i++) { //dw32-38 > + intel_bb_out(ibb, 0x0); > + } > +} > diff --git a/lib/gpu_cmds.h b/lib/gpu_cmds.h > index 56f09b6e1e..ac9d4c07c8 100644 > --- a/lib/gpu_cmds.h > +++ b/lib/gpu_cmds.h > @@ -30,6 +30,7 @@ > #include "media_fill.h" > #include "gen7_media.h" > #include "gen8_media.h" > +#include "xeph_media.h" > #include "intel_reg.h" > #include "drmtest.h" > #include "intel_batchbuffer.h" > @@ -107,4 +108,38 @@ void > gen7_emit_media_objects(struct intel_bb *ibb, > unsigned int x, unsigned int y, > unsigned int width, unsigned int height); > + > +void > +xeph_fill_interface_descriptor(struct intel_bb *ibb, > + struct intel_buf *dst, > + const uint32_t kernel[][4], > + size_t size, > + struct xeph_interface_descriptor_data *idd); > + > +uint32_t > +xeph_fill_surface_state(struct intel_bb *ibb, > + struct intel_buf *buf, > + uint32_t format, > + int is_dst); > + > +void > +xeph_emit_state_compute_mode(struct intel_bb *ibb); > + > +void > +xeph_emit_state_binding_table_pool_alloc(struct intel_bb *ibb); > + > +void > +xeph_emit_cfe_state(struct intel_bb *ibb, uint32_t threads); > + > +#define CFE_CAN_DISABLE_FUSED_EU_DISPATCH(devid) (IS_DG2(devid)) > + > +void > +xeph_emit_state_base_address(struct intel_bb *ibb); > + > +void > +xeph_emit_compute_walk(struct intel_bb *ibb, > + unsigned int width, unsigned int height, > + struct xeph_interface_descriptor_data *pidd, > + uint8_t color); > + > #endif /* GPU_CMDS_H */ > diff --git a/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm b/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm > new file mode 100644 > index 0000000000..7adfbd0f04 > --- /dev/null > +++ b/lib/i915/shaders/gpgpu/xeph_gpgpu_kernel.asm > @@ -0,0 +1,12 @@ > +L0: > + mov (4|M0) r1.0<1>:ub r1.0<0;1,0>:ub > + shl (1|M0) r2.0<1>:ud r0.1<0;1,0>:ud 0x4:ud > + mov (1|M0) r2.1<1>:ud r0.6<0;1,0>:ud > + mov (8|M0) r4.0<1>:ud r0.0<8;8,1>:ud > + mov (2|M0) r4.0<1>:ud r2.0<2;2,1>:ud {I@2} > + mov (1|M0) r4.2<1>:ud 0xF:ud > + mov (16|M0) r5.0<1>:ud r1.0<0;1,0>:ud {I@6} > +(W) sync.nop null {I@1} > + send.dc1 (16|M0) null r4 null 0x0 0x40A8000 {$0} // wr:2h+0, rd:0, Media Block Write msc:0, to #0 > + send.gtwy (8|M0) null r80 null 0x0 0x02000000 {EOT} > +L176: > diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c > index da4c238cae..6850f3a864 100644 > --- a/lib/intel_batchbuffer.c > +++ b/lib/intel_batchbuffer.c > @@ -747,16 +747,18 @@ igt_fillfunc_t igt_get_gpgpu_fillfunc(int devid) > { > igt_fillfunc_t fill = NULL; > > - if (IS_GEN7(devid)) > - fill = gen7_gpgpu_fillfunc; > - else if (IS_GEN8(devid)) > - fill = gen8_gpgpu_fillfunc; > - else if (IS_GEN9(devid) || IS_GEN10(devid)) > - fill = gen9_gpgpu_fillfunc; > - else if (IS_GEN11(devid)) > - fill = gen11_gpgpu_fillfunc; > + if (intel_graphics_ver(devid) >= IP_VER(12, 50)) > + fill = xeph_gpgpu_fillfunc; > else if (IS_GEN12(devid)) > fill = gen12_gpgpu_fillfunc; > + else if (IS_GEN11(devid)) > + fill = gen11_gpgpu_fillfunc; > + else if (IS_GEN9(devid) || IS_GEN10(devid)) > + fill = gen9_gpgpu_fillfunc; > + else if (IS_GEN8(devid)) > + fill = gen8_gpgpu_fillfunc; > + else if (IS_GEN7(devid)) > + fill = gen7_gpgpu_fillfunc; > > return fill; > } > diff --git a/lib/xeph_media.h b/lib/xeph_media.h > new file mode 100644 > index 0000000000..0a93e649f0 > --- /dev/null > +++ b/lib/xeph_media.h > @@ -0,0 +1,207 @@ > +/* SPDX-License-Identifier: MIT */ Please add Copyright here, with that: Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> -- Kamil > + > +#ifndef XEPH_MEDIA_H > +#define XEPH_MEDIA_H > + > +#include <stdint.h> > +#include "surfaceformat.h" > +#include "gen7_media.h" > + > +#define GFXPIPE_XEPH(Pipeline, Opcode, Subopcode) ((3 << 29) | \ > + ((Pipeline) << 27) | \ > + ((Opcode) << 24) | \ > + ((Subopcode) << 18)) > + > +#define XEPH_STATE_COMPUTE_MODE GFXPIPE(0, 1, 5) > +#define XEPH_CFE_STATE GFXPIPE_XEPH(2, 2, 0) > +#define XEPH_COMPUTE_WALKER GFXPIPE_XEPH(2, 2, 2) > + > +#define BITRANGE(start, end) (end - start + 1) > + > +struct xeph_interface_descriptor_data { > + struct { > + uint32_t pad0: BITRANGE(0, 5); > + uint32_t kernel_start_pointer: BITRANGE(6, 31); > + } desc0; > + > + struct { > + uint32_t kernel_start_pointer_high: BITRANGE(0, 15); > + uint32_t pad0: BITRANGE(16, 31); > + } desc1; > + > + struct { > + uint32_t pad0: BITRANGE(0, 6); > + uint32_t software_exception_enable: BITRANGE(7, 7); > + uint32_t pad1: BITRANGE(8, 10); > + uint32_t maskstack_exception_enable: BITRANGE(11, 11); > + uint32_t pad2: BITRANGE(12, 12); > + uint32_t illegal_opcode_exception_enable: BITRANGE(13, 13); > + uint32_t pad3: BITRANGE(14, 15); > + uint32_t floating_point_mode: BITRANGE(16, 16); > + uint32_t pad4: BITRANGE(17, 17); > + uint32_t single_program_flow: BITRANGE(18, 18); > + uint32_t denorm_mode: BITRANGE(19, 19); > + uint32_t thread_preemption_disable: BITRANGE(20, 20); > + uint32_t pad5: BITRANGE(21, 31); > + } desc2; > + > + struct { > + uint32_t pad0: BITRANGE(0, 1); > + uint32_t sampler_count: BITRANGE(2, 4); > + uint32_t sampler_state_pointer: BITRANGE(5, 31); > + } desc3; > + > + struct { > + uint32_t binding_table_entry_count: BITRANGE(0, 4); > + uint32_t binding_table_pointer: BITRANGE(5, 20); > + uint32_t pad0: BITRANGE(21, 31); > + } desc4; > + > + struct { > + uint32_t num_threads_in_tg: BITRANGE(0, 9); > + uint32_t pad0: BITRANGE(10, 15); > + uint32_t shared_local_memory_size: BITRANGE(16, 20); > + uint32_t barrier_enable: BITRANGE(21, 21); > + uint32_t rounding_mode: BITRANGE(22, 23); > + uint32_t pad1: BITRANGE(24, 26); > + uint32_t thread_group_dispatch_size: BITRANGE(27, 27); > + uint32_t pad2: BITRANGE(28, 31); > + } desc5; > + > + struct { > + uint32_t pad0; > + } desc6; > + > + struct { > + uint32_t pad0; > + } desc7; > +}; > + > +struct xeph_surface_state { > + struct { > + uint32_t cube_pos_z: BITRANGE(0, 0); > + uint32_t cube_neg_z: BITRANGE(1, 1); > + uint32_t cube_pos_y: BITRANGE(2, 2); > + uint32_t cube_neg_y: BITRANGE(3, 3); > + uint32_t cube_pos_x: BITRANGE(4, 4); > + uint32_t cube_neg_x: BITRANGE(5, 5); > + uint32_t media_boundary_pixel_mode: BITRANGE(6, 7); > + uint32_t render_cache_read_write: BITRANGE(8, 8); > + uint32_t sampler_l2_bypass_disable: BITRANGE(9, 9); > + uint32_t vert_line_stride_ofs: BITRANGE(10, 10); > + uint32_t vert_line_stride: BITRANGE(11, 11); > + uint32_t tiled_mode: BITRANGE(12, 13); > + uint32_t horizontal_alignment: BITRANGE(14, 15); > + uint32_t vertical_alignment: BITRANGE(16, 17); > + uint32_t surface_format: BITRANGE(18, 26); /**< BRW_SURFACEFORMAT_x */ > + uint32_t astc_enable: BITRANGE(27, 27); > + uint32_t is_array: BITRANGE(28, 28); > + uint32_t surface_type: BITRANGE(29, 31); /**< BRW_SURFACE_1D/2D/3D/CUBE */ > + } ss0; > + > + struct { > + uint32_t qpitch: BITRANGE(0, 14); > + uint32_t sample_tap_discard_disable: BITRANGE(15, 15); > + uint32_t pad0: BITRANGE(16, 16); > + uint32_t double_fetch_disable: BITRANGE(17, 17); > + uint32_t corner_texel_mode: BITRANGE(18, 18); > + uint32_t base_mip_level: BITRANGE(19, 23); > + uint32_t memory_object_control: BITRANGE(24, 30); > + uint32_t unorm_path_in_color_pipe: BITRANGE(31, 31); > + } ss1; > + > + struct { > + uint32_t width: BITRANGE(0, 13); > + uint32_t pad0: BITRANGE(14, 15); > + uint32_t height: BITRANGE(16, 29); > + uint32_t pad1: BITRANGE(30, 30); > + uint32_t depth_stencil_resource: BITRANGE(31, 31); > + } ss2; > + > + struct { > + uint32_t pitch: BITRANGE(0, 17); > + uint32_t null_probing_enable: BITRANGE(18, 18); > + uint32_t standard_tiling_mode_ext: BITRANGE(19, 19); > + uint32_t pad0: BITRANGE(20, 20); > + uint32_t depth: BITRANGE(21, 31); > + } ss3; > + > + struct { > + uint32_t multisample_position_palette_index: BITRANGE(0, 2); > + uint32_t num_multisamples: BITRANGE(3, 5); > + uint32_t multisampled_surface_storage_format: BITRANGE(6, 6); > + uint32_t render_target_view_extent: BITRANGE(7, 17); > + uint32_t min_array_element: BITRANGE(18, 28); > + uint32_t rotation: BITRANGE(29, 30); > + uint32_t decompress_in_l3: BITRANGE(31, 31); > + } ss4; > + > + struct { > + uint32_t mip_count: BITRANGE(0, 3); > + uint32_t surface_min_lod: BITRANGE(4, 7); > + uint32_t mip_tail_start_lod: BITRANGE(8, 11); > + uint32_t yuv_bpt: BITRANGE(12, 13); > + uint32_t coherency_type: BITRANGE(14, 15); > + uint32_t pad0: BITRANGE(16, 17); > + uint32_t tiled_resource_mode: BITRANGE(18, 19); > + uint32_t ewa_disable_for_cube: BITRANGE(20, 20); > + uint32_t y_offset: BITRANGE(21, 23); > + uint32_t pad1: BITRANGE(24, 24); > + uint32_t x_offset: BITRANGE(25, 31); > + } ss5; > + > + struct { > + uint32_t pad; /* Multisample Control Surface stuff */ > + } ss6; > + > + struct { > + uint32_t resource_min_lod: BITRANGE(0, 11); > + uint32_t pad0: BITRANGE(12, 13); > + uint32_t disable_support_for_multigpu_atomics: BITRANGE(14, 14); > + uint32_t disable_support_for_multigpu_partwrite: BITRANGE(15, 15); > + uint32_t shader_channel_select_a: BITRANGE(16, 18); > + uint32_t shader_channel_select_b: BITRANGE(19, 21); > + uint32_t shader_channel_select_g: BITRANGE(22, 24); > + uint32_t shader_channel_select_r: BITRANGE(25, 27); > + uint32_t pad1: BITRANGE(28, 29); > + uint32_t memory_compression_enable: BITRANGE(30, 30); > + uint32_t memory_compression_mode: BITRANGE(31, 31); > + } ss7; > + > + struct { > + uint32_t base_addr_lo; > + } ss8; > + > + struct { > + uint32_t base_addr_hi; > + } ss9; > + > + struct { > + uint32_t pad0: BITRANGE(0, 11); > + uint32_t aux_base_addr_lo: BITRANGE(12, 31); > + } ss10; > + > + struct { > + uint32_t aux_base_addr_hi; > + } ss11; > + > + struct { > + uint32_t compression_format: BITRANGE(0, 4); > + uint32_t clear_address_lo: BITRANGE(5, 31); > + } ss12; > + > + struct { > + uint32_t clear_address_hi: BITRANGE(0, 15); > + uint32_t pad0: BITRANGE(16, 31); > + } ss13; > + > + struct { > + uint32_t reserved; > + } ss14; > + > + struct { > + uint32_t reserved; > + } ss15; > +}; > + > +#endif /* XEPH_MEDIA_H */ > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński ` (3 preceding siblings ...) 2023-03-28 13:06 ` [igt-dev] [PATCH i-g-t] " Kamil Konieczny @ 2023-03-28 13:12 ` Matthew Auld 2023-03-28 14:46 ` Zbigniew Kempczyński 4 siblings, 1 reply; 9+ messages in thread From: Matthew Auld @ 2023-03-28 13:12 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev On Mon, 27 Mar 2023 at 16:44, Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> wrote: > > From: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > > Adding xeph_gpgpu_fillfunc to have gpgpu_fill running on XEPH (DG2). > On XEPH there's no GPGPU_WALK command, it has COMPUTE_WALK what requires > pipeline creation change. Just a drive-by-comment, what is XEPH? Also in the patch itself. I have only ever seen XEHP and XELP. Is this a typo? s/PH/HP/ ? > > Shader used in the test was taken from previous generation with > adding SWSB dependency tracking. SWSB was added using iga64 automatic > dependency generating: > > iga64 -p=12p5 -Xauto-deps shader.asm > > Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH 2023-03-28 13:12 ` Matthew Auld @ 2023-03-28 14:46 ` Zbigniew Kempczyński 0 siblings, 0 replies; 9+ messages in thread From: Zbigniew Kempczyński @ 2023-03-28 14:46 UTC (permalink / raw) To: Matthew Auld; +Cc: igt-dev On Tue, Mar 28, 2023 at 02:12:59PM +0100, Matthew Auld wrote: > On Mon, 27 Mar 2023 at 16:44, Zbigniew Kempczyński > <zbigniew.kempczynski@intel.com> wrote: > > > > From: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > > > > Adding xeph_gpgpu_fillfunc to have gpgpu_fill running on XEPH (DG2). > > On XEPH there's no GPGPU_WALK command, it has COMPUTE_WALK what requires > > pipeline creation change. > > Just a drive-by-comment, what is XEPH? Also in the patch itself. I > have only ever seen XEHP and XELP. Is this a typo? s/PH/HP/ ? You're right, XEHP should be there. Don't ask me about rationale with using names instead of versioning strings - it is out of my decision. -- Zbigniew > > > > > Shader used in the test was taken from previous generation with > > adding SWSB dependency tracking. SWSB was added using iga64 automatic > > dependency generating: > > > > iga64 -p=12p5 -Xauto-deps shader.asm > > > > Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> > > Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-03-28 14:46 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-27 15:43 [igt-dev] [PATCH i-g-t] lib/gpgpu_fill: Implement gpgpu_fillfunc for XEPH Zbigniew Kempczyński 2023-03-27 18:27 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2023-03-27 18:48 ` Zbigniew Kempczyński 2023-03-28 5:02 ` Yedireswarapu, SaiX Nandan 2023-03-28 4:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork 2023-03-28 12:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2023-03-28 13:06 ` [igt-dev] [PATCH i-g-t] " Kamil Konieczny 2023-03-28 13:12 ` Matthew Auld 2023-03-28 14:46 ` Zbigniew Kempczyński
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox