* [igt-dev] [PATCH i-g-t 1/3] lib/igt_fb: round rgb->yuv conversion results
@ 2023-05-26 17:43 Swati Sharma
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check Swati Sharma
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Swati Sharma @ 2023-05-26 17:43 UTC (permalink / raw)
To: igt-dev
Round rgb->yuv conversion results.
Signed-off-by: Ville Syrjala <ville.syrjala@linux.intel.com>
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
lib/igt_fb.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 71a199d4..11a5d6c0 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -3064,11 +3064,16 @@ static void igt_fb_destroy_cairo_shadow_buffer(struct igt_fb *shadow,
munmap(ptr, shadow->size);
}
-static uint8_t clamprgb(float val)
+static uint8_t clamp8(float val)
{
return clamp((int)(val + 0.5f), 0, 255);
}
+static uint8_t clamp16(float val)
+{
+ return clamp((int)(val + 0.5f), 0, 65535);
+}
+
static void read_rgb(struct igt_vec4 *rgb, const uint8_t *rgb24)
{
rgb->d[0] = rgb24[2];
@@ -3079,9 +3084,9 @@ static void read_rgb(struct igt_vec4 *rgb, const uint8_t *rgb24)
static void write_rgb(uint8_t *rgb24, const struct igt_vec4 *rgb)
{
- rgb24[2] = clamprgb(rgb->d[0]);
- rgb24[1] = clamprgb(rgb->d[1]);
- rgb24[0] = clamprgb(rgb->d[2]);
+ rgb24[2] = clamp8(rgb->d[0]);
+ rgb24[1] = clamp8(rgb->d[1]);
+ rgb24[0] = clamp8(rgb->d[2]);
}
struct fb_convert_buf {
@@ -3401,7 +3406,7 @@ static void convert_rgb24_to_yuv(struct fb_convert *cvt)
rgb_tmp += bpp;
- *y_tmp = yuv.d[0];
+ *y_tmp = clamp8(yuv.d[0]);
y_tmp += params.ay_inc;
if ((i % dst_fmt->vsub) || (j % dst_fmt->hsub))
@@ -3431,8 +3436,8 @@ static void convert_rgb24_to_yuv(struct fb_convert *cvt)
read_rgb(&pair_rgb, pair_rgb24);
pair_yuv = igt_matrix_transform(&m, &pair_rgb);
- *u_tmp = (yuv.d[1] + pair_yuv.d[1]) / 2.0f;
- *v_tmp = (yuv.d[2] + pair_yuv.d[2]) / 2.0f;
+ *u_tmp = clamp8((yuv.d[1] + pair_yuv.d[1]) / 2.0f);
+ *v_tmp = clamp8((yuv.d[2] + pair_yuv.d[2]) / 2.0f);
u_tmp += params.uv_inc;
v_tmp += params.uv_inc;
@@ -3590,7 +3595,7 @@ static void convert_float_to_yuv16(struct fb_convert *cvt, bool alpha)
rgb_tmp += fpp;
- *y_tmp = yuv.d[0];
+ *y_tmp = clamp16(yuv.d[0]);
y_tmp += params.ay_inc;
if ((i % dst_fmt->vsub) || (j % dst_fmt->hsub))
@@ -3620,8 +3625,8 @@ static void convert_float_to_yuv16(struct fb_convert *cvt, bool alpha)
read_rgbf(&pair_rgb, pair_float);
pair_yuv = igt_matrix_transform(&m, &pair_rgb);
- *u_tmp = (yuv.d[1] + pair_yuv.d[1]) / 2.0f;
- *v_tmp = (yuv.d[2] + pair_yuv.d[2]) / 2.0f;
+ *u_tmp = clamp16((yuv.d[1] + pair_yuv.d[1]) / 2.0f);
+ *v_tmp = clamp16((yuv.d[2] + pair_yuv.d[2]) / 2.0f);
u_tmp += params.uv_inc;
v_tmp += params.uv_inc;
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check
2023-05-26 17:43 [igt-dev] [PATCH i-g-t 1/3] lib/igt_fb: round rgb->yuv conversion results Swati Sharma
@ 2023-05-26 17:43 ` Swati Sharma
2023-05-29 5:52 ` Modem, Bhanuprakash
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist Swati Sharma
2023-05-26 18:17 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/3] lib/igt_fb: round rgb->yuv conversion results Patchwork
2 siblings, 1 reply; 6+ messages in thread
From: Swati Sharma @ 2023-05-26 17:43 UTC (permalink / raw)
To: igt-dev
New CRC sanitycheck test case is added with NV12 format.
kms_plane@pixel-format test is validating all formats.
To improve BAT coverage we can have one planar format crc
sanity test.
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
tests/kms_pipe_crc_basic.c | 49 +++++++++++++++++++++++++++-----------
1 file changed, 35 insertions(+), 14 deletions(-)
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index 84c73fd7..a280a5c2 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -227,25 +227,34 @@ static void test_read_crc(data_t *data, enum pipe pipe,
}
/**
- * SUBTEST: compare-crc-sanitycheck
- * Description: Basic sanity check for CRC mismatches
+ * SUBTEST: compare-crc-sanitycheck-xr24
+ * Description: Basic sanity check for CRC mismatches with XR24 format
* Test category: functionality test
* Run type: BAT
* Functionality: crc
* Mega feature: General Display Features
+ *
+ * SUBTEST: compare-crc-sanitycheck-nv12
+ * Description: Basic sanity check for CRC mismatches with NV12 format
+ * Test category: functionality test
+ * Run type: BAT
+ * Functionality: crc
+ * Mega feature: General Display Features
+
*/
/*
* CRC-sanity test, to make sure there would be no CRC mismatches
*
- * - Create two framebuffers (FB0 & FB1) with same color info
- * - Flip FB0 with the Primary plane & collect the CRC as ref CRC.
- * - Flip FB1 with the Primary plane, collect the CRC & compare with
+ * - Create two framebuffers (FB0 & FB1)
+ * - Flip FB0 with the primary plane & collect the CRC as ref CRC.
+ * - Flip FB1 with the primary plane, collect the CRC & compare with
* the ref CRC.
*
* No CRC mismatch should happen
*/
-static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output,
+ uint32_t format)
{
igt_display_t *display = &data->display;
igt_plane_t *primary;
@@ -259,7 +268,6 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
mode = igt_output_get_mode(output);
- /* Create two framebuffers with the same color info. */
igt_create_color_fb(data->drm_fd,
mode->hdisplay, mode->vdisplay,
DRM_FORMAT_XRGB8888,
@@ -267,13 +275,12 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
1.0, 1.0, 1.0,
&fb0);
igt_create_color_fb(data->drm_fd,
- mode->hdisplay, mode->vdisplay,
- DRM_FORMAT_XRGB8888,
+ mode->hdisplay, mode->vdisplay, format,
DRM_FORMAT_MOD_LINEAR,
1.0, 1.0, 1.0,
&fb1);
- /* Flip FB0 with the Primary plane & collect the CRC as ref CRC. */
+ /* Flip FB0 with the primary plane & collect the CRC as ref CRC. */
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, &fb0);
igt_display_commit(display);
@@ -282,7 +289,7 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
IGT_PIPE_CRC_SOURCE_AUTO);
igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
- /* Flip FB1 with the Primary plane & compare the CRC with ref CRC. */
+ /* Flip FB1 with the primary plane & compare the CRC with ref CRC. */
igt_plane_set_fb(primary, &fb1);
igt_display_commit(display);
@@ -475,8 +482,22 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
}
}
- igt_describe("Basic sanity check for CRC mismatches");
- igt_subtest_with_dynamic("compare-crc-sanitycheck") {
+ igt_describe("Basic sanity check for CRC mismatches with XR24 format");
+ igt_subtest_with_dynamic("compare-crc-sanitycheck-xr24") {
+ for_each_pipe_with_single_output(&data.display, pipe, output) {
+ if (simulation_constraint(pipe))
+ continue;
+
+ if(!pipe_output_combo_valid(&data.display, pipe, output))
+ continue;
+
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
+ test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888);
+ }
+ }
+
+ igt_describe("Basic sanity check for CRC mismatches with NV12 format");
+ igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12") {
for_each_pipe_with_single_output(&data.display, pipe, output) {
if (simulation_constraint(pipe))
continue;
@@ -485,7 +506,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
continue;
igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
- test_compare_crc(&data, pipe, output);
+ test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12);
}
}
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist
2023-05-26 17:43 [igt-dev] [PATCH i-g-t 1/3] lib/igt_fb: round rgb->yuv conversion results Swati Sharma
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check Swati Sharma
@ 2023-05-26 17:43 ` Swati Sharma
2023-05-29 5:55 ` Modem, Bhanuprakash
2023-05-26 18:17 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/3] lib/igt_fb: round rgb->yuv conversion results Patchwork
2 siblings, 1 reply; 6+ messages in thread
From: Swati Sharma @ 2023-05-26 17:43 UTC (permalink / raw)
To: igt-dev
Update fastfeedback testlist.
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
tests/intel-ci/fast-feedback.testlist | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index cfe7cb4a..40096faf 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -118,7 +118,8 @@ igt@kms_force_connector_basic@force-edid
igt@kms_force_connector_basic@force-load-detect
igt@kms_force_connector_basic@prune-stale-modes
igt@kms_frontbuffer_tracking@basic
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck
+igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xrgb888
+igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
igt@kms_pipe_crc_basic@hang-read-crc
igt@kms_pipe_crc_basic@nonblocking-crc
igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/3] lib/igt_fb: round rgb->yuv conversion results
2023-05-26 17:43 [igt-dev] [PATCH i-g-t 1/3] lib/igt_fb: round rgb->yuv conversion results Swati Sharma
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check Swati Sharma
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist Swati Sharma
@ 2023-05-26 18:17 ` Patchwork
2 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2023-05-26 18:17 UTC (permalink / raw)
To: Swati Sharma; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/3] lib/igt_fb: round rgb->yuv conversion results
URL : https://patchwork.freedesktop.org/series/118445/
State : failure
== Summary ==
IGT patchset build failed on latest successful build
f0714273cd896c637759b3790f485308c4c97008 lib/igt_core: add helper for srandom seed initialization
ninja: Entering directory `/opt/igt/build'
[1/441] Generating version.h with a custom command.
[2/6] Generating i915_tests.html with a custom command.
[3/6] Generating kms_tests.rst with a custom command.
FAILED: docs/testplan/kms_tests.rst
/usr/src/igt-gpu-tools/scripts/igt_doc.py --config /usr/src/igt-gpu-tools/tests/kms_test_config.json --rest docs/testplan/kms_tests.rst
/usr/src/igt-gpu-tools/tests/kms_pipe_crc_basic.c:243: Error: unrecognized line. Need to add field at /usr/src/igt-gpu-tools/tests/kms_test_config.json?
==>
ninja: build stopped: subcommand failed.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check Swati Sharma
@ 2023-05-29 5:52 ` Modem, Bhanuprakash
0 siblings, 0 replies; 6+ messages in thread
From: Modem, Bhanuprakash @ 2023-05-29 5:52 UTC (permalink / raw)
To: Swati Sharma, igt-dev
Hi Swati,
On Fri-26-05-2023 11:13 pm, Swati Sharma wrote:
> New CRC sanitycheck test case is added with NV12 format.
> kms_plane@pixel-format test is validating all formats.
> To improve BAT coverage we can have one planar format crc
> sanity test.
>
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
> tests/kms_pipe_crc_basic.c | 49 +++++++++++++++++++++++++++-----------
> 1 file changed, 35 insertions(+), 14 deletions(-)
>
> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> index 84c73fd7..a280a5c2 100644
> --- a/tests/kms_pipe_crc_basic.c
> +++ b/tests/kms_pipe_crc_basic.c
> @@ -227,25 +227,34 @@ static void test_read_crc(data_t *data, enum pipe pipe,
> }
>
> /**
> - * SUBTEST: compare-crc-sanitycheck
> - * Description: Basic sanity check for CRC mismatches
> + * SUBTEST: compare-crc-sanitycheck-xr24
> + * Description: Basic sanity check for CRC mismatches with XR24 format
> * Test category: functionality test
> * Run type: BAT
> * Functionality: crc
> * Mega feature: General Display Features
> + *
> + * SUBTEST: compare-crc-sanitycheck-nv12
> + * Description: Basic sanity check for CRC mismatches with NV12 format
> + * Test category: functionality test
> + * Run type: BAT
> + * Functionality: crc
> + * Mega feature: General Display Features
You may update this documentation as below:
/**
* SUBTEST: compare-crc-sanitycheck-%s
* Description: Basic sanity check for CRC mismatches with %arg[1].
* Test category: functionality test
* Run type: BAT
* Functionality: crc
* Mega feature: General Display Features
*
* arg[1]:
*
* @xr24 : XR24 format
* @nv12 : NV12 format
*/
See https://gfx-linux.intel.com/igt-doc.html#igt-test-documentation
- Bhanu
> +
> */
>
> /*
> * CRC-sanity test, to make sure there would be no CRC mismatches
> *
> - * - Create two framebuffers (FB0 & FB1) with same color info
> - * - Flip FB0 with the Primary plane & collect the CRC as ref CRC.
> - * - Flip FB1 with the Primary plane, collect the CRC & compare with
> + * - Create two framebuffers (FB0 & FB1)
> + * - Flip FB0 with the primary plane & collect the CRC as ref CRC.
> + * - Flip FB1 with the primary plane, collect the CRC & compare with
> * the ref CRC.
> *
> * No CRC mismatch should happen
> */
> -static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
> +static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output,
> + uint32_t format)
> {
> igt_display_t *display = &data->display;
> igt_plane_t *primary;
> @@ -259,7 +268,6 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
>
> mode = igt_output_get_mode(output);
>
> - /* Create two framebuffers with the same color info. */
> igt_create_color_fb(data->drm_fd,
> mode->hdisplay, mode->vdisplay,
> DRM_FORMAT_XRGB8888,
> @@ -267,13 +275,12 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
> 1.0, 1.0, 1.0,
> &fb0);
> igt_create_color_fb(data->drm_fd,
> - mode->hdisplay, mode->vdisplay,
> - DRM_FORMAT_XRGB8888,
> + mode->hdisplay, mode->vdisplay, format,
> DRM_FORMAT_MOD_LINEAR,
> 1.0, 1.0, 1.0,
> &fb1);
>
> - /* Flip FB0 with the Primary plane & collect the CRC as ref CRC. */
> + /* Flip FB0 with the primary plane & collect the CRC as ref CRC. */
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_plane_set_fb(primary, &fb0);
> igt_display_commit(display);
> @@ -282,7 +289,7 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output)
> IGT_PIPE_CRC_SOURCE_AUTO);
> igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
>
> - /* Flip FB1 with the Primary plane & compare the CRC with ref CRC. */
> + /* Flip FB1 with the primary plane & compare the CRC with ref CRC. */
> igt_plane_set_fb(primary, &fb1);
> igt_display_commit(display);
>
> @@ -475,8 +482,22 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
> }
> }
>
> - igt_describe("Basic sanity check for CRC mismatches");
> - igt_subtest_with_dynamic("compare-crc-sanitycheck") {
> + igt_describe("Basic sanity check for CRC mismatches with XR24 format");
> + igt_subtest_with_dynamic("compare-crc-sanitycheck-xr24") {
> + for_each_pipe_with_single_output(&data.display, pipe, output) {
> + if (simulation_constraint(pipe))
> + continue;
> +
> + if(!pipe_output_combo_valid(&data.display, pipe, output))
> + continue;
> +
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
> + test_compare_crc(&data, pipe, output, DRM_FORMAT_XRGB8888);
> + }
> + }
> +
> + igt_describe("Basic sanity check for CRC mismatches with NV12 format");
> + igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12") {
> for_each_pipe_with_single_output(&data.display, pipe, output) {
> if (simulation_constraint(pipe))
> continue;
> @@ -485,7 +506,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
> continue;
>
> igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
> - test_compare_crc(&data, pipe, output);
> + test_compare_crc(&data, pipe, output, DRM_FORMAT_NV12);
> }
> }
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist Swati Sharma
@ 2023-05-29 5:55 ` Modem, Bhanuprakash
0 siblings, 0 replies; 6+ messages in thread
From: Modem, Bhanuprakash @ 2023-05-29 5:55 UTC (permalink / raw)
To: Swati Sharma, igt-dev
Hi Swati,
On Fri-26-05-2023 11:13 pm, Swati Sharma wrote:
> Update fastfeedback testlist.
>
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
> tests/intel-ci/fast-feedback.testlist | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
> index cfe7cb4a..40096faf 100644
> --- a/tests/intel-ci/fast-feedback.testlist
> +++ b/tests/intel-ci/fast-feedback.testlist
> @@ -118,7 +118,8 @@ igt@kms_force_connector_basic@force-edid
> igt@kms_force_connector_basic@force-load-detect
> igt@kms_force_connector_basic@prune-stale-modes
> igt@kms_frontbuffer_tracking@basic
> -igt@kms_pipe_crc_basic@compare-crc-sanitycheck
> +igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xrgb888
--------------------------------------------------^
From patch [2/3] in this series, this must be xr24
Also, please port this change to Xe too.
"tests/intel-ci/xe.fast-feedback.testlist"
- Bhanu
> +igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
> igt@kms_pipe_crc_basic@hang-read-crc
> igt@kms_pipe_crc_basic@nonblocking-crc
> igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-05-29 5:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-26 17:43 [igt-dev] [PATCH i-g-t 1/3] lib/igt_fb: round rgb->yuv conversion results Swati Sharma
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 2/3] tests/kms_pipe_crc_basic: add nv12 crc sanity check Swati Sharma
2023-05-29 5:52 ` Modem, Bhanuprakash
2023-05-26 17:43 ` [igt-dev] [PATCH i-g-t 3/3] intel-ci: update fastfeedback testlist Swati Sharma
2023-05-29 5:55 ` Modem, Bhanuprakash
2023-05-26 18:17 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/3] lib/igt_fb: round rgb->yuv conversion results Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox