[Mesa-dev] [PATCH] t_vertex: fix mipmap generation on rv100 swtcl.
Dave Airlie
airlied at gmail.com
Fri Nov 4 10:49:43 PDT 2011
From: Dave Airlie <airlied at redhat.com>
the meta mipmap generator on rv100 is passing a s,t,r coordinate, but r100
is ancient so has no r handling in hw, so we have to pass a s,t,q with q
set to 1.
/me dares someone to review this :)
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
src/mesa/tnl/t_vertex_generic.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/src/mesa/tnl/t_vertex_generic.c b/src/mesa/tnl/t_vertex_generic.c
index 7b7f511..7150874 100644
--- a/src/mesa/tnl/t_vertex_generic.c
+++ b/src/mesa/tnl/t_vertex_generic.c
@@ -207,6 +207,18 @@ static inline void insert_3f_xyw_4( const struct tnl_clipspace_attr *a, GLubyte
out[2] = in[3];
}
+/* R100 has no R coordinate, but meta mipmap generate causes it to see one,
+ so just pack s and t and set q to 1 */
+static inline void insert_3f_xyw_3( const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in )
+{
+ GLfloat *out = (GLfloat *)(v);
+ (void) a;
+ DEBUG_INSERT;
+ out[0] = in[0];
+ out[1] = in[1];
+ out[2] = 1;
+}
+
static inline void insert_3f_xyw_err( const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in )
{
(void) a; (void) v; (void) in;
@@ -801,7 +813,7 @@ const struct tnl_format_info _tnl_format_info[EMIT_MAX] =
{ "3f_xyw",
extract_3f_xyw,
- { insert_3f_xyw_err, insert_3f_xyw_err, insert_3f_xyw_err,
+ { insert_3f_xyw_err, insert_3f_xyw_err, insert_3f_xyw_3,
insert_3f_xyw_4 },
3 * sizeof(GLfloat) },
--
1.7.6.4
More information about the mesa-dev
mailing list