mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 14:38:06 +02:00
fix problems found with gcc 2.96 (bug 4934)
This commit is contained in:
parent
dcf4c17fb1
commit
ffec105109
7 changed files with 55 additions and 21 deletions
|
|
@ -219,6 +219,8 @@ void r200ChooseVertexState( GLcontext *ctx )
|
|||
{
|
||||
r200ContextPtr rmesa = R200_CONTEXT( ctx );
|
||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||
GLuint vte;
|
||||
GLuint vap;
|
||||
|
||||
/* We must ensure that we don't do _tnl_need_projected_coords while in a
|
||||
* rasterization fallback. As this function will be called again when we
|
||||
|
|
@ -227,8 +229,8 @@ void r200ChooseVertexState( GLcontext *ctx )
|
|||
if (rmesa->Fallback != 0)
|
||||
return;
|
||||
|
||||
GLuint vte = rmesa->hw.vte.cmd[VTE_SE_VTE_CNTL];
|
||||
GLuint vap = rmesa->hw.vap.cmd[VAP_SE_VAP_CNTL];
|
||||
vte = rmesa->hw.vte.cmd[VTE_SE_VTE_CNTL];
|
||||
vap = rmesa->hw.vap.cmd[VAP_SE_VAP_CNTL];
|
||||
|
||||
/* HW perspective divide is a win, but tiny vertex formats are a
|
||||
* bigger one.
|
||||
|
|
|
|||
|
|
@ -620,12 +620,13 @@ void r300EmitWait(r300ContextPtr rmesa, GLuint flags)
|
|||
|
||||
void r300EmitAOS(r300ContextPtr rmesa, GLuint nr, GLuint offset)
|
||||
{
|
||||
if (RADEON_DEBUG & DEBUG_VERTS)
|
||||
fprintf(stderr, "%s: nr=%d, ofs=0x%08x\n", __func__, nr, offset);
|
||||
int sz = 1 + (nr >> 1) * 3 + (nr & 1) * 2;
|
||||
int i;
|
||||
LOCAL_VARS
|
||||
|
||||
if (RADEON_DEBUG & DEBUG_VERTS)
|
||||
fprintf(stderr, "%s: nr=%d, ofs=0x%08x\n", __func__, nr, offset);
|
||||
|
||||
start_packet3(RADEON_CP_PACKET3_3D_LOAD_VBPNTR, sz-1);
|
||||
e32(nr);
|
||||
for(i=0;i+1<nr;i+=2){
|
||||
|
|
|
|||
|
|
@ -277,9 +277,9 @@ static void free_temp(struct r300_fragment_program *rp, pfs_reg_t r)
|
|||
static pfs_reg_t emit_param4fv(struct r300_fragment_program *rp, GLfloat *values)
|
||||
{
|
||||
pfs_reg_t r = pfs_default_reg;
|
||||
r.type = REG_TYPE_CONST;
|
||||
int pidx;
|
||||
|
||||
r.type = REG_TYPE_CONST;
|
||||
pidx = rp->param_nr++;
|
||||
r.index = rp->const_nr++;
|
||||
if (pidx >= PFS_NUM_CONST_REGS || r.index >= PFS_NUM_CONST_REGS) {
|
||||
|
|
@ -626,6 +626,7 @@ static void emit_arith(struct r300_fragment_program *rp, int op,
|
|||
int argc;
|
||||
int vop, sop;
|
||||
int i;
|
||||
int str;
|
||||
|
||||
if (!dest.valid || !src0.valid || !src1.valid || !src2.valid) {
|
||||
ERROR("invalid register. dest/src0/src1/src2 valid = %d/%d/%d/%d\n",
|
||||
|
|
@ -657,7 +658,6 @@ static void emit_arith(struct r300_fragment_program *rp, int op,
|
|||
return;
|
||||
}
|
||||
|
||||
int str;
|
||||
for (i=0;i<3;i++) {
|
||||
if (i<argc) {
|
||||
hwsrc = t_hw_src(rp, src[i]);
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ radeonDmaPrimitive( radeonContextPtr rmesa, GLenum prim )
|
|||
assert(rmesa->dma.current.ptr == rmesa->dma.current.start);
|
||||
}
|
||||
|
||||
#define LOCAL_VARS radeonContextPtr rmesa = RADEON_CONTEXT(ctx); (void)rmesa
|
||||
#define LOCAL_VARS radeonContextPtr rmesa = RADEON_CONTEXT(ctx)
|
||||
#define INIT( prim ) radeonDmaPrimitive( rmesa, prim )
|
||||
#define FLUSH() RADEON_NEWPRIM( rmesa )
|
||||
#define GET_CURRENT_VB_MAX_VERTS() \
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@
|
|||
int start02, end01; \
|
||||
int ystart, y01y12; \
|
||||
int i, tmp, tmp2, tmp3; \
|
||||
GLfloat ydiff, fy[3]; \
|
||||
GLfloat ydiff, fy[3]
|
||||
#define LINE_VERT_VARS_VOIDS \
|
||||
(void) v; (void) vvv; (void) x; (void) y; (void) z; (void) idx; \
|
||||
(void) dx01; (void) dy01; (void) delt02; (void) deltzy; \
|
||||
(void) zstart; (void) start02; (void) ystart; (void) y01y12; \
|
||||
|
|
@ -26,7 +27,8 @@
|
|||
#define LINE_FLAT_VARS \
|
||||
int arstart, gbstart; \
|
||||
int deltarx, deltgbx, deltary, deltgby; \
|
||||
GLubyte *(col)[3]; \
|
||||
GLubyte *(col)[3]
|
||||
#define LINE_FLAT_VARS_VOIDS \
|
||||
(void) arstart; (void) gbstart; (void) deltarx; (void) deltgbx; \
|
||||
(void) deltary; (void) deltgby; (void) col
|
||||
|
||||
|
|
@ -34,7 +36,8 @@
|
|||
int arstart, gbstart; \
|
||||
int deltary, deltgby; \
|
||||
int ctmp, ctmp2, ctmp3, ctmp4; \
|
||||
GLubyte *(col)[3]; \
|
||||
GLubyte *(col)[3]
|
||||
#define LINE_GOURAUD_VARS_VOIDS \
|
||||
(void) arstart; (void) gbstart; (void) deltary; (void) deltgby; \
|
||||
(void) ctmp; (void) ctmp2; (void) ctmp3; (void) ctmp4; (void) col
|
||||
|
||||
|
|
@ -207,7 +210,8 @@ do { \
|
|||
int start02, end01, end12; \
|
||||
int ystart, y01y12; \
|
||||
int i, tmp, lr; \
|
||||
GLfloat ydiff, fy[3]; \
|
||||
GLfloat ydiff, fy[3]
|
||||
#define VERT_VARS_VOIDS \
|
||||
(void) v; (void) x; (void) y; (void) z; (void) idx; (void) dx01; \
|
||||
(void) dy01; (void) dx02; (void) dy02; (void) dx12; (void) dy12; \
|
||||
(void) delt01; (void) delt02; (void) delt12; (void) deltzx; \
|
||||
|
|
@ -219,7 +223,8 @@ do { \
|
|||
int arstart, gbstart; \
|
||||
int deltarx, deltgbx, deltary, deltgby; \
|
||||
int ctmp, ctmp2, ctmp3, ctmp4; \
|
||||
GLubyte *(col)[3]; \
|
||||
GLubyte *(col)[3]
|
||||
#define GOURAUD_VARS_VOIDS \
|
||||
(void) arstart; (void) gbstart; (void) deltarx; (void) deltgbx; \
|
||||
(void) deltary; (void) deltgby; (void) ctmp; (void) ctmp2; \
|
||||
(void) ctmp3; (void) ctmp4; (void) col
|
||||
|
|
@ -227,7 +232,8 @@ do { \
|
|||
#define FLAT_VARS \
|
||||
int arstart, gbstart; \
|
||||
int deltarx, deltgbx, deltary, deltgby; \
|
||||
GLubyte *(col)[3]; \
|
||||
GLubyte *(col)[3]
|
||||
#define FLAT_VARS_VOIDS \
|
||||
(void) arstart; (void) gbstart; (void) deltarx; (void) deltgbx; \
|
||||
(void) deltary; (void) deltgby; (void) col
|
||||
|
||||
|
|
@ -245,7 +251,8 @@ do { \
|
|||
int rbaseu, rbasev; \
|
||||
int dstart, ustart, wstart, vstart; \
|
||||
static int stmp = 0; \
|
||||
s3vTextureObjectPtr t; \
|
||||
s3vTextureObjectPtr t
|
||||
#define TEX_VARS_VOIDS \
|
||||
(void) u0; (void) u1; (void) u2; (void) ru0; (void) ru1; (void) ru2; \
|
||||
(void) v0; (void) v1; (void) v2; (void) rv0; (void) rv1; (void) rv2; \
|
||||
(void) w0; (void) w1; (void) w2; (void) rw0; (void) rw1; (void) rw2; \
|
||||
|
|
@ -620,6 +627,12 @@ static void TAG(s3v_line)( s3vContextPtr vmesa,
|
|||
GLfloat cull;
|
||||
(void) cull;
|
||||
#endif
|
||||
LINE_VERT_VARS_VOIDS;
|
||||
#if (IND & S3V_RAST_FLAT_BIT)
|
||||
LINE_FLAT_VARS_VOIDS;
|
||||
#else
|
||||
LINE_GOURAUD_VARS_VOIDS;
|
||||
#endif
|
||||
|
||||
DEBUG(("*** s3v_line: "));
|
||||
#if (IND & S3V_RAST_CULL_BIT)
|
||||
|
|
@ -684,6 +697,15 @@ static void TAG(s3v_triangle)( s3vContextPtr vmesa,
|
|||
#if (IND & S3V_RAST_CULL_BIT)
|
||||
GLfloat cull;
|
||||
#endif
|
||||
VERT_VARS_VOIDS;
|
||||
#if (IND & S3v_RAST_FLAT_BIT)
|
||||
FLAT_VARS_VOIDS;
|
||||
#else
|
||||
GOURAUD_VARS_VOIDS;
|
||||
#endif
|
||||
#if (IND & S3V_RAST_TEX_BIT)
|
||||
TEX_VARS_VOIDS;
|
||||
#endif
|
||||
|
||||
DEBUG(("*** s3v_triangle: "));
|
||||
#if (IND & S3V_RAST_CULL_BIT)
|
||||
|
|
@ -774,6 +796,15 @@ static void TAG(s3v_quad)( s3vContextPtr vmesa,
|
|||
#if (IND & S3V_RAST_CULL_BIT)
|
||||
GLfloat cull;
|
||||
#endif
|
||||
VERT_VARS_VOIDS;
|
||||
#if (IND & S3v_RAST_FLAT_BIT)
|
||||
FLAT_VARS_VOIDS;
|
||||
#else
|
||||
GOURAUD_VARS_VOIDS;
|
||||
#endif
|
||||
#if (IND & S3V_RAST_TEX_BIT)
|
||||
TEX_VARS_VOIDS;
|
||||
#endif
|
||||
|
||||
DEBUG(("*** s3v_quad: "));
|
||||
#if (IND & S3V_RAST_CULL_BIT)
|
||||
|
|
|
|||
|
|
@ -632,18 +632,18 @@ void savageFlushCmdBuf( savageContextPtr imesa, GLboolean discard )
|
|||
|
||||
static void savageDDFlush( GLcontext *ctx )
|
||||
{
|
||||
savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
|
||||
if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG)
|
||||
fprintf (stderr, "%s\n", __FUNCTION__);
|
||||
savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
|
||||
savageFlushVertices (imesa);
|
||||
savageFlushCmdBuf(imesa, GL_FALSE);
|
||||
}
|
||||
|
||||
static void savageDDFinish( GLcontext *ctx )
|
||||
{
|
||||
savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
|
||||
if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG)
|
||||
fprintf (stderr, "%s\n", __FUNCTION__);
|
||||
savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
|
||||
savageFlushVertices (imesa);
|
||||
savageFlushCmdBuf(imesa, GL_FALSE);
|
||||
WAIT_IDLE_EMPTY(imesa);
|
||||
|
|
|
|||
|
|
@ -246,11 +246,6 @@ static GLboolean run_texnorm_stage( GLcontext *ctx,
|
|||
return GL_TRUE;
|
||||
|
||||
for (i = 0 ; i < ctx->Const.MaxTextureUnits ; i++) {
|
||||
if (!ctx->Texture.Unit[i]._ReallyEnabled ||
|
||||
VB->TexCoordPtr[i]->size == 4)
|
||||
/* Never try to normalize homogenous tex coords! */
|
||||
continue;
|
||||
|
||||
GLuint reallyEnabled = ctx->Texture.Unit[i]._ReallyEnabled;
|
||||
struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current;
|
||||
GLboolean normalizeS = (texObj->WrapS == GL_REPEAT);
|
||||
|
|
@ -261,6 +256,11 @@ static GLboolean run_texnorm_stage( GLcontext *ctx,
|
|||
GLfloat (*out)[4] = store->texcoord[i].data;
|
||||
GLint j;
|
||||
|
||||
if (!ctx->Texture.Unit[i]._ReallyEnabled ||
|
||||
VB->TexCoordPtr[i]->size == 4)
|
||||
/* Never try to normalize homogenous tex coords! */
|
||||
continue;
|
||||
|
||||
if (normalizeS && normalizeT) {
|
||||
/* take first texcoords as rough estimate of mean value */
|
||||
GLfloat correctionS = -floor(in[0]+0.5);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue