diff options
author | Brian Paul <[email protected]> | 2016-06-27 11:18:10 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2016-06-30 14:32:07 -0600 |
commit | 3a3c3d124aced6444cd637d21c5d723c8417b0b9 (patch) | |
tree | b9b2dda8f765e41cdc92700dc0a612831ec3995d /src/gallium/drivers/svga | |
parent | 46e7355a13927b4a2f082358c417881d66c97982 (diff) |
svga: set render target flag for snorm surfaces
We don't normally support rendering to SNORM surfaces, but with
GL_ARB_copy_image we can copy to them if we treat them as typeless
and use a UNORM surface view.
Acked-by: Roland Scheidegger <[email protected]>
Reviewed-by: Charmaine Lee <[email protected]>
Diffstat (limited to 'src/gallium/drivers/svga')
-rw-r--r-- | src/gallium/drivers/svga/svga_resource_texture.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index 3f91c86e64c..9e1aaabd18c 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -963,6 +963,16 @@ svga_texture_create(struct pipe_screen *screen, svga_format_name(typeless), bindings); } + + if (svga_format_is_uncompressed_snorm(tex->key.format)) { + /* We can't normally render to snorm surfaces, but once we + * substitute a typeless format, we can if the rendertarget view + * is unorm. This can happen with GL_ARB_copy_image. + */ + tex->key.flags |= SVGA3D_SURFACE_HINT_RENDERTARGET; + tex->key.flags |= SVGA3D_SURFACE_BIND_RENDER_TARGET; + } + tex->key.format = typeless; } |