program: remove other unused functions

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Marek Olšák
2015-10-05 21:42:42 +02:00
parent 5042a3eef8
commit 092f0427dc
2 changed files with 0 additions and 143 deletions

View File

@@ -659,140 +659,6 @@ _mesa_find_free_register(const GLboolean used[],
}
/**
* Check if the given register index is valid (doesn't exceed implementation-
* dependent limits).
* \return GL_TRUE if OK, GL_FALSE if bad index
*/
GLboolean
_mesa_valid_register_index(const struct gl_context *ctx,
gl_shader_stage shaderType,
gl_register_file file, GLint index)
{
const struct gl_program_constants *c;
assert(0 <= shaderType && shaderType < MESA_SHADER_STAGES);
c = &ctx->Const.Program[shaderType];
switch (file) {
case PROGRAM_UNDEFINED:
return GL_TRUE; /* XXX or maybe false? */
case PROGRAM_TEMPORARY:
return index >= 0 && index < (GLint) c->MaxTemps;
case PROGRAM_UNIFORM:
case PROGRAM_STATE_VAR:
/* aka constant buffer */
return index >= 0 && index < (GLint) c->MaxUniformComponents / 4;
case PROGRAM_CONSTANT:
/* constant buffer w/ possible relative negative addressing */
return (index > (int) c->MaxUniformComponents / -4 &&
index < (int) c->MaxUniformComponents / 4);
case PROGRAM_INPUT:
if (index < 0)
return GL_FALSE;
switch (shaderType) {
case MESA_SHADER_VERTEX:
return index < VERT_ATTRIB_GENERIC0 + (GLint) c->MaxAttribs;
case MESA_SHADER_FRAGMENT:
return index < VARYING_SLOT_VAR0 + (GLint) ctx->Const.MaxVarying;
case MESA_SHADER_GEOMETRY:
return index < VARYING_SLOT_VAR0 + (GLint) ctx->Const.MaxVarying;
default:
return GL_FALSE;
}
case PROGRAM_OUTPUT:
if (index < 0)
return GL_FALSE;
switch (shaderType) {
case MESA_SHADER_VERTEX:
return index < VARYING_SLOT_VAR0 + (GLint) ctx->Const.MaxVarying;
case MESA_SHADER_FRAGMENT:
return index < FRAG_RESULT_DATA0 + (GLint) ctx->Const.MaxDrawBuffers;
case MESA_SHADER_GEOMETRY:
return index < VARYING_SLOT_VAR0 + (GLint) ctx->Const.MaxVarying;
default:
return GL_FALSE;
}
case PROGRAM_ADDRESS:
return index >= 0 && index < (GLint) c->MaxAddressRegs;
default:
_mesa_problem(ctx,
"unexpected register file in _mesa_valid_register_index()");
return GL_FALSE;
}
}
/**
* "Post-process" a GPU program. This is intended to be used for debugging.
* Example actions include no-op'ing instructions or changing instruction
* behaviour.
*/
void
_mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog)
{
static const GLfloat white[4] = { 0.5, 0.5, 0.5, 0.5 };
GLuint i;
GLuint whiteSwizzle;
GLint whiteIndex = _mesa_add_unnamed_constant(prog->Parameters,
(gl_constant_value *) white,
4, &whiteSwizzle);
(void) whiteIndex;
for (i = 0; i < prog->NumInstructions; i++) {
struct prog_instruction *inst = prog->Instructions + i;
const GLuint n = _mesa_num_inst_src_regs(inst->Opcode);
(void) n;
if (_mesa_is_tex_instruction(inst->Opcode)) {
#if 0
/* replace TEX/TXP/TXB with MOV */
inst->Opcode = OPCODE_MOV;
inst->DstReg.WriteMask = WRITEMASK_XYZW;
inst->SrcReg[0].Swizzle = SWIZZLE_XYZW;
inst->SrcReg[0].Negate = NEGATE_NONE;
#endif
#if 0
/* disable shadow texture mode */
inst->TexShadow = 0;
#endif
}
if (inst->Opcode == OPCODE_TXP) {
#if 0
inst->Opcode = OPCODE_MOV;
inst->DstReg.WriteMask = WRITEMASK_XYZW;
inst->SrcReg[0].File = PROGRAM_CONSTANT;
inst->SrcReg[0].Index = whiteIndex;
inst->SrcReg[0].Swizzle = SWIZZLE_XYZW;
inst->SrcReg[0].Negate = NEGATE_NONE;
#endif
#if 0
inst->TexShadow = 0;
#endif
#if 0
inst->Opcode = OPCODE_TEX;
inst->TexShadow = 0;
#endif
}
}
}
/* Gets the minimum number of shader invocations per fragment.
* This function is useful to determine if we need to do per
* sample shading or per fragment shading.