[PATCH i-g-t v3,3/3] tests/intel/kms_dsc: add new subtest
Swati Sharma
swati2.sharma at intel.com
Wed Sep 4 07:24:25 UTC 2024
Add new subtest to validate dsc and big joiner usecase.
Signed-off-by: Swati Sharma <swati2.sharma at intel.com>
---
tests/intel/kms_dsc.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c
index ef4646957..c9e9bf853 100644
--- a/tests/intel/kms_dsc.c
+++ b/tests/intel/kms_dsc.c
@@ -50,6 +50,7 @@
* arg[1]:
*
* @basic: DSC with default parameters
+ * @with-bigjoiner: DSC with default parameters and big joiner
* @with-bpc: DSC with certain input BPC for the connector
* @with-bpc-formats: DSC with certain input BPC for the connector and diff formats
* @with-formats: DSC with default parameters and creating fb with diff formats
@@ -70,6 +71,7 @@ IGT_TEST_DESCRIPTION("Test to validate display stream compression");
#define TEST_DSC_FORMAT (1<<1)
#define TEST_DSC_OUTPUT_FORMAT (1<<2)
#define TEST_DSC_FRACTIONAL_BPP (1<<3)
+#define TEST_DSC_BIGJOINER (1<<4)
typedef struct {
int drm_fd;
@@ -129,6 +131,7 @@ static void test_reset(data_t *data)
restore_force_dsc_en();
restore_force_dsc_fractional_bpp_en();
+ restore_force_dsc_bigjoiner_en();
}
static void test_cleanup(data_t *data)
@@ -181,6 +184,12 @@ static void update_display(data_t *data, uint32_t test_type)
force_dsc_fractional_bpp_enable(data->drm_fd, data->output);
}
+ if (test_type & TEST_DSC_BIGJOINER) {
+ igt_debug("DSC big joiner is supported on %s\n", data->output->name);
+ save_force_dsc_bigjoiner_en(data->drm_fd, data->output);
+ force_dsc_bigjoiner_enable(data->drm_fd, data->output);
+ }
+
igt_output_set_pipe(output, data->pipe);
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -266,12 +275,16 @@ static void test_dsc(data_t *data, uint32_t test_type, int bpc,
igt_display_t *display = &data->display;
igt_output_t *output;
enum pipe pipe;
+ int max_pipes = 0;
char name[3][LEN] = {
{0},
{0},
{0},
};
+ for_each_pipe(display, pipe)
+ max_pipes++;
+
igt_require(check_gen11_bpc_constraint(data->drm_fd, data->input_bpc));
for_each_pipe_with_valid_output(display, pipe, output) {
@@ -286,6 +299,9 @@ static void test_dsc(data_t *data, uint32_t test_type, int bpc,
igt_get_output_max_bpc(data->drm_fd, output->name) < MIN_DSC_BPC)
continue;
+ if ((test_type & TEST_DSC_BIGJOINER) && data->pipe == max_pipes - 1)
+ continue;
+
if ((test_type & TEST_DSC_OUTPUT_FORMAT) &&
(!is_dsc_output_format_supported(data->drm_fd, data->disp_ver,
data->output, data->output_format)))
@@ -352,6 +368,13 @@ igt_main_args("l", NULL, help_str, opt_handler, &data)
test_dsc(&data, TEST_DSC_BASIC, DEFAULT_BPC,
DRM_FORMAT_XRGB8888, DSC_FORMAT_RGB);
+ igt_describe("Tests basic display stream compression functionality with big joiner "
+ "if supported by a connector by forcing DSC and big joiner on all connectors "
+ "that support it with default parameters");
+ igt_subtest_with_dynamic("dsc-with-bigjoiner")
+ test_dsc(&data, TEST_DSC_BASIC | TEST_DSC_BIGJOINER, DEFAULT_BPC,
+ DRM_FORMAT_XRGB8888, DSC_FORMAT_RGB);
+
igt_describe("Tests basic display stream compression functionality if supported "
"by a connector by forcing DSC on all connectors that support it "
"with default parameters and creating fb with diff formats");
--
2.25.1
More information about the igt-dev
mailing list