[igt-dev] [PATCH i-g-t v2 2/2] tests/kms_properties: Add functional test for "max bpc" property

Rodrigo Vivi rodrigo.vivi at intel.com
Fri Nov 2 16:17:36 UTC 2018


On Fri, Nov 02, 2018 at 10:32:21AM +0100, Daniel Vetter wrote:
> On Wed, Oct 31, 2018 at 12:41:44PM -0700, Rodrigo Vivi wrote:
> > On Mon, Oct 29, 2018 at 04:23:18AM -0700, Radhakrishna Sripada wrote:
> > > On Wed, Oct 24, 2018 at 03:45:35PM -0700, Rodrigo Vivi wrote:
> > > > On Fri, Oct 12, 2018 at 12:18:46AM -0700, Radhakrishna Sripada wrote:
> > > > > Test the values in the range advertised by the "max bpc" property.
> > > > > 
> > > > > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > > Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> > > > > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada at intel.com>
> > > > > ---
> > > > >  tests/kms_properties.c | 32 +++++++++++++++++++++++++++++++-
> > > > >  1 file changed, 31 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/tests/kms_properties.c b/tests/kms_properties.c
> > > > > index f5a86236f5c8..503a5c251e10 100644
> > > > > --- a/tests/kms_properties.c
> > > > > +++ b/tests/kms_properties.c
> > > > > @@ -82,7 +82,37 @@ static bool ignore_property(uint32_t obj_type, uint32_t prop_flags,
> > > > >  	return false;
> > > > >  }
> > > > >  
> > > > > -static const struct additional_test property_functional_test[] = {};
> > > > > +static void max_bpc_prop_test(int fd, uint32_t id, uint32_t type, drmModePropertyPtr prop,
> > > > > +			      uint32_t prop_id, uint64_t prop_value, bool atomic)
> > > > > +{
> > > > > +	drmModeAtomicReqPtr req = NULL;
> > > > > +	int i, ret;
> > > > > +
> > > > > +	if (atomic)
> > > > > +		req = drmModeAtomicAlloc();
> > > > > +
> > > > > +	for ( i = prop->values[0]; i < prop->values[1] ; i++) {
> > > > > +		if (!atomic) {
> > > > > +			ret = drmModeObjectSetProperty(fd, id, type, prop_id, i);
> > > > > +
> > > > > +			igt_assert_eq(ret, 0);
> > > > > +		} else {
> > > > > +			ret = drmModeAtomicAddProperty(req, id, prop_id, i);
> > > > > +			igt_assert(ret >= 0);
> > > > > +
> > > > > +			ret = drmModeAtomicCommit(fd, req, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
> > > > > +			igt_assert_eq(ret, 0);
> > > > 
> > > > Should we read it back to see if it sticks?
> > > 
> > > Reading back the property to see if the value sticks IMO is validation 
> > > of the drm_property infrastructure which is being done by the sanity sub tests.
> > 
> > ahh cool...
> > 
> > > > or should we be checking with some debugfs to see all
> > > > conditions and to see if the max is getting really respected?
> > > > 
> > > We could do this additional check for this property. However it would involve 
> > > obtaining the corresponding CRTC id and parsing the i915_display_info debugs 
> > > file to get the appropriate bpp for the CRTC and make sure the bpp is less 
> > > than 8 * prop->values[i] making the test bulky. Do you suggest a simpler way?
> > 
> > probably a place where selftests could be useful for display?
> > 
> > I don't have the confidence that this test case is validating the feature
> > itself. We set the max, but we are not sure if the max gets respected.
> > 
> > But it is better to have at least this side of the validation.
> > For this reasons:
> 
> Yeah for full end-to-end testing we'd need to ask chamelium what bpc it
> receives. Or something like that.
> 
> But also: This test here at least exercises all the code, and with the hw
> state readback and cross-check we do catch quiet a few bugs.

makes sense...

> -Daniel
> 
> > 
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

^ for the series...

and pushed.

> > 
> > > 
> > > Thanks,
> > > Radhakrishna(RK) Sripada
> > > > ( really questions not a request ;) )
> > > > 
> > > > > +		}
> > > > > +	}
> > > > > +
> > > > > +	if (atomic)
> > > > > +		drmModeAtomicFree(req);
> > > > > +}
> > > > > +
> > > > > +static const struct additional_test property_functional_test[] = {
> > > > > +									{"max bpc", DRM_MODE_OBJECT_CONNECTOR,
> > > > > +									 max_bpc_prop_test},
> > > > > +								 };
> > > > >  
> > > > >  static bool has_additional_test_lookup(uint32_t obj_type, const char *name,
> > > > >  				bool atomic, int *index)
> > > > > -- 
> > > > > 2.9.3
> > > > > 
> > > > > _______________________________________________
> > > > > igt-dev mailing list
> > > > > igt-dev at lists.freedesktop.org
> > > > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > > _______________________________________________
> > > igt-dev mailing list
> > > igt-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list