svga_texture_device_format_has_alpha() is only intended to work for
texture resources, not buffer resources. This fixes a failed assertion
in the svga_texture() cast function when running texture buffer tests.
Also, add an assertion in svga_texture_device_format_has_alpha() to
catch the issue sooner.
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
boolean
svga_texture_device_format_has_alpha(struct pipe_resource *texture)
{
+ /* the svga_texture() call below is invalid for PIPE_BUFFER resources */
+ assert(texture->target != PIPE_BUFFER);
+
enum svga3d_block_desc block_desc =
svga3dsurface_get_desc(svga_texture(texture)->key.format)->block_desc;
}
}
- swizzle_tab = (!util_format_has_alpha(view->format) &&
+ swizzle_tab = (view->texture->target != PIPE_BUFFER &&
+ !util_format_has_alpha(view->format) &&
svga_texture_device_format_has_alpha(view->texture)) ?
set_alpha : copy_alpha;