diff options
author | Corbin Simpson <MostAwesomeDude@gmail.com> | 2010-05-01 22:36:28 -0700 |
---|---|---|
committer | Corbin Simpson <MostAwesomeDude@gmail.com> | 2010-05-01 22:36:28 -0700 |
commit | ee8a01fce56f88af660e4c8daab89afc6a8b3d10 (patch) | |
tree | 8270a8e748e0424984cbd804fba184e4647f25fa | |
parent | c3243e8c00673ed1357420ed59b7e43de47fb367 (diff) |
Fixup format checks to actually work right, implement a test.
FBO compat checks in three lines. Whoo.
-rwxr-xr-x | main.py | 18 | ||||
-rw-r--r-- | screen.py | 13 |
2 files changed, 19 insertions, 12 deletions
@@ -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 @@ -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)) |