From fa088bfe9de6a6fb482aa14715d9e9e05bc01586 Mon Sep 17 00:00:00 2001 From: Christoph Brill Date: Mon, 25 Feb 2008 21:44:11 +0100 Subject: [PATCH] [r300] Sync fog register names to the AMD spec --- src/mesa/drivers/dri/r300/r300_cmdbuf.c | 2 +- src/mesa/drivers/dri/r300/r300_ioctl.c | 2 +- src/mesa/drivers/dri/r300/r300_reg.h | 25 ++++++++++++++----------- src/mesa/drivers/dri/r300/r300_state.c | 16 ++++++++-------- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c index 21ae712e814..243a65a267a 100644 --- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c +++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c @@ -398,7 +398,7 @@ void r300InitCmdBuf(r300ContextPtr r300) ALLOC_STATE(fpi[3], variable, R300_FPI_CMDSIZE, 3); r300->hw.fpi[3].cmd[R300_FPI_CMD_0] = cmdpacket0(R300_PFS_INSTR3_0, 1); ALLOC_STATE(fogs, always, R300_FOGS_CMDSIZE, 0); - r300->hw.fogs.cmd[R300_FOGS_CMD_0] = cmdpacket0(R300_RE_FOG_STATE, 1); + r300->hw.fogs.cmd[R300_FOGS_CMD_0] = cmdpacket0(FG_FOG_BLEND, 1); ALLOC_STATE(fogc, always, R300_FOGC_CMDSIZE, 0); r300->hw.fogc.cmd[R300_FOGC_CMD_0] = cmdpacket0(R300_FOG_COLOR_R, 3); ALLOC_STATE(at, always, R300_AT_CMDSIZE, 0); diff --git a/src/mesa/drivers/dri/r300/r300_ioctl.c b/src/mesa/drivers/dri/r300/r300_ioctl.c index d9eaedd70f4..ff9c2c880de 100644 --- a/src/mesa/drivers/dri/r300/r300_ioctl.c +++ b/src/mesa/drivers/dri/r300/r300_ioctl.c @@ -207,7 +207,7 @@ static void r300EmitClearState(GLcontext * ctx) /* disable fog */ R300_STATECHANGE(r300, fogs); - reg_start(R300_RE_FOG_STATE, 0); + reg_start(FG_FOG_BLEND, 0); e32(0x0); R300_STATECHANGE(r300, vir[1]); diff --git a/src/mesa/drivers/dri/r300/r300_reg.h b/src/mesa/drivers/dri/r300/r300_reg.h index 182d7fe98a6..17d051da4ac 100644 --- a/src/mesa/drivers/dri/r300/r300_reg.h +++ b/src/mesa/drivers/dri/r300/r300_reg.h @@ -1459,14 +1459,16 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define R300_FPI2_UNKNOWN_31 (1 << 31) /* END: Fragment program instruction set */ -/* Fog state and color */ -#define R300_RE_FOG_STATE 0x4BC0 -# define R300_FOG_DISABLE (0 << 0) -# define R300_FOG_ENABLE (1 << 0) -# define R300_FOG_MODE_LINEAR (0 << 1) -# define R300_FOG_MODE_EXP (1 << 1) -# define R300_FOG_MODE_EXP2 (2 << 1) -# define R300_FOG_MODE_MASK (3 << 1) +/* Fog: Fog Blending Enable */ +#define FG_FOG_BLEND 0x4bc0 +# define FG_FOG_BLEND_DISABLE (0 << 0) +# define FG_FOG_BLEND_ENABLE (1 << 0) +# define FG_FOG_BLEND_FN_LINEAR (0 << 1) +# define FG_FOG_BLEND_FN_EXP (1 << 1) +# define FG_FOG_BLEND_FN_EXP2 (2 << 1) +# define FG_FOG_BLEND_FN_CONSTANT (3 << 1) +# define FG_FOG_BLEND_FN_MASK 0x00000006 + #define R300_FOG_COLOR_R 0x4BC8 #define R300_FOG_COLOR_G 0x4BCC #define R300_FOG_COLOR_B 0x4BD0 @@ -1507,13 +1509,14 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # define FG_ALPHA_FUNC_FP16_ENABLE (1 << 28) /* gap in AMD spec */ -/* Where does the depth come from? */ +/* Fog: Where does the depth come from? */ #define R300_FG_DEPTH_SRC 0x4bd8 # define R300_FG_DEPTH_SRC_SCAN (0 << 0) # define R300_FG_DEPTH_SRC_SHADER (1 << 0) -/* Alpha Compare Value */ -#define R300_FG_ALPHA_VALUE 0x4be0 +/* Fog: Alpha Compare Value */ +#define FG_ALPHA_VALUE 0x4be0 +# define FG_ALPHA_VALUE_MASK 0x0000ffff /* gap */ diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 970561c258a..5d408554400 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -641,8 +641,8 @@ static void r300Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) R300_STATECHANGE(r300, fogs); r300->hw.fogs.cmd[R300_FOGS_STATE] = (r300->hw.fogs. - cmd[R300_FOGS_STATE] & ~R300_FOG_MODE_MASK) | - R300_FOG_MODE_LINEAR; + cmd[FG_FOG_BLEND] & ~FG_FOG_BLEND_FN_MASK) | + FG_FOG_BLEND_FN_LINEAR; if (ctx->Fog.Start == ctx->Fog.End) { fogScale.f = -1.0; @@ -659,8 +659,8 @@ static void r300Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) R300_STATECHANGE(r300, fogs); r300->hw.fogs.cmd[R300_FOGS_STATE] = (r300->hw.fogs. - cmd[R300_FOGS_STATE] & ~R300_FOG_MODE_MASK) | - R300_FOG_MODE_EXP; + cmd[FG_FOG_BLEND] & ~FG_FOG_BLEND_FN_MASK) | + FG_FOG_BLEND_FN_EXP; fogScale.f = 0.0933 * ctx->Fog.Density; fogStart.f = 0.0; break; @@ -668,8 +668,8 @@ static void r300Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) R300_STATECHANGE(r300, fogs); r300->hw.fogs.cmd[R300_FOGS_STATE] = (r300->hw.fogs. - cmd[R300_FOGS_STATE] & ~R300_FOG_MODE_MASK) | - R300_FOG_MODE_EXP2; + cmd[FG_FOG_BLEND] & ~FG_FOG_BLEND_FN_MASK) | + FG_FOG_BLEND_FN_EXP2; fogScale.f = 0.3 * ctx->Fog.Density; fogStart.f = 0.0; default: @@ -1681,7 +1681,7 @@ static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state) case GL_FOG: R300_STATECHANGE(r300, fogs); if (state) { - r300->hw.fogs.cmd[R300_FOGS_STATE] |= R300_FOG_ENABLE; + r300->hw.fogs.cmd[FG_FOG_BLEND] |= FG_FOG_BLEND_ENABLE; r300Fogfv(ctx, GL_FOG_MODE, NULL); r300Fogfv(ctx, GL_FOG_DENSITY, &ctx->Fog.Density); @@ -1689,7 +1689,7 @@ static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state) r300Fogfv(ctx, GL_FOG_END, &ctx->Fog.End); r300Fogfv(ctx, GL_FOG_COLOR, ctx->Fog.Color); } else { - r300->hw.fogs.cmd[R300_FOGS_STATE] &= ~R300_FOG_ENABLE; + r300->hw.fogs.cmd[FG_FOG_BLEND] &= ~FG_FOG_BLEND_ENABLE; } break; -- 2.30.2