summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2010-05-01 22:36:28 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2010-05-01 22:36:28 -0700
commitee8a01fce56f88af660e4c8daab89afc6a8b3d10 (patch)
tree8270a8e748e0424984cbd804fba184e4647f25fa
parentc3243e8c00673ed1357420ed59b7e43de47fb367 (diff)
Fixup format checks to actually work right, implement a test.
FBO compat checks in three lines. Whoo.
-rwxr-xr-xmain.py18
-rw-r--r--screen.py13
2 files changed, 19 insertions, 12 deletions
diff --git a/main.py b/main.py
index 46ad36f..24a7d91 100755
--- a/main.py
+++ b/main.py
@@ -4,6 +4,8 @@ import os
import sys
import drm
+import formats
+import screen
os.environ["LD_BIND_NOW"] = "Yes, please!"
@@ -18,10 +20,20 @@ da = drm.DrmApi(raw)
print "Loaded drm_api object, name %s" % da.name
-screen = da.create_screen(raw.drmOpen(da.name, None))
+s = da.create_screen(raw.drmOpen(da.name, None))
-print "Created screen, name %s vendor %s" % (screen.name, screen.vendor)
-if screen.params["GLSL"]:
+print "Created screen, name %s vendor %s" % (s.name, s.vendor)
+if s.params["GLSL"]:
print "Whoo, GLSL!"
else:
print "No GLSL..."
+
+b = screen.Bindings()
+b.RENDER_TARGET = True
+b.SAMPLER_VIEW = True
+
+g = screen.Geom()
+
+for name, number in formats.by_name.iteritems():
+ if s.is_format_supported(number, 2, b, g):
+ print "%s is an acceptable FBO colorbuf" % name
diff --git a/screen.py b/screen.py
index 2983738..fa0c717 100644
--- a/screen.py
+++ b/screen.py
@@ -51,8 +51,8 @@ pipe_screen._fields_ = [
POINTER(pipe_screen),
c_int,
c_int,
- bind_bitfield,
- geom_bitfield)),
+ c_uint,
+ c_uint)),
("resource_create", CFUNCTYPE(c_void_p, POINTER(pipe_screen), c_void_p)),
("resource_from_handle",
CFUNCTYPE(c_void_p, POINTER(pipe_screen), c_void_p, c_void_p)),
@@ -159,11 +159,6 @@ class Screen(object):
return self.pipe_screen[0].get_vendor(self.pipe_screen)
def is_format_supported(self, format, target, bindings, geom_flags):
- t = format, target, bindings, geom_flags
- if t not in self.format_supported_dict:
- self.format_supported_dict[t] = bool(
- self.pipe_screen[0].is_format_supported(
- self.pipe_screen, format, target,
- bindings, geom_flags))
- return self.format_supported_dict[t]
+ return bool(self.pipe_screen[0].is_format_supported(self.pipe_screen,
+ format, target, bindings.value, geom_flags.value))