xref: /aosp_15_r20/external/libkmsxx/py/tests/test.py (revision f0687c8a10b3e371dbe09214db6664e37c283cca)
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