diff options
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/svga/svga_screen.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 12ea4af824f..32eec038ada 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -402,25 +402,29 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en } +/** + * Implemnt pipe_screen::is_format_supported(). + * \param bindings bitmask of PIPE_BIND_x flags + */ static boolean svga_is_format_supported( struct pipe_screen *screen, enum pipe_format format, enum pipe_texture_target target, unsigned sample_count, - unsigned tex_usage) + unsigned bindings) { struct svga_screen *ss = svga_screen(screen); SVGA3dSurfaceFormat svga_format; SVGA3dSurfaceFormatCaps caps; SVGA3dSurfaceFormatCaps mask; - assert(tex_usage); + assert(bindings); if (sample_count > 1) { return FALSE; } - svga_format = svga_translate_format(ss, format, tex_usage); + svga_format = svga_translate_format(ss, format, bindings); if (svga_format == SVGA3D_FORMAT_INVALID) { return FALSE; } @@ -430,7 +434,7 @@ svga_is_format_supported( struct pipe_screen *screen, * visuals for all virtual hardware implementations. */ - if (tex_usage & PIPE_BIND_DISPLAY_TARGET) { + if (bindings & PIPE_BIND_DISPLAY_TARGET) { switch (svga_format) { case SVGA3D_A8R8G8B8: case SVGA3D_X8R8G8B8: @@ -456,13 +460,13 @@ svga_is_format_supported( struct pipe_screen *screen, svga_get_format_cap(ss, svga_format, &caps); mask.value = 0; - if (tex_usage & PIPE_BIND_RENDER_TARGET) { + if (bindings & PIPE_BIND_RENDER_TARGET) { mask.offscreenRenderTarget = 1; } - if (tex_usage & PIPE_BIND_DEPTH_STENCIL) { + if (bindings & PIPE_BIND_DEPTH_STENCIL) { mask.zStencil = 1; } - if (tex_usage & PIPE_BIND_SAMPLER_VIEW) { + if (bindings & PIPE_BIND_SAMPLER_VIEW) { mask.texture = 1; } |