summaryrefslogtreecommitdiff
path: root/py/tests
diff options
context:
space:
mode:
Diffstat (limited to 'py/tests')
-rwxr-xr-xpy/tests/alpha-test.py48
1 files changed, 33 insertions, 15 deletions
diff --git a/py/tests/alpha-test.py b/py/tests/alpha-test.py
index e329ce4..94d3836 100755
--- a/py/tests/alpha-test.py
+++ b/py/tests/alpha-test.py
@@ -2,24 +2,38 @@
import pykms
import time
+import argparse
+
+parser = argparse.ArgumentParser(description='Simple alpha blending test.')
+parser.add_argument('--resetcrtc', action="store_true",
+ help='Reset legacy CRTC color properties')
+parser.add_argument('--connector', '-c', dest='connector', default="",
+ required=False, help='connector to output')
+parser.add_argument('--mode', '-m', dest='modename',
+ required=False, help='Video mode name to use')
+args = parser.parse_args()
+
+max_planes = 4
card = pykms.Card()
res = pykms.ResourceManager(card)
-conn = res.reserve_connector()
+conn = res.reserve_connector(args.connector)
crtc = res.reserve_crtc(conn)
-mode = conn.get_default_mode()
+if args.modename == None:
+ mode = conn.get_default_mode()
+else:
+ mode = conn.get_mode(args.modename)
planes = []
-for i in range(3):
+for i in range(max_planes):
p = res.reserve_generic_plane(crtc)
-
if p == None:
- print("Need 3 planes!")
- exit(1)
-
+ break
planes.append(p)
+print("Got {} planes. Test supports up to 4 planes.".format(len(planes)))
+
card.disable_planes()
w = mode.hdisplay
@@ -27,25 +41,29 @@ h = mode.vdisplay
fbs=[]
-for i in range(len(planes)):
+for i in range(max_planes):
fbs.append(pykms.DumbFramebuffer(card, w, h, "AR24"))
pykms.draw_rect(fbs[0], 50, 50, 200, 200, pykms.RGB(128, 255, 0, 0))
pykms.draw_rect(fbs[1], 150, 50, 200, 200, pykms.RGB(128, 0, 255, 0))
pykms.draw_rect(fbs[2], 50, 150, 200, 200, pykms.RGB(128, 0, 0, 255))
+pykms.draw_rect(fbs[3], 150, 150, 200, 200, pykms.RGB(128, 128, 128, 128))
+
+card.disable_planes()
-crtc.set_props({
- "trans-key-mode": 0,
- "trans-key": 0,
- "background": 0,
- "alpha_blender": 1,
-})
+if args.resetcrtc:
+ crtc.set_props({
+ "trans-key-mode": 0,
+ "trans-key": 0,
+ "background": 0,
+ "alpha_blender": 1,
+ })
for i in range(len(planes)):
plane = planes[i]
fb = fbs[i]
- print("set crtc {}, plane {}, fb {}".format(crtc.id, p.id, fbs[i].id))
+ print("set crtc {}, plane {}, z {}, fb {}".format(crtc.id, plane.id, i, fb.id))
plane.set_props({
"FB_ID": fb.id,