svga: try to flag surfaces for sampling, in addition to rendering

This silences some warnings when we try to sample from surfaces that were
created for drawing, such as when blitting from one of the framebuffer
surfaces.  We were already doing the opposite situation (adding a bind
flag for rendering to surfaces declared as texture sources).

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Brian Paul 2016-05-02 10:29:52 -06:00
parent abc6432d54
commit 05abaa65c7

View file

@ -839,6 +839,17 @@ svga_texture_create(struct pipe_screen *screen,
tex->key.cachable = 1;
if ((bindings & (PIPE_BIND_RENDER_TARGET | PIPE_BIND_DEPTH_STENCIL)) &&
!(bindings & PIPE_BIND_SAMPLER_VIEW)) {
/* Also check if the format can be sampled from */
if (screen->is_format_supported(screen, template->format,
template->target,
template->nr_samples,
PIPE_BIND_SAMPLER_VIEW)) {
bindings |= PIPE_BIND_SAMPLER_VIEW;
}
}
if (bindings & PIPE_BIND_SAMPLER_VIEW) {
tex->key.flags |= SVGA3D_SURFACE_HINT_TEXTURE;
tex->key.flags |= SVGA3D_SURFACE_BIND_SHADER_RESOURCE;