[PATCH i-g-t 5/5] tests/kms_dp_dsc: Cleanup to read debugfs only once
Patnana Venkata Sai
venkata.sai.patnana at intel.com
Wed Jul 7 07:40:37 UTC 2021
Reduced compression bpp's verification to 8,10,12.
cleanedup some unused code.
Cc: Karthik B S <karthik.b.s at intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni at intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
Signed-off-by: Patnana Venkata Sai <venkata.sai.patnana at intel.com>
---
tests/kms_dp_dsc.c | 77 ++++++++++++++++++++++++++--------------------
1 file changed, 43 insertions(+), 34 deletions(-)
diff --git a/tests/kms_dp_dsc.c b/tests/kms_dp_dsc.c
index 462a7b51a7..13fc9005ef 100644
--- a/tests/kms_dp_dsc.c
+++ b/tests/kms_dp_dsc.c
@@ -44,8 +44,9 @@
#include <fcntl.h>
#include <termios.h>
-/* currently dsc compression is verifying on 8bpc frame only */
-#define DRM_FORMAT_BPC 8
+#define IGT_CONNECTOR_BPC_8 8
+#define IGT_CONNECTOR_BPC_10 10
+#define IGT_CONNECTOR_BPC_12 12
enum dsc_test_type
{
@@ -60,8 +61,6 @@ typedef struct {
struct igt_fb fb_test_pattern;
igt_output_t *output;
int mode_valid;
- drmModeModeInfo *mode;
- drmModeConnector *connector;
drmModeEncoder *encoder;
int crtc;
int compression_bpp;
@@ -168,6 +167,7 @@ static bool check_dsc_on_connector(data_t *data, uint32_t drmConnector)
return false;
}
data->output = output;
+
return true;
}
@@ -179,7 +179,6 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
{
bool enabled;
igt_plane_t *primary;
- data->connector = data->output->config.connector;
/* Disable the output first */
igt_output_set_pipe(data->output, PIPE_NONE);
@@ -217,14 +216,14 @@ static void update_display(data_t *data, enum dsc_test_type test_type)
kmstest_pipe_name(data->pipe));
}
-static void run_test(data_t *data, igt_output_t *output,
- enum dsc_test_type test_type)
+static void run_test(data_t *data, enum dsc_test_type test_type)
{
enum pipe pipe;
+ char test_name[10];
+ drmModeModeInfo *mode = igt_output_get_mode(data->output);
- data->mode = igt_output_get_mode(output);
- igt_create_pattern_fb(data->drm_fd, data->mode->hdisplay,
- data->mode->vdisplay,
+ igt_create_pattern_fb(data->drm_fd, mode->hdisplay,
+ mode->vdisplay,
DRM_FORMAT_XRGB8888,
LOCAL_DRM_FORMAT_MOD_NONE,
&data->fb_test_pattern);
@@ -233,20 +232,25 @@ static void run_test(data_t *data, igt_output_t *output,
if (is_i915_device(data->drm_fd)) {
uint32_t devid = intel_get_drm_devid(data->drm_fd);
- if (output->config.connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
+ if (data->output->config.connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort &&
pipe == PIPE_A && IS_GEN11(devid)) {
igt_debug("DSC not supported on Pipe A on external DP in Gen11 platforms\n");
continue;
}
}
- igt_dynamic_f("%s-pipe-%s", output->name, kmstest_pipe_name(pipe))
- if (igt_pipe_connector_valid(pipe, output)) {
- data->pipe = pipe;
- data->output = output;
+ snprintf(test_name, sizeof(test_name), "-%dbpp", data->compression_bpp);
+ if (igt_pipe_connector_valid(pipe, data->output)) {
+ data->pipe = pipe;
+
+ igt_dynamic_f("%s-pipe-%s%s", data->output->name,
+ kmstest_pipe_name(pipe),
+ (test_type == test_dsc_compression_bpp) ?
+ test_name : "")
update_display(data, test_type);
- test_cleanup(data);
- }
+
+ test_cleanup(data);
+ }
if (test_type == test_dsc_compression_bpp)
break;
@@ -260,7 +264,13 @@ igt_main
data_t data = {};
drmModeRes *res;
drmModeConnector *connector = NULL;
- int i, j, test_conn_cnt;
+ int i, j;
+ uint8_t bpp_list[] = {
+ IGT_CONNECTOR_BPC_8,
+ IGT_CONNECTOR_BPC_10,
+ IGT_CONNECTOR_BPC_12
+ };
+
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_ANY);
igt_require_intel(data.drm_fd);
@@ -270,36 +280,35 @@ igt_main
igt_display_require(&data.display, data.drm_fd);
igt_require(res = drmModeGetResources(data.drm_fd));
}
+
igt_subtest_with_dynamic("basic-dsc-enable") {
- test_conn_cnt = 0;
for (j = 0; j < res->count_connectors; j++) {
if (!check_dsc_on_connector(&data, res->connectors[j]))
continue;
- test_conn_cnt++;
- run_test(&data, data.output, test_basic_dsc_enable);
+
+ run_test(&data, test_basic_dsc_enable);
}
- igt_skip_on_f(test_conn_cnt == 0, "DSC not supported on any connector\n");
}
+
/* currently we are validating compression bpp on XRGB8888 format only */
- for (i = DRM_FORMAT_BPC; i <= ((DRM_FORMAT_BPC*3)-1); i++) {
- igt_subtest_with_dynamic_f("dsc-%dbpp-compression-XRGB8888", i) {
- test_conn_cnt = 0;
- data.compression_bpp = i;
- igt_require(intel_display_ver(data.devid) >= 13);
- for (j = 0; j < res->count_connectors; j++) {
- if (!check_dsc_on_connector(&data, res->connectors[j]))
- continue;
- test_conn_cnt++;
- run_test(&data, data.output, test_dsc_compression_bpp);
+ igt_subtest_with_dynamic("XRGB8888-dsc-compression") {
+ igt_require(intel_display_ver(data.devid) >= 13);
+
+ for (j = 0; j < res->count_connectors; j++) {
+ if (!check_dsc_on_connector(&data, res->connectors[j]))
+ continue;
+
+ for (i = 0; i < ARRAY_SIZE(bpp_list); i++) {
+ data.compression_bpp = bpp_list[i];
+ run_test(&data, test_dsc_compression_bpp);
}
- igt_skip_on_f(test_conn_cnt == 0, "DSC not supported on any connector\n");
}
}
igt_fixture {
+ test_cleanup(&data);
if (connector)
drmModeFreeConnector(connector);
- test_cleanup(&data);
drmModeFreeResources(res);
close(data.drm_fd);
igt_display_fini(&data.display);
--
2.25.1
More information about the Intel-gfx-trybot
mailing list