From: Thomas Hellstrom Date: Tue, 10 Jan 2012 13:37:33 +0000 (+0100) Subject: gallium/svga: Pass the SVGA3D_SURFACE_HINT_RENDERTARGET flag to the device X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4dac89d92c711c01b7909d89b78ba568f9d5e1ef;p=mesa.git gallium/svga: Pass the SVGA3D_SURFACE_HINT_RENDERTARGET flag to the device Some hardware versions rely on it to render correctly. Signed-off-by: Thomas Hellstrom Reviewed-by: José Fonseca Reviewed-by: Jakob Bornecrantz --- 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;