All of lore.kernel.org
 help / color / mirror / Atom feed
* Small demagic patch for nv04 plus two tables for discussion
@ 2010-09-15 16:01 randrianasulu-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; only message in thread
From: randrianasulu-Re5JQEeQqe8AvxtiuMwx3w @ 2010-09-15 16:01 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

[-- Attachment #1: Type: text/plain, Size: 575 bytes --]

Hello all!

Unfortunately, this patch creates too-long lines, but i really prefer symbolic 
names, when they defined everywhere else.

Studying  texture combiners, i  created two tables, they probably has some 
errors, but I want to be pointed at errors before i even start to code, so 
please comment on them:



sources:
[1] http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
[2] http://www.gamecareerguide.com/features/19981009/multitexturing_01.htm
[3] IRC talk 
[4] 
http://people.freedesktop.org/~idr/2007Q4-VGP351/20071106%20-%20Texture%20mapping,
%20part%203.pdf


[-- Attachment #2: 0001-nv0x-demagic-nv04_state_raster.c-and-nv04_state_tex..patch --]
[-- Type: text/x-diff, Size: 6648 bytes --]

From f8726c6e190466d91b588c1ad7409da506663218 Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Date: Wed, 15 Sep 2010 19:40:16 +0400
Subject: [PATCH] nv0x: demagic nv04_state_raster.c and nv04_state_tex.c
 Unfortunately, lines go over 80 char limit

---
 src/mesa/drivers/dri/nouveau/nv04_state_raster.c |   30 +++++++++++-----------
 src/mesa/drivers/dri/nouveau/nv04_state_tex.c    |   22 ++++++++--------
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_raster.c b/src/mesa/drivers/dri/nouveau/nv04_state_raster.c
index c191571..51aacba 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_state_raster.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_state_raster.c
@@ -176,13 +176,13 @@ nv04_emit_control(GLcontext *ctx, int emit)
 		if (ctx->Depth.Mask)
 			ctrl0 |= NV04_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE;
 
-		ctrl0 |= get_comparison_op(ctx->Depth.Func) << 16;
+		ctrl0 |= get_comparison_op(ctx->Depth.Func) << NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT;
 
 		/* Alpha test. */
 		if (ctx->Color.AlphaEnabled)
 			ctrl0 |= NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_ENABLE;
 
-		ctrl0 |= get_comparison_op(ctx->Color.AlphaFunc) << 8 |
+		ctrl0 |= get_comparison_op(ctx->Color.AlphaFunc) << NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT |
 			FLOAT_TO_UBYTE(ctx->Color.AlphaRef);
 
 		/* Stencil test. */
@@ -192,13 +192,13 @@ nv04_emit_control(GLcontext *ctx, int emit)
 		if (ctx->Stencil.Enabled)
 			ctrl1 |= NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE;
 
-		ctrl1 |= get_comparison_op(ctx->Stencil.Function[0]) << 4 |
-			ctx->Stencil.Ref[0] << 8 |
-			ctx->Stencil.ValueMask[0] << 16 |
-			ctx->Stencil.WriteMask[0] << 24;
+		ctrl1 |= get_comparison_op(ctx->Stencil.Function[0]) << NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT |
+			ctx->Stencil.Ref[0] << NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT |
+			ctx->Stencil.ValueMask[0] << NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT |
+			ctx->Stencil.WriteMask[0] << NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT;
 
-		ctrl2 |= get_stencil_op(ctx->Stencil.ZPassFunc[0]) << 8 |
-			get_stencil_op(ctx->Stencil.ZFailFunc[0]) << 4 |
+		ctrl2 |= get_stencil_op(ctx->Stencil.ZPassFunc[0]) << NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT |
+			get_stencil_op(ctx->Stencil.ZFailFunc[0]) << NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT |
 			get_stencil_op(ctx->Stencil.FailFunc[0]);
 
 		BEGIN_RING(chan, fahrenheit, NV04_MULTITEX_TRIANGLE_CONTROL0, 3);
@@ -209,7 +209,7 @@ nv04_emit_control(GLcontext *ctx, int emit)
 	} else {
 		int cull_mode = ctx->Polygon.CullFaceMode;
 		int front_face = ctx->Polygon.FrontFace;
-		uint32_t ctrl = 1 << 30 |
+		uint32_t ctrl = 1 << 30 /* Probably Z buffer format */ |
 			NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN;
 
 		/* Dithering. */
@@ -232,13 +232,13 @@ nv04_emit_control(GLcontext *ctx, int emit)
 		if (ctx->Depth.Mask)
 			ctrl |= NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE;
 
-		ctrl |= get_comparison_op(ctx->Depth.Func) << 16;
+		ctrl |= get_comparison_op(ctx->Depth.Func) << NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT;
 
 		/* Alpha test. */
 		if (ctx->Color.AlphaEnabled)
 			ctrl |= NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_ENABLE;
 
-		ctrl |= get_comparison_op(ctx->Color.AlphaFunc) << 8 |
+		ctrl |= get_comparison_op(ctx->Color.AlphaFunc) << NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT |
 			FLOAT_TO_UBYTE(ctx->Color.AlphaRef);
 
 		BEGIN_RING(chan, fahrenheit, NV04_TEXTURED_TRIANGLE_CONTROL, 1);
@@ -263,8 +263,8 @@ nv04_emit_blend(GLcontext *ctx, int emit)
 			NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE;
 
 		/* Alpha blending. */
-		blend |= get_blend_func(ctx->Color.BlendDstRGB) << 28 |
-			get_blend_func(ctx->Color.BlendSrcRGB) << 24;
+		blend |= get_blend_func(ctx->Color.BlendDstRGB) << NV04_MULTITEX_TRIANGLE_BLEND_DST_SHIFT |
+			get_blend_func(ctx->Color.BlendSrcRGB) << NV04_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT;
 
 		if (ctx->Color.BlendEnabled)
 			blend |= NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE;
@@ -295,8 +295,8 @@ nv04_emit_blend(GLcontext *ctx, int emit)
 			NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE;
 
 		/* Alpha blending. */
-		blend |= get_blend_func(ctx->Color.BlendDstRGB) << 28 |
-			get_blend_func(ctx->Color.BlendSrcRGB) << 24;
+		blend |= get_blend_func(ctx->Color.BlendDstRGB) << NV04_TEXTURED_TRIANGLE_BLEND_DST_SHIFT |
+			get_blend_func(ctx->Color.BlendSrcRGB) << NV04_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT<;
 
 		if (ctx->Color.BlendEnabled)
 			blend |= NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE;
diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
index 6d8762b..80b70ee 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
@@ -106,25 +106,25 @@ nv04_emit_tex_obj(GLcontext *ctx, int emit)
 					 t->LodBias, 0, 15);
 		}
 
-		format |= get_wrap_mode(t->WrapT) << 28 |
-			get_wrap_mode(t->WrapS) << 24 |
-			ti->HeightLog2 << 20 |
-			ti->WidthLog2 << 16 |
-			lod_max << 12 |
+		format |= get_wrap_mode(t->WrapT) << NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT |
+			get_wrap_mode(t->WrapS) << NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT |
+			ti->HeightLog2 << NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT |
+			ti->WidthLog2 << NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT |
+			lod_max << NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT |
 			get_tex_format(ti);
 
-		filter |= log2i(t->MaxAnisotropy) << 31 |
-			nvgl_filter_mode(t->MagFilter) << 28 |
-			log2i(t->MaxAnisotropy) << 27 |
-			nvgl_filter_mode(t->MinFilter) << 24 |
-			lod_bias << 16;
+		filter |= log2i(t->MaxAnisotropy) << NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE |
+			nvgl_filter_mode(t->MagFilter) << NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT |
+			log2i(t->MaxAnisotropy) << NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE |
+			nvgl_filter_mode(t->MinFilter) << NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT |
+			lod_bias << NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT;
 
 	} else {
 		s = &to_nv04_context(ctx)->dummy_texture;
 
 		format |= NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT |
 			NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT |
-			1 << 12 |
+			1 << NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT |
 			NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8;
 
 		filter |= NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST |
-- 
1.7.0.2


[-- Attachment #3: gl_blend_table.html --]
[-- Type: text/html, Size: 795 bytes --]

[-- Attachment #4: texture_environment_combiners_NV_ATI_ARB.html --]
[-- Type: text/html, Size: 2609 bytes --]

[-- Attachment #5: Type: text/plain, Size: 181 bytes --]

_______________________________________________
Nouveau mailing list
Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2010-09-15 16:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-15 16:01 Small demagic patch for nv04 plus two tables for discussion randrianasulu-Re5JQEeQqe8AvxtiuMwx3w

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.