mesa: Branch 'master' - 3 commits

Patrice Mandin pmandin at kemper.freedesktop.org
Sun Jan 14 13:13:41 UTC 2007


 src/mesa/drivers/dri/nouveau/nouveau_card.c |    3 -
 src/mesa/drivers/dri/nouveau/nouveau_reg.h  |   27 ++++++++++++----
 src/mesa/drivers/dri/nouveau/nv10_state.c   |   45 +++++++++++++++++-----------
 3 files changed, 48 insertions(+), 27 deletions(-)

New commits:
diff-tree e7112be7321c58e6039fde28f47ffe3dce5cc205 (from 86f10c7144d08bc0603a796a9b8aa53f1a37a7e0)
Author: Patrice Mandin <patrice at manoir.racoon.city>
Date:   Sun Jan 14 14:11:10 2007 +0100

    nouveau: remove already defined NV15_TCL and NV17_TCL

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_card.c b/src/mesa/drivers/dri/nouveau/nouveau_card.c
index a062838..ae4f4c7 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_card.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_card.c
@@ -2,9 +2,6 @@
 #include "nouveau_card.h"
 #include "nouveau_reg.h"
 #include "nouveau_drm.h"
-// FIXME hack for now
-#define NV15_TCL_PRIMITIVE_3D 0x0096
-#define NV17_TCL_PRIMITIVE_3D 0x0099
 #include "nouveau_card_list.h"
 
 
diff-tree 86f10c7144d08bc0603a796a9b8aa53f1a37a7e0 (from faada2485a864298562b5e59b0703748c6f6f9d5)
Author: Patrice Mandin <patrice at manoir.racoon.city>
Date:   Sun Jan 14 14:09:04 2007 +0100

    nouveau: import color material r,g,b,a

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_reg.h b/src/mesa/drivers/dri/nouveau/nouveau_reg.h
index 200e770..74f55c6 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_reg.h
+++ b/src/mesa/drivers/dri/nouveau/nouveau_reg.h
@@ -383,7 +383,10 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV
 #	define		NV10_TCL_PRIMITIVE_3D_CULL_FACE				0x0000039c
 #	define		NV10_TCL_PRIMITIVE_3D_FRONT_FACE			0x000003a0
 #	define		NV10_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE			0x000003a4
-#	define		NV10_TCL_PRIMITIVE_3D_MATERIAL_DIFFUSE_ALPHA_FRONT	0x000003b4
+#	define		NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_R			0x000003a8
+#	define		NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_G			0x000003ac
+#	define		NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_B			0x000003b0
+#	define		NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_A			0x000003b4
 #	define		NV10_TCL_PRIMITIVE_3D_COLOR_CONTROL			0x000003b8	/* Parameters: color_control */
 #	define		NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS			0x000003bc	/* Parameters: light 7 light 6 light 5 light 4 light 3 light 2 light 1 light 0 */
 #	define		NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE( d)		(0x000003c0 + d * 0x0004)
@@ -729,8 +732,10 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV
 #	define		NV20_TCL_PRIMITIVE_3D_CULL_FACE				0x0000039c
 #	define		NV20_TCL_PRIMITIVE_3D_FRONT_FACE			0x000003a0
 #	define		NV20_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE			0x000003a4
-#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT		0x000003a8
-#	define		NV20_TCL_PRIMITIVE_3D_MATERIAL_DIFFUSE_ALPHA_FRONT	0x000003b4
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_R		0x000003a8
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_G		0x000003ac
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_B		0x000003b0
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A		0x000003b4
 #	define		NV20_TCL_PRIMITIVE_3D_SEPARATE_SPECULAR_ENABLE		0x000003b8
 #	define		NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS			0x000003bc	/* Parameters: light 7 light 6 light 5 light 4 light 3 light 2 light 1 light 0 */
 #	define		NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)		(0x000003c0 + d * 0x0004)
@@ -930,8 +935,10 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV
 #	define		NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R	0x000017a0
 #	define		NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G	0x000017a4
 #	define		NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B	0x000017a8
-#	define		NV20_TCL_PRIMITIVE_3D_MATERIAL_DIFFUSE_ALPHA_BACK	0x000017ac
-#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK		0x000017b0
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A		0x000017ac
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R		0x000017b0
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G		0x000017b4
+#	define		NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B		0x000017b8
 #	define		NV20_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE		0x000017bc
 #	define		NV20_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP			0x000017c0
 #	define		NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_TWO_SIDE_ENABLE	0x000017c4
@@ -1004,7 +1011,10 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV
 #	define		NV30_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE			0x0000037c
 #	define		NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR			0x00000394
 #	define		NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR			0x00000398
-#	define		NV30_TCL_PRIMITIVE_3D_MATERIAL_DIFFUSE_ALPHA_FRONT	0x000003b4
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_R		0x000003a0
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_G		0x000003a4
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_B		0x000003a8
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A		0x000003b4
 #	define		NV30_TCL_PRIMITIVE_3D_LINE_WIDTH_SMOOTH			0x000003b8
 #	define		NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)		(0x00000400 + d * 0x0004)
 #	define		NV30_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)		(0x00000480 + d * 0x0004)
@@ -1196,7 +1206,10 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV
 #	define		NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R	0x000017a0
 #	define		NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G	0x000017a4
 #	define		NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B	0x000017a8
-#	define		NV30_TCL_PRIMITIVE_3D_MATERIAL_DIFFUSE_ALPHA_BACK	0x000017c0
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R		0x000017b0
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G		0x000017b4
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B		0x000017b8
+#	define		NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A		0x000017c0
 #	define		NV30_TCL_PRIMITIVE_3D_FP_ACTIVE_PROGRAM			0x000008e4
 #	define		NV30_TCL_PRIMITIVE_3D_TX_ADDRESS_UNIT(d)		(0x00001a00 + d * 0x0020)
 #	define		NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT(d)			(0x00001a04 + d * 0x0020)	/* Parameters: mipmap type format ncomp cubic */
diff-tree faada2485a864298562b5e59b0703748c6f6f9d5 (from 29484f24fb2c21772c6a3ddf33a77ec83d415fdc)
Author: Patrice Mandin <patrice at manoir.racoon.city>
Date:   Sun Jan 14 14:03:42 2007 +0100

    nouveau: nv10: stencil functions

diff --git a/src/mesa/drivers/dri/nouveau/nv10_state.c b/src/mesa/drivers/dri/nouveau/nv10_state.c
index 17336a7..a9cce93 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_state.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_state.c
@@ -41,18 +41,10 @@ static void nv10AlphaFunc(GLcontext *ctx
 	CLAMPED_FLOAT_TO_UBYTE(ubRef, ref);
 
 	BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC, 2);
-	OUT_RING_CACHE(func);     /* NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC */
-	OUT_RING_CACHE(ubRef);    /* NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_REF  */
+	OUT_RING_CACHE(func);
+	OUT_RING_CACHE(ubRef);
 }
 
-/*
-	Supported blend extensions on NV10
-		EXT_blend_color
-		EXT_blend_minmax
-		EXT_blend_subtract
-		NV_blend_square
-*/
-
 static void nv10BlendColor(GLcontext *ctx, const GLfloat color[4])
 {
 	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx); 
@@ -88,7 +80,7 @@ static void nv10BlendFuncSeparate(GLcont
 
 	BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC, 2);
 	OUT_RING_CACHE(sfactorRGB);
-	OUT_RING_CACHE(dfactorRGB);	/* NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_DST */
+	OUT_RING_CACHE(dfactorRGB);
 }
 
 static void nv10Clear(GLcontext *ctx, GLbitfield mask)
@@ -549,21 +541,40 @@ static void nv10ShadeModel(GLcontext *ct
 	OUT_RING_CACHE(mode);
 }
 
+/** OpenGL 2.0 two-sided StencilFunc */
 static void nv10StencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func,
 		GLint ref, GLuint mask)
 {
-	/* Not for NV10 */
+	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);
+
+	/* NV10 do not have separate FRONT and BACK stencils */
+	BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_STENCIL_FUNC_FUNC, 3);
+	OUT_RING_CACHE(func);
+	OUT_RING_CACHE(ref);
+	OUT_RING_CACHE(mask);
 }
 
+/** OpenGL 2.0 two-sided StencilMask */
 static void nv10StencilMaskSeparate(GLcontext *ctx, GLenum face, GLuint mask)
 {
-	/* Not for NV10 */
+	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);
+
+	/* NV10 do not have separate FRONT and BACK stencils */
+	BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_STENCIL_MASK, 1);
+	OUT_RING_CACHE(mask);
 }
 
+/** OpenGL 2.0 two-sided StencilOp */
 static void nv10StencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail,
 		GLenum zfail, GLenum zpass)
 {
-	/* Not for NV10 */
+	nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);
+
+	/* NV10 do not have separate FRONT and BACK stencils */
+	BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_STENCIL_OP_FAIL, 3);
+	OUT_RING_CACHE(fail);
+	OUT_RING_CACHE(zfail);
+	OUT_RING_CACHE(zpass);
 }
 
 /** Control the generation of texture coordinates */
@@ -641,9 +652,9 @@ void nv10InitStateFuncs(GLcontext *ctx, 
 /*	func->RenderMode		= nv10RenderMode;*/
 	func->Scissor			= nv10Scissor;
 	func->ShadeModel		= nv10ShadeModel;
-	func->StencilFuncSeparate	= nv10StencilFuncSeparate;	/* Not for NV10 */
-	func->StencilMaskSeparate	= nv10StencilMaskSeparate;	/* Not for NV10 */
-	func->StencilOpSeparate		= nv10StencilOpSeparate;	/* Not for NV10 */
+	func->StencilFuncSeparate	= nv10StencilFuncSeparate;
+	func->StencilMaskSeparate	= nv10StencilMaskSeparate;
+	func->StencilOpSeparate		= nv10StencilOpSeparate;
 /*	func->TexGen			= nv10TexGen;*/
 /*	func->TexParameter		= nv10TexParameter;*/
 	func->TextureMatrix		= nv10TextureMatrix;



More information about the mesa-commit mailing list