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, |