[Mesa-dev] [PATCH 06/16] svga: adjust render target view format for RGBX
Brian Paul
brianp at vmware.com
Tue Jun 28 23:52:10 UTC 2016
For GL_ARB_copy_image we may be asked to create an RGBA view of
a RGBX surface. Use an RGBX view format for that case.
---
src/gallium/drivers/svga/svga_surface.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/svga/svga_surface.c b/src/gallium/drivers/svga/svga_surface.c
index a0108d2..e5943cf 100644
--- a/src/gallium/drivers/svga/svga_surface.c
+++ b/src/gallium/drivers/svga/svga_surface.c
@@ -452,10 +452,22 @@ svga_validate_surface_view(struct svga_context *svga, struct svga_surface *s)
&desc);
}
else {
+ SVGA3dSurfaceFormat view_format = s->key.format;
+ const struct svga_texture *stex = svga_texture(s->base.texture);
+
+ /* Can't create RGBA render target view of a RGBX surface so adjust
+ * the view format. We do something similar for texture samplers in
+ * svga_validate_pipe_sampler_view().
+ */
+ if (view_format == SVGA3D_B8G8R8A8_UNORM &&
+ stex->key.format == SVGA3D_B8G8R8X8_TYPELESS) {
+ view_format = SVGA3D_B8G8R8X8_UNORM;
+ }
+
ret = SVGA3D_vgpu10_DefineRenderTargetView(svga->swc,
s->view_id,
s->handle,
- s->key.format,
+ view_format,
resType,
&desc);
}
--
1.9.1
More information about the mesa-dev
mailing list