glsl_to_tgsi: make coding style more consistent

This commit is contained in:
Bryan Cain
2011-07-22 13:23:26 -05:00
parent 0da994a9f1
commit a2c3b9f38d
+126 -137
View File
@@ -3778,15 +3778,14 @@ static unsigned mesa_sysval_to_semantic[SYSTEM_VALUE_MAX] = {
* of labels built here and patch the TGSI code with the actual
* location of each label.
*/
static unsigned *get_label( struct st_translate *t,
unsigned branch_target )
static unsigned *get_label(struct st_translate *t, unsigned branch_target)
{
unsigned i;
if (t->labels_count + 1 >= t->labels_size) {
t->labels_size = 1 << (util_logbase2(t->labels_size) + 1);
t->labels = (struct label *)realloc(t->labels,
t->labels_size * sizeof t->labels[0]);
t->labels_size * sizeof(struct label));
if (t->labels == NULL) {
static unsigned dummy;
t->error = TRUE;
@@ -3805,12 +3804,11 @@ static unsigned *get_label( struct st_translate *t,
* Update the insn[] array so the next Mesa instruction points to
* the next TGSI instruction.
*/
static void set_insn_start( struct st_translate *t,
unsigned start )
static void set_insn_start(struct st_translate *t, unsigned start)
{
if (t->insn_count + 1 >= t->insn_size) {
t->insn_size = 1 << (util_logbase2(t->insn_size) + 1);
t->insn = (unsigned *)realloc(t->insn, t->insn_size * sizeof t->insn[0]);
t->insn = (unsigned *)realloc(t->insn, t->insn_size * sizeof(t->insn[0]));
if (t->insn == NULL) {
t->error = TRUE;
return;
@@ -3824,9 +3822,9 @@ static void set_insn_start( struct st_translate *t,
* Map a glsl_to_tgsi constant/immediate to a TGSI immediate.
*/
static struct ureg_src
emit_immediate( struct st_translate *t,
struct gl_program_parameter_list *params,
int index)
emit_immediate(struct st_translate *t,
struct gl_program_parameter_list *params,
int index)
{
struct ureg_program *ureg = t->ureg;
@@ -3861,17 +3859,17 @@ emit_immediate( struct st_translate *t,
* Map a Mesa dst register to a TGSI ureg_dst register.
*/
static struct ureg_dst
dst_register( struct st_translate *t,
gl_register_file file,
GLuint index )
dst_register(struct st_translate *t,
gl_register_file file,
GLuint index)
{
switch( file ) {
switch(file) {
case PROGRAM_UNDEFINED:
return ureg_dst_undef();
case PROGRAM_TEMPORARY:
if (ureg_dst_is_undef(t->temps[index]))
t->temps[index] = ureg_DECL_temporary( t->ureg );
t->temps[index] = ureg_DECL_temporary(t->ureg);
return t->temps[index];
@@ -3894,7 +3892,7 @@ dst_register( struct st_translate *t,
return t->address[index];
default:
debug_assert( 0 );
assert(!"unknown dst register file");
return ureg_dst_undef();
}
}
@@ -3903,11 +3901,11 @@ dst_register( struct st_translate *t,
* Map a Mesa src register to a TGSI ureg_src register.
*/
static struct ureg_src
src_register( struct st_translate *t,
gl_register_file file,
GLuint index )
src_register(struct st_translate *t,
gl_register_file file,
GLuint index)
{
switch( file ) {
switch(file) {
case PROGRAM_UNDEFINED:
return ureg_src_undef();
@@ -3915,7 +3913,7 @@ src_register( struct st_translate *t,
assert(index >= 0);
assert(index < Elements(t->temps));
if (ureg_dst_is_undef(t->temps[index]))
t->temps[index] = ureg_DECL_temporary( t->ureg );
t->temps[index] = ureg_DECL_temporary(t->ureg);
return ureg_src(t->temps[index]);
case PROGRAM_NAMED_PARAM:
@@ -3927,7 +3925,7 @@ src_register( struct st_translate *t,
case PROGRAM_STATE_VAR:
case PROGRAM_CONSTANT: /* ie, immediate */
if (index < 0)
return ureg_DECL_constant( t->ureg, 0 );
return ureg_DECL_constant(t->ureg, 0);
else
return t->constants[index];
@@ -3950,7 +3948,7 @@ src_register( struct st_translate *t,
return t->systemValues[index];
default:
debug_assert( 0 );
assert(!"unknown src register file");
return ureg_src_undef();
}
}
@@ -3959,22 +3957,21 @@ src_register( struct st_translate *t,
* Create a TGSI ureg_dst register from an st_dst_reg.
*/
static struct ureg_dst
translate_dst( struct st_translate *t,
const st_dst_reg *dst_reg,
boolean saturate )
translate_dst(struct st_translate *t,
const st_dst_reg *dst_reg,
bool saturate)
{
struct ureg_dst dst = dst_register( t,
dst_reg->file,
dst_reg->index );
struct ureg_dst dst = dst_register(t,
dst_reg->file,
dst_reg->index);
dst = ureg_writemask( dst,
dst_reg->writemask );
dst = ureg_writemask(dst, dst_reg->writemask);
if (saturate)
dst = ureg_saturate( dst );
dst = ureg_saturate(dst);
if (dst_reg->reladdr != NULL)
dst = ureg_dst_indirect( dst, ureg_src(t->address[0]) );
dst = ureg_dst_indirect(dst, ureg_src(t->address[0]));
return dst;
}
@@ -3983,16 +3980,15 @@ translate_dst( struct st_translate *t,
* Create a TGSI ureg_src register from an st_src_reg.
*/
static struct ureg_src
translate_src( struct st_translate *t,
const st_src_reg *src_reg )
translate_src(struct st_translate *t, const st_src_reg *src_reg)
{
struct ureg_src src = src_register( t, src_reg->file, src_reg->index );
struct ureg_src src = src_register(t, src_reg->file, src_reg->index);
src = ureg_swizzle( src,
GET_SWZ( src_reg->swizzle, 0 ) & 0x3,
GET_SWZ( src_reg->swizzle, 1 ) & 0x3,
GET_SWZ( src_reg->swizzle, 2 ) & 0x3,
GET_SWZ( src_reg->swizzle, 3 ) & 0x3);
src = ureg_swizzle(src,
GET_SWZ(src_reg->swizzle, 0) & 0x3,
GET_SWZ(src_reg->swizzle, 1) & 0x3,
GET_SWZ(src_reg->swizzle, 2) & 0x3,
GET_SWZ(src_reg->swizzle, 3) & 0x3);
if ((src_reg->negate & 0xf) == NEGATE_XYZW)
src = ureg_negate(src);
@@ -4024,8 +4020,8 @@ translate_src( struct st_translate *t,
}
static void
compile_tgsi_instruction(struct st_translate *t,
const struct glsl_to_tgsi_instruction *inst)
compile_tgsi_instruction(struct st_translate *t,
const struct glsl_to_tgsi_instruction *inst)
{
struct ureg_program *ureg = t->ureg;
GLuint i;
@@ -4034,29 +4030,29 @@ compile_tgsi_instruction(struct st_translate *t,
unsigned num_dst;
unsigned num_src;
num_dst = num_inst_dst_regs( inst->op );
num_src = num_inst_src_regs( inst->op );
num_dst = num_inst_dst_regs(inst->op);
num_src = num_inst_src_regs(inst->op);
if (num_dst)
dst[0] = translate_dst( t,
&inst->dst,
inst->saturate);
dst[0] = translate_dst(t,
&inst->dst,
inst->saturate);
for (i = 0; i < num_src; i++)
src[i] = translate_src( t, &inst->src[i] );
src[i] = translate_src(t, &inst->src[i]);
switch( inst->op ) {
switch(inst->op) {
case TGSI_OPCODE_BGNLOOP:
case TGSI_OPCODE_CAL:
case TGSI_OPCODE_ELSE:
case TGSI_OPCODE_ENDLOOP:
case TGSI_OPCODE_IF:
debug_assert(num_dst == 0);
ureg_label_insn( ureg,
inst->op,
src, num_src,
get_label( t,
inst->op == TGSI_OPCODE_CAL ? inst->function->sig_id : 0 ));
assert(num_dst == 0);
ureg_label_insn(ureg,
inst->op,
src, num_src,
get_label(t,
inst->op == TGSI_OPCODE_CAL ? inst->function->sig_id : 0));
return;
case TGSI_OPCODE_TEX:
@@ -4065,27 +4061,23 @@ compile_tgsi_instruction(struct st_translate *t,
case TGSI_OPCODE_TXL:
case TGSI_OPCODE_TXP:
src[num_src++] = t->samplers[inst->sampler];
ureg_tex_insn( ureg,
inst->op,
dst, num_dst,
translate_texture_target( inst->tex_target,
inst->tex_shadow ),
src, num_src );
ureg_tex_insn(ureg,
inst->op,
dst, num_dst,
translate_texture_target(inst->tex_target, inst->tex_shadow),
src, num_src);
return;
case TGSI_OPCODE_SCS:
dst[0] = ureg_writemask(dst[0], TGSI_WRITEMASK_XY );
ureg_insn( ureg,
inst->op,
dst, num_dst,
src, num_src );
dst[0] = ureg_writemask(dst[0], TGSI_WRITEMASK_XY);
ureg_insn(ureg, inst->op, dst, num_dst, src, num_src);
break;
default:
ureg_insn( ureg,
inst->op,
dst, num_dst,
src, num_src );
ureg_insn(ureg,
inst->op,
dst, num_dst,
src, num_src);
break;
}
}
@@ -4095,9 +4087,9 @@ compile_tgsi_instruction(struct st_translate *t,
* Basically, add (adjX, adjY) to the fragment position.
*/
static void
emit_adjusted_wpos( struct st_translate *t,
const struct gl_program *program,
GLfloat adjX, GLfloat adjY)
emit_adjusted_wpos(struct st_translate *t,
const struct gl_program *program,
float adjX, float adjY)
{
struct ureg_program *ureg = t->ureg;
struct ureg_dst wpos_temp = ureg_DECL_temporary(ureg);
@@ -4119,9 +4111,9 @@ emit_adjusted_wpos( struct st_translate *t,
* a FBO is bound (STATE_FB_WPOS_Y_TRANSFORM).
*/
static void
emit_wpos_inversion( struct st_translate *t,
const struct gl_program *program,
boolean invert)
emit_wpos_inversion(struct st_translate *t,
const struct gl_program *program,
bool invert)
{
struct ureg_program *ureg = t->ureg;
@@ -4140,7 +4132,7 @@ emit_wpos_inversion( struct st_translate *t,
unsigned wposTransConst = _mesa_add_state_reference(program->Parameters,
wposTransformState);
struct ureg_src wpostrans = ureg_DECL_constant( ureg, wposTransConst );
struct ureg_src wpostrans = ureg_DECL_constant(ureg, wposTransConst);
struct ureg_dst wpos_temp;
struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]];
@@ -4149,26 +4141,26 @@ emit_wpos_inversion( struct st_translate *t,
if (wpos_input.File == TGSI_FILE_TEMPORARY)
wpos_temp = ureg_dst(wpos_input);
else {
wpos_temp = ureg_DECL_temporary( ureg );
ureg_MOV( ureg, wpos_temp, wpos_input );
wpos_temp = ureg_DECL_temporary(ureg);
ureg_MOV(ureg, wpos_temp, wpos_input);
}
if (invert) {
/* MAD wpos_temp.y, wpos_input, wpostrans.xxxx, wpostrans.yyyy
*/
ureg_MAD( ureg,
ureg_writemask(wpos_temp, TGSI_WRITEMASK_Y ),
wpos_input,
ureg_scalar(wpostrans, 0),
ureg_scalar(wpostrans, 1));
ureg_MAD(ureg,
ureg_writemask(wpos_temp, TGSI_WRITEMASK_Y),
wpos_input,
ureg_scalar(wpostrans, 0),
ureg_scalar(wpostrans, 1));
} else {
/* MAD wpos_temp.y, wpos_input, wpostrans.zzzz, wpostrans.wwww
*/
ureg_MAD( ureg,
ureg_writemask(wpos_temp, TGSI_WRITEMASK_Y ),
wpos_input,
ureg_scalar(wpostrans, 2),
ureg_scalar(wpostrans, 3));
ureg_MAD(ureg,
ureg_writemask(wpos_temp, TGSI_WRITEMASK_Y),
wpos_input,
ureg_scalar(wpostrans, 2),
ureg_scalar(wpostrans, 3));
}
/* Use wpos_temp as position input from here on:
@@ -4312,7 +4304,7 @@ st_translate_program(
const GLuint outputMapping[],
const ubyte outputSemanticName[],
const ubyte outputSemanticIndex[],
boolean passthrough_edgeflags )
boolean passthrough_edgeflags)
{
struct st_translate translate, *t;
unsigned i;
@@ -4358,27 +4350,24 @@ st_translate_program(
for (i = 0; i < numOutputs; i++) {
switch (outputSemanticName[i]) {
case TGSI_SEMANTIC_POSITION:
t->outputs[i] = ureg_DECL_output( ureg,
TGSI_SEMANTIC_POSITION, /* Z / Depth */
outputSemanticIndex[i] );
t->outputs[i] = ureg_writemask( t->outputs[i],
TGSI_WRITEMASK_Z );
t->outputs[i] = ureg_DECL_output(ureg,
TGSI_SEMANTIC_POSITION, /* Z/Depth */
outputSemanticIndex[i]);
t->outputs[i] = ureg_writemask(t->outputs[i], TGSI_WRITEMASK_Z);
break;
case TGSI_SEMANTIC_STENCIL:
t->outputs[i] = ureg_DECL_output( ureg,
TGSI_SEMANTIC_STENCIL, /* Stencil */
outputSemanticIndex[i] );
t->outputs[i] = ureg_writemask( t->outputs[i],
TGSI_WRITEMASK_Y );
t->outputs[i] = ureg_DECL_output(ureg,
TGSI_SEMANTIC_STENCIL, /* Stencil */
outputSemanticIndex[i]);
t->outputs[i] = ureg_writemask(t->outputs[i], TGSI_WRITEMASK_Y);
break;
case TGSI_SEMANTIC_COLOR:
t->outputs[i] = ureg_DECL_output( ureg,
TGSI_SEMANTIC_COLOR,
outputSemanticIndex[i] );
t->outputs[i] = ureg_DECL_output(ureg,
TGSI_SEMANTIC_COLOR,
outputSemanticIndex[i]);
break;
default:
debug_assert(0);
assert(!"fragment shader outputs must be POSITION/STENCIL/COLOR");
return PIPE_ERROR_BAD_INPUT;
}
}
@@ -4392,9 +4381,9 @@ st_translate_program(
}
for (i = 0; i < numOutputs; i++) {
t->outputs[i] = ureg_DECL_output( ureg,
outputSemanticName[i],
outputSemanticIndex[i] );
t->outputs[i] = ureg_DECL_output(ureg,
outputSemanticName[i],
outputSemanticIndex[i]);
}
}
else {
@@ -4405,9 +4394,9 @@ st_translate_program(
}
for (i = 0; i < numOutputs; i++) {
t->outputs[i] = ureg_DECL_output( ureg,
outputSemanticName[i],
outputSemanticIndex[i] );
t->outputs[i] = ureg_DECL_output(ureg,
outputSemanticName[i],
outputSemanticIndex[i]);
if ((outputSemanticName[i] == TGSI_SEMANTIC_PSIZE) && proginfo->Id) {
/* Writing to the point size result register requires special
* handling to implement clamping.
@@ -4421,8 +4410,8 @@ st_translate_program(
unsigned pointSizeClampConst =
_mesa_add_state_reference(proginfo->Parameters,
pointSizeClampState);
struct ureg_dst psizregtemp = ureg_DECL_temporary( ureg );
t->pointSizeConst = ureg_DECL_constant( ureg, pointSizeClampConst );
struct ureg_dst psizregtemp = ureg_DECL_temporary(ureg);
t->pointSizeConst = ureg_DECL_constant(ureg, pointSizeClampConst);
t->pointSizeResult = t->outputs[i];
t->pointSizeOutIndex = i;
t->outputs[i] = psizregtemp;
@@ -4435,8 +4424,8 @@ st_translate_program(
/* Declare address register.
*/
if (program->num_address_regs > 0) {
debug_assert( program->num_address_regs == 1 );
t->address[0] = ureg_DECL_address( ureg );
assert(program->num_address_regs == 1);
t->address[0] = ureg_DECL_address(ureg);
}
/* Declare misc input registers
@@ -4461,7 +4450,7 @@ st_translate_program(
*/
for (i = 0; i < (unsigned)program->next_temp; i++) {
/* XXX use TGSI_FILE_TEMPORARY_ARRAY when it's supported by ureg */
t->temps[i] = ureg_DECL_temporary( t->ureg );
t->temps[i] = ureg_DECL_temporary(t->ureg);
}
}
@@ -4469,7 +4458,7 @@ st_translate_program(
* so we put all the translated regs in t->constants.
*/
if (proginfo->Parameters) {
t->constants = (struct ureg_src *)CALLOC( proginfo->Parameters->NumParameters * sizeof t->constants[0] );
t->constants = (struct ureg_src *)CALLOC(proginfo->Parameters->NumParameters * sizeof(t->constants[0]));
if (t->constants == NULL) {
ret = PIPE_ERROR_OUT_OF_MEMORY;
goto out;
@@ -4482,7 +4471,7 @@ st_translate_program(
case PROGRAM_STATE_VAR:
case PROGRAM_NAMED_PARAM:
case PROGRAM_UNIFORM:
t->constants[i] = ureg_DECL_constant( ureg, i );
t->constants[i] = ureg_DECL_constant(ureg, i);
break;
/* Emit immediates for PROGRAM_CONSTANT only when there's no indirect
@@ -4493,9 +4482,9 @@ st_translate_program(
*/
case PROGRAM_CONSTANT:
if (program->indirect_addr_consts)
t->constants[i] = ureg_DECL_constant( ureg, i );
t->constants[i] = ureg_DECL_constant(ureg, i);
else
t->constants[i] = emit_immediate( t, proginfo->Parameters, i );
t->constants[i] = emit_immediate(t, proginfo->Parameters, i);
break;
default:
break;
@@ -4505,27 +4494,28 @@ st_translate_program(
/* Emit immediate values.
*/
t->immediates = (struct ureg_src *)CALLOC( program->immediates->NumParameters * sizeof(struct ureg_src) );
t->immediates = (struct ureg_src *)CALLOC(program->immediates->NumParameters * sizeof(struct ureg_src));
if (t->immediates == NULL) {
ret = PIPE_ERROR_OUT_OF_MEMORY;
goto out;
}
for (i = 0; i < program->immediates->NumParameters; i++) {
t->immediates[i] = emit_immediate( t, program->immediates, i );
assert(program->immediates->Parameters[i].Type == PROGRAM_IMMEDIATE);
t->immediates[i] = emit_immediate(t, program->immediates, i);
}
/* texture samplers */
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
if (program->samplers_used & (1 << i)) {
t->samplers[i] = ureg_DECL_sampler( ureg, i );
t->samplers[i] = ureg_DECL_sampler(ureg, i);
}
}
/* Emit each instruction in turn:
*/
foreach_iter(exec_list_iterator, iter, program->instructions) {
set_insn_start( t, ureg_get_instruction_number( ureg ));
compile_tgsi_instruction( t, (glsl_to_tgsi_instruction *)iter.get() );
set_insn_start(t, ureg_get_instruction_number(ureg));
compile_tgsi_instruction(t, (glsl_to_tgsi_instruction *)iter.get());
if (t->prevInstWrotePointSize && proginfo->Id) {
/* The previous instruction wrote to the (fake) vertex point size
@@ -4535,14 +4525,14 @@ st_translate_program(
* Note that we can't do this easily at the end of program due to
* possible early return.
*/
set_insn_start( t, ureg_get_instruction_number( ureg ));
ureg_MAX( t->ureg,
ureg_writemask(t->outputs[t->pointSizeOutIndex], WRITEMASK_X),
ureg_src(t->outputs[t->pointSizeOutIndex]),
ureg_swizzle(t->pointSizeConst, 1,1,1,1));
ureg_MIN( t->ureg, ureg_writemask(t->pointSizeResult, WRITEMASK_X),
ureg_src(t->outputs[t->pointSizeOutIndex]),
ureg_swizzle(t->pointSizeConst, 2,2,2,2));
set_insn_start(t, ureg_get_instruction_number(ureg));
ureg_MAX(t->ureg,
ureg_writemask(t->outputs[t->pointSizeOutIndex], WRITEMASK_X),
ureg_src(t->outputs[t->pointSizeOutIndex]),
ureg_swizzle(t->pointSizeConst, 1,1,1,1));
ureg_MIN(t->ureg, ureg_writemask(t->pointSizeResult, WRITEMASK_X),
ureg_src(t->outputs[t->pointSizeOutIndex]),
ureg_swizzle(t->pointSizeConst, 2,2,2,2));
}
t->prevInstWrotePointSize = GL_FALSE;
}
@@ -4550,9 +4540,8 @@ st_translate_program(
/* Fix up all emitted labels:
*/
for (i = 0; i < t->labels_count; i++) {
ureg_fixup_label( ureg,
t->labels[i].token,
t->insn[t->labels[i].branch_target] );
ureg_fixup_label(ureg, t->labels[i].token,
t->insn[t->labels[i].branch_target]);
}
out:
@@ -4582,7 +4571,7 @@ get_mesa_program(struct gl_context *ctx,
struct gl_program *prog;
GLenum target;
const char *target_string;
GLboolean progress;
bool progress;
struct gl_shader_compiler_options *options =
&ctx->ShaderCompilerOptions[_mesa_shader_type_to_index(shader->Type)];