mesa: fix printing state parameters

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6946>
This commit is contained in:
Marek Olšák
2020-09-28 11:51:48 -04:00
committed by Marge Bot
parent 2770a4bc63
commit 71504008c7

View File

@@ -869,7 +869,7 @@ append_token(char *dst, gl_state_index k)
{ {
switch (k) { switch (k) {
case STATE_MATERIAL: case STATE_MATERIAL:
append(dst, "material"); append(dst, "material.");
break; break;
case STATE_LIGHT: case STATE_LIGHT:
append(dst, "light"); append(dst, "light");
@@ -901,40 +901,40 @@ append_token(char *dst, gl_state_index k)
append(dst, "point.attenuation"); append(dst, "point.attenuation");
break; break;
case STATE_MODELVIEW_MATRIX: case STATE_MODELVIEW_MATRIX:
append(dst, "matrix.modelview"); append(dst, "matrix.modelview.");
break; break;
case STATE_MODELVIEW_MATRIX_INVERSE: case STATE_MODELVIEW_MATRIX_INVERSE:
append(dst, "matrix.modelview.inverse"); append(dst, "matrix.modelview.inverse.");
break; break;
case STATE_MODELVIEW_MATRIX_TRANSPOSE: case STATE_MODELVIEW_MATRIX_TRANSPOSE:
append(dst, "matrix.modelview.transpose"); append(dst, "matrix.modelview.transpose.");
break; break;
case STATE_MODELVIEW_MATRIX_INVTRANS: case STATE_MODELVIEW_MATRIX_INVTRANS:
append(dst, "matrix.modelview.invtrans"); append(dst, "matrix.modelview.invtrans.");
break; break;
case STATE_PROJECTION_MATRIX: case STATE_PROJECTION_MATRIX:
append(dst, "matrix.projection"); append(dst, "matrix.projection.");
break; break;
case STATE_PROJECTION_MATRIX_INVERSE: case STATE_PROJECTION_MATRIX_INVERSE:
append(dst, "matrix.projection.inverse"); append(dst, "matrix.projection.inverse.");
break; break;
case STATE_PROJECTION_MATRIX_TRANSPOSE: case STATE_PROJECTION_MATRIX_TRANSPOSE:
append(dst, "matrix.projection.transpose"); append(dst, "matrix.projection.transpose.");
break; break;
case STATE_PROJECTION_MATRIX_INVTRANS: case STATE_PROJECTION_MATRIX_INVTRANS:
append(dst, "matrix.projection.invtrans"); append(dst, "matrix.projection.invtrans.");
break; break;
case STATE_MVP_MATRIX: case STATE_MVP_MATRIX:
append(dst, "matrix.mvp"); append(dst, "matrix.mvp.");
break; break;
case STATE_MVP_MATRIX_INVERSE: case STATE_MVP_MATRIX_INVERSE:
append(dst, "matrix.mvp.inverse"); append(dst, "matrix.mvp.inverse.");
break; break;
case STATE_MVP_MATRIX_TRANSPOSE: case STATE_MVP_MATRIX_TRANSPOSE:
append(dst, "matrix.mvp.transpose"); append(dst, "matrix.mvp.transpose.");
break; break;
case STATE_MVP_MATRIX_INVTRANS: case STATE_MVP_MATRIX_INVTRANS:
append(dst, "matrix.mvp.invtrans"); append(dst, "matrix.mvp.invtrans.");
break; break;
case STATE_TEXTURE_MATRIX: case STATE_TEXTURE_MATRIX:
append(dst, "matrix.texture"); append(dst, "matrix.texture");
@@ -962,58 +962,58 @@ append_token(char *dst, gl_state_index k)
break; break;
break; break;
case STATE_AMBIENT: case STATE_AMBIENT:
append(dst, ".ambient"); append(dst, "ambient");
break; break;
case STATE_DIFFUSE: case STATE_DIFFUSE:
append(dst, ".diffuse"); append(dst, "diffuse");
break; break;
case STATE_SPECULAR: case STATE_SPECULAR:
append(dst, ".specular"); append(dst, "specular");
break; break;
case STATE_EMISSION: case STATE_EMISSION:
append(dst, ".emission"); append(dst, "emission");
break; break;
case STATE_SHININESS: case STATE_SHININESS:
append(dst, "lshininess"); append(dst, "shininess");
break; break;
case STATE_HALF_VECTOR: case STATE_HALF_VECTOR:
append(dst, ".half"); append(dst, "half");
break; break;
case STATE_POSITION: case STATE_POSITION:
append(dst, ".position"); append(dst, "position");
break; break;
case STATE_ATTENUATION: case STATE_ATTENUATION:
append(dst, ".attenuation"); append(dst, "attenuation");
break; break;
case STATE_SPOT_DIRECTION: case STATE_SPOT_DIRECTION:
append(dst, ".spot.direction"); append(dst, "spot.direction");
break; break;
case STATE_SPOT_CUTOFF: case STATE_SPOT_CUTOFF:
append(dst, ".spot.cutoff"); append(dst, "spot.cutoff");
break; break;
case STATE_TEXGEN_EYE_S: case STATE_TEXGEN_EYE_S:
append(dst, ".eye.s"); append(dst, "eye.s");
break; break;
case STATE_TEXGEN_EYE_T: case STATE_TEXGEN_EYE_T:
append(dst, ".eye.t"); append(dst, "eye.t");
break; break;
case STATE_TEXGEN_EYE_R: case STATE_TEXGEN_EYE_R:
append(dst, ".eye.r"); append(dst, "eye.r");
break; break;
case STATE_TEXGEN_EYE_Q: case STATE_TEXGEN_EYE_Q:
append(dst, ".eye.q"); append(dst, "eye.q");
break; break;
case STATE_TEXGEN_OBJECT_S: case STATE_TEXGEN_OBJECT_S:
append(dst, ".object.s"); append(dst, "object.s");
break; break;
case STATE_TEXGEN_OBJECT_T: case STATE_TEXGEN_OBJECT_T:
append(dst, ".object.t"); append(dst, "object.t");
break; break;
case STATE_TEXGEN_OBJECT_R: case STATE_TEXGEN_OBJECT_R:
append(dst, ".object.r"); append(dst, "object.r");
break; break;
case STATE_TEXGEN_OBJECT_Q: case STATE_TEXGEN_OBJECT_Q:
append(dst, ".object.q"); append(dst, "object.q");
break; break;
case STATE_TEXENV_COLOR: case STATE_TEXENV_COLOR:
append(dst, "texenv"); append(dst, "texenv");
@@ -1035,7 +1035,7 @@ append_token(char *dst, gl_state_index k)
break; break;
/* BEGIN internal state vars */ /* BEGIN internal state vars */
case STATE_INTERNAL: case STATE_INTERNAL:
append(dst, ".internal."); append(dst, "internal.");
break; break;
case STATE_CURRENT_ATTRIB: case STATE_CURRENT_ATTRIB:
append(dst, "current"); append(dst, "current");
@@ -1101,10 +1101,10 @@ append_face(char *dst, GLint face)
} }
static void static void
append_index(char *dst, GLint index) append_index(char *dst, GLint index, bool structure)
{ {
char s[20]; char s[20];
sprintf(s, "[%d]", index); sprintf(s, "[%d]%s", index, structure ? "." : "");
append(dst, s); append(dst, s);
} }
@@ -1128,11 +1128,10 @@ _mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH])
append_token(str, state[2]); append_token(str, state[2]);
break; break;
case STATE_LIGHT: case STATE_LIGHT:
append_index(str, state[1]); /* light number [i]. */ append_index(str, state[1], true); /* light number [i]. */
append_token(str, state[2]); /* coefficients */ append_token(str, state[2]); /* coefficients */
break; break;
case STATE_LIGHTMODEL_AMBIENT: case STATE_LIGHTMODEL_AMBIENT:
append(str, "lightmodel.ambient");
break; break;
case STATE_LIGHTMODEL_SCENECOLOR: case STATE_LIGHTMODEL_SCENECOLOR:
if (state[1] == 0) { if (state[1] == 0) {
@@ -1143,21 +1142,21 @@ _mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH])
} }
break; break;
case STATE_LIGHTPROD: case STATE_LIGHTPROD:
append_index(str, state[1]); /* light number [i]. */ append_index(str, state[1], true); /* light number [i]. */
append_face(str, state[2]); append_face(str, state[2]);
append_token(str, state[3]); append_token(str, state[3]);
break; break;
case STATE_TEXGEN: case STATE_TEXGEN:
append_index(str, state[1]); /* tex unit [i] */ append_index(str, state[1], true); /* tex unit [i] */
append_token(str, state[2]); /* plane coef */ append_token(str, state[2]); /* plane coef */
break; break;
case STATE_TEXENV_COLOR: case STATE_TEXENV_COLOR:
append_index(str, state[1]); /* tex unit [i] */ append_index(str, state[1], true); /* tex unit [i] */
append(str, "color"); append(str, "color");
break; break;
case STATE_CLIPPLANE: case STATE_CLIPPLANE:
append_index(str, state[1]); /* plane [i] */ append_index(str, state[1], true); /* plane [i] */
append(str, ".plane"); append(str, "plane");
break; break;
case STATE_MODELVIEW_MATRIX: case STATE_MODELVIEW_MATRIX:
case STATE_MODELVIEW_MATRIX_INVERSE: case STATE_MODELVIEW_MATRIX_INVERSE:
@@ -1192,11 +1191,11 @@ _mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH])
if (index || if (index ||
(mat >= STATE_TEXTURE_MATRIX && (mat >= STATE_TEXTURE_MATRIX &&
mat <= STATE_PROGRAM_MATRIX_INVTRANS)) mat <= STATE_PROGRAM_MATRIX_INVTRANS))
append_index(str, index); append_index(str, index, true);
if (firstRow == lastRow) if (firstRow == lastRow)
sprintf(tmp, ".row[%d]", firstRow); sprintf(tmp, "row[%d]", firstRow);
else else
sprintf(tmp, ".row[%d..%d]", firstRow, lastRow); sprintf(tmp, "row[%d..%d]", firstRow, lastRow);
append(str, tmp); append(str, tmp);
} }
break; break;
@@ -1217,14 +1216,15 @@ _mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH])
/* state[1] = {STATE_ENV, STATE_LOCAL} */ /* state[1] = {STATE_ENV, STATE_LOCAL} */
/* state[2] = parameter index */ /* state[2] = parameter index */
append_token(str, state[1]); append_token(str, state[1]);
append_index(str, state[2]); append_index(str, state[2], false);
break; break;
case STATE_NORMAL_SCALE: case STATE_NORMAL_SCALE:
break; break;
case STATE_INTERNAL: case STATE_INTERNAL:
append_token(str, state[1]); append_token(str, state[1]);
if (state[1] == STATE_CURRENT_ATTRIB) if (state[1] == STATE_CURRENT_ATTRIB ||
append_index(str, state[2]); state[1] == STATE_CURRENT_ATTRIB_MAYBE_VP_CLAMPED)
append_index(str, state[2], false);
break; break;
default: default:
_mesa_problem(NULL, "Invalid state in _mesa_program_state_string"); _mesa_problem(NULL, "Invalid state in _mesa_program_state_string");