diff options
Diffstat (limited to 'py')
| -rwxr-xr-x | py/tests/ctm_test.py | 59 | 
1 files changed, 41 insertions, 18 deletions
| diff --git a/py/tests/ctm_test.py b/py/tests/ctm_test.py index 7ceed6f..2273221 100755 --- a/py/tests/ctm_test.py +++ b/py/tests/ctm_test.py @@ -2,6 +2,7 @@  import sys  import pykms +import argparse  def ctm_to_blob(ctm, card):      len=9 @@ -22,33 +23,38 @@ def ctm_to_blob(ctm, card):      return pykms.Blob(card, arr); -if len(sys.argv) > 1: -    conn_name = sys.argv[1] -else: -    conn_name = "" +parser = argparse.ArgumentParser(description='Simple CRTC CTM-property test.') +parser.add_argument('--connector', '-c', dest='connector', +		    required=False, help='connector to output') +parser.add_argument('--mode', '-m', dest='modename', +		    required=False, help='Video mode name to use') +parser.add_argument('--plane', '-p', dest='plane', type=int, +		    required=False, help='plane number to use') +args = parser.parse_args()  card = pykms.Card()  res = pykms.ResourceManager(card) -conn = res.reserve_connector(conn_name) +conn = res.reserve_connector(args.connector)  crtc = res.reserve_crtc(conn) -mode = conn.get_default_mode() +format = pykms.PixelFormat.ARGB8888 +if args.modename == None: +    mode = conn.get_default_mode() +else: +    mode = conn.get_mode(args.modename) +modeb = mode.to_blob(card)  fb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24");  pykms.draw_test_pattern(fb); -crtc.set_mode(conn, fb, mode) - -input("press enter to set normal ctm\n") - -ctm = [ 1.0,	0.0,	0.0, -        0.0,	1.0,	0.0, -        0.0,	0.0,	1.0 ] - -ctmb = ctm_to_blob(ctm, card) +if args.plane == None: +	plane = res.reserve_generic_plane(crtc, fb.format) +else: +	plane = card.planes[args.plane] -crtc.set_prop("CTM", ctmb.id) +card.disable_planes() +crtc.disable_mode() -input("press enter to set new ctm\n") +input("press enter to set ctm at the same time with crtc mode\n")  ctm = [ 0.0,	1.0,	0.0,          0.0,	0.0,	1.0, @@ -56,10 +62,27 @@ ctm = [ 0.0,	1.0,	0.0,  ctmb = ctm_to_blob(ctm, card) -crtc.set_prop("CTM", ctmb.id) +req = pykms.AtomicReq(card) +req.add(conn, "CRTC_ID", crtc.id) +req.add(crtc, {"ACTIVE": 1, +               "MODE_ID": modeb.id, +               "CTM": ctmb.id}) +req.add_plane(plane, fb, crtc) +r = req.commit_sync(allow_modeset = True) +assert r == 0, "Initial commit failed: %d" % r  print("r->b g->r b->g ctm active\n") +input("press enter to set normal ctm\n") + +ctm = [ 1.0,	0.0,	0.0, +        0.0,	1.0,	0.0, +        0.0,	0.0,	1.0 ] + +ctmb = ctm_to_blob(ctm, card) + +crtc.set_prop("CTM", ctmb.id) +  input("press enter to set new ctm\n")  ctm = [ 0.0,	0.0,	1.0, | 
