From 4dac89d92c711c01b7909d89b78ba568f9d5e1ef Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Tue, 10 Jan 2012 14:37:33 +0100 Subject: [PATCH] gallium/svga: Pass the SVGA3D_SURFACE_HINT_RENDERTARGET flag to the device MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Some hardware versions rely on it to render correctly. Signed-off-by: Thomas Hellstrom Reviewed-by: José Fonseca Reviewed-by: Jakob Bornecrantz --- src/gallium/drivers/svga/svga_resource_texture.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/svga/svga_resource_texture.c b/src/gallium/drivers/svga/svga_resource_texture.c index d3748420c0a..92286f90fb7 100644 --- a/src/gallium/drivers/svga/svga_resource_texture.c +++ b/src/gallium/drivers/svga/svga_resource_texture.c @@ -454,16 +454,19 @@ svga_texture_create(struct pipe_screen *screen, } /* - * XXX: Never pass the SVGA3D_SURFACE_HINT_RENDERTARGET hint. Mesa cannot + * Note: Previously we never passed the + * SVGA3D_SURFACE_HINT_RENDERTARGET hint. Mesa cannot * know beforehand whether a texture will be used as a rendertarget or not * and it always requests PIPE_BIND_RENDER_TARGET, therefore * passing the SVGA3D_SURFACE_HINT_RENDERTARGET here defeats its purpose. + * + * However, this was changed since other state trackers + * (XA for example) uses it accurately and certain device versions + * relies on it in certain situations to render correctly. */ -#if 0 if((template->bind & PIPE_BIND_RENDER_TARGET) && !util_format_is_s3tc(template->format)) tex->key.flags |= SVGA3D_SURFACE_HINT_RENDERTARGET; -#endif if(template->bind & PIPE_BIND_DEPTH_STENCIL) tex->key.flags |= SVGA3D_SURFACE_HINT_DEPTHSTENCIL; -- 2.30.2