[PATCH i-g-t] lib/igt_kms: move setting DRM_CLIENT_CAP_WRITEBACK_CONNECTORS to kms_writeback

Abhinav Kumar quic_abhinavk at quicinc.com
Fri May 10 18:09:15 UTC 2024


Hi Kamil

Thanks for the feedback.

On 5/10/2024 7:29 AM, Kamil Konieczny wrote:
> Hi Abhinav,
> On 2024-05-09 at 13:39:11 -0700, Abhinav Kumar wrote:
>> Currently DRM_CLIENT_CAP_WRITEBACK_CONNECTORS is set in the igt_display_require()
>> which is invoked for all IGT tests irrespective of whether the rest of the
>> writeback connector properties such as the FB_ID are set.
>>
>> For the writeback connectors to function properly, additional setup steps are required
>> (like setting up the output buffers and submitting the job). These steps are not a part
>> of the default IGT setup, so there is no guarantee that the pipeline will
>> be executed at all.
>>
>> It is unclear whether this is intentional to be able to run all IGT tests even
>> with writeback connector or it is only kms_writeback which is supposed to
>> be the one.
>>
>> Lets try with the latter approach by setting DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
>> only within kms_writeback.
>>
>> changes since RFC:
>> 	- minor fixes to commit message
>>
>> Reviewed-by: Rob Clark <robdclark at gmail.com>
>> Acked-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>> Signed-off-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
>> ---
>>   lib/igt_kms.c         | 2 --
>>   tests/kms_writeback.c | 5 +++++
>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
>> index 98d3fb79cd22..f82102144ea1 100644
>> --- a/lib/igt_kms.c
>> +++ b/lib/igt_kms.c
>> @@ -2878,8 +2878,6 @@ void igt_display_require(igt_display_t *display, int drm_fd)
>>   	if (drmSetClientCap(drm_fd, DRM_CLIENT_CAP_ATOMIC, 1) == 0)
>>   		display->is_atomic = 1;
>>   
>> -	drmSetClientCap(drm_fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
>> -
>>   	resources = drmModeGetResources(display->drm_fd);
>>   	if (!resources)
>>   		goto out;
>> diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c
>> index 6cd685b37af2..3448dc06f891 100644
>> --- a/tests/kms_writeback.c
>> +++ b/tests/kms_writeback.c
>> @@ -558,6 +558,7 @@ igt_main_args("b:c:f:dl", long_options, help_str, opt_handler, NULL)
>>   	igt_fb_t input_fb, input_fb_10bit;
>>   	drmModeModeInfo mode;
>>   	unsigned int fb_id;
>> +	int ret;
>>   
>>   	memset(&display, 0, sizeof(display));
>>   
>> @@ -570,6 +571,10 @@ igt_main_args("b:c:f:dl", long_options, help_str, opt_handler, NULL)
>>   
>>   		igt_require(display.is_atomic);
>>   
>> +		ret = drmSetClientCap(display.drm_fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
>> +
>> +		igt_require(!ret);
> ---------------------^
> Use igt_require_f() or change 'ret' into has_writeback_connectors
> 

Yes, I will use igt_require_f() and add the relevant message.

> With that it is
> 
> Acked-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> 
> (plus ack from Petri on irc)
> 

Thanks, I have picked up both your acks.

> Regards,
> Kamil
> 
>> +
>>   		output = kms_writeback_get_output(&display);
>>   		igt_require(output);
>>   
>>
>> ---
>> base-commit: 4a5fd4e7cb2798636f6464e2bd61399f3242b322
>> change-id: 20240509-wb_igt_fix-87169651e0da
>>
>> Best regards,
>> -- 
>> Abhinav Kumar <quic_abhinavk at quicinc.com>
>>


More information about the igt-dev mailing list