X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fstate_trackers%2Fpython%2Fp_device.i;h=959c13f54d9fae53de33c5ee6fe74defb2f4f582;hb=1318848f782cce716d6376ca13aebf68b728e24c;hp=2dc995adb07687ba7e1a1835d8fd36ae51fe9b71;hpb=e32487b8a13a9efabb0359a9dde33e074e905e82;p=mesa.git diff --git a/src/gallium/state_trackers/python/p_device.i b/src/gallium/state_trackers/python/p_device.i index 2dc995adb07..959c13f54d9 100644 --- a/src/gallium/state_trackers/python/p_device.i +++ b/src/gallium/state_trackers/python/p_device.i @@ -81,16 +81,20 @@ struct st_device { /** * Check if the given pipe_format is supported as a texture or * drawing surface. - * \param type one of PIPE_TEXTURE, PIPE_SURFACE + * \param bind bitmask of PIPE_BIND flags */ int is_format_supported( enum pipe_format format, enum pipe_texture_target target, - unsigned tex_usage, + unsigned bind, unsigned geom_flags ) { + /* We can't really display surfaces with the python statetracker so mask + * out that usage */ + bind &= ~PIPE_BIND_DISPLAY_TARGET; + return $self->screen->is_format_supported( $self->screen, format, target, - tex_usage, + bind, geom_flags ); } @@ -99,17 +103,22 @@ struct st_device { return st_context_create($self); } - struct pipe_texture * - texture_create( + struct pipe_resource * + resource_create( enum pipe_format format, unsigned width, unsigned height, unsigned depth = 1, unsigned last_level = 0, enum pipe_texture_target target = PIPE_TEXTURE_2D, - unsigned tex_usage = 0 + unsigned bind = 0 ) { - struct pipe_texture templat; + struct pipe_resource templat; + + /* We can't really display surfaces with the python statetracker so mask + * out that usage */ + bind &= ~PIPE_BIND_DISPLAY_TARGET; + memset(&templat, 0, sizeof(templat)); templat.format = format; templat.width0 = width; @@ -117,13 +126,13 @@ struct st_device { templat.depth0 = depth; templat.last_level = last_level; templat.target = target; - templat.tex_usage = tex_usage; - return $self->screen->texture_create($self->screen, &templat); - } - - struct pipe_buffer * - buffer_create(unsigned size, unsigned alignment = 0, unsigned usage = 0) { - return pipe_buffer_create($self->screen, alignment, usage, size); + templat.bind = bind; + + return $self->screen->resource_create($self->screen, &templat); } + struct pipe_resource * + buffer_create(unsigned size, unsigned bind = 0) { + return pipe_buffer_create($self->screen, bind, size); + } };