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

Daniel Vetter daniel at ffwll.ch
Fri Nov 2 09:32:21 UTC 2018


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.
-Daniel

> 
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> 
> > 
> > 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


More information about the igt-dev mailing list