mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-08 05:40:27 +01:00
[r300] Sync fog register names to the AMD spec
This commit is contained in:
parent
d08b1fe2a4
commit
fa088bfe9d
4 changed files with 24 additions and 21 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue