1*f0687c8aSRaman Tenneti#!/usr/bin/python3 2*f0687c8aSRaman Tenneti 3*f0687c8aSRaman Tennetiimport sys 4*f0687c8aSRaman Tennetiimport pykms 5*f0687c8aSRaman Tennetiimport argparse 6*f0687c8aSRaman Tenneti 7*f0687c8aSRaman Tennetiparser = argparse.ArgumentParser() 8*f0687c8aSRaman Tennetiparser.add_argument("-c", "--connector", default="") 9*f0687c8aSRaman Tennetiparser.add_argument("--dmabuf", action="store_true", help="use dmabuf") 10*f0687c8aSRaman Tennetiparser.add_argument("--omap", action="store_true", help="use omapcard") 11*f0687c8aSRaman Tennetiargs = parser.parse_args() 12*f0687c8aSRaman Tenneti 13*f0687c8aSRaman Tennetiif args.omap: 14*f0687c8aSRaman Tenneti card = pykms.OmapCard() 15*f0687c8aSRaman Tennetielse: 16*f0687c8aSRaman Tenneti card = pykms.Card() 17*f0687c8aSRaman Tenneti 18*f0687c8aSRaman Tennetires = pykms.ResourceManager(card) 19*f0687c8aSRaman Tenneticonn = res.reserve_connector(args.connector) 20*f0687c8aSRaman Tenneticrtc = res.reserve_crtc(conn) 21*f0687c8aSRaman Tennetiplane = res.reserve_generic_plane(crtc) 22*f0687c8aSRaman Tennetimode = conn.get_default_mode() 23*f0687c8aSRaman Tennetimodeb = mode.to_blob(card) 24*f0687c8aSRaman Tenneti 25*f0687c8aSRaman Tennetiif args.omap: 26*f0687c8aSRaman Tenneti origfb = pykms.OmapFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); 27*f0687c8aSRaman Tennetielse: 28*f0687c8aSRaman Tenneti origfb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); 29*f0687c8aSRaman Tenneti 30*f0687c8aSRaman Tennetiif args.dmabuf: 31*f0687c8aSRaman Tenneti fb = pykms.DmabufFramebuffer(card, origfb.width, origfb.height, origfb.format, 32*f0687c8aSRaman Tenneti [origfb.fd(0)], [origfb.stride(0)], [origfb.offset(0)]) 33*f0687c8aSRaman Tennetielse: 34*f0687c8aSRaman Tenneti fb = origfb 35*f0687c8aSRaman Tenneti 36*f0687c8aSRaman Tennetipykms.draw_test_pattern(fb); 37*f0687c8aSRaman Tenneti 38*f0687c8aSRaman Tenneticard.disable_planes() 39*f0687c8aSRaman Tenneti 40*f0687c8aSRaman Tennetireq = pykms.AtomicReq(card) 41*f0687c8aSRaman Tenneti 42*f0687c8aSRaman Tennetireq.add_connector(conn, crtc) 43*f0687c8aSRaman Tennetireq.add_crtc(crtc, modeb) 44*f0687c8aSRaman Tennetireq.add_plane(plane, fb, crtc, dst=(0, 0, mode.hdisplay, mode.vdisplay)) 45*f0687c8aSRaman Tenneti 46*f0687c8aSRaman Tennetireq.commit_sync(allow_modeset = True) 47*f0687c8aSRaman Tenneti 48*f0687c8aSRaman Tennetiinput("press enter to exit\n") 49