svga: set PIPE_BIND_DEPTH_STENCIL flag for new resources when possible
When we create a depth/stencil texture, also check if we can render to it and set the PIPE_BIND_DEPTH_STENCIL flag. We were previously doing this for color textures (PIPE_BIND_RENDER_TARGET). Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
@@ -975,7 +975,7 @@ svga_texture_create(struct pipe_screen *screen,
|
||||
tex->key.flags |= SVGA3D_SURFACE_BIND_SHADER_RESOURCE;
|
||||
|
||||
if (!(bindings & PIPE_BIND_RENDER_TARGET)) {
|
||||
/* Also check if the format is renderable */
|
||||
/* Also check if the format is color renderable */
|
||||
if (screen->is_format_supported(screen, template->format,
|
||||
template->target,
|
||||
template->nr_samples,
|
||||
@@ -983,6 +983,16 @@ svga_texture_create(struct pipe_screen *screen,
|
||||
bindings |= PIPE_BIND_RENDER_TARGET;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(bindings & PIPE_BIND_DEPTH_STENCIL)) {
|
||||
/* Also check if the format is depth/stencil renderable */
|
||||
if (screen->is_format_supported(screen, template->format,
|
||||
template->target,
|
||||
template->nr_samples,
|
||||
PIPE_BIND_DEPTH_STENCIL)) {
|
||||
bindings |= PIPE_BIND_DEPTH_STENCIL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bindings & PIPE_BIND_DISPLAY_TARGET) {
|
||||
|
||||
Reference in New Issue
Block a user