mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
Cell: minor optimization for flat shading
This commit is contained in:
parent
948dc8ad24
commit
5f54cfaba1
1 changed files with 28 additions and 9 deletions
|
|
@ -200,16 +200,35 @@ static INLINE void
|
|||
eval_coeff( struct setup_stage *setup, uint slot,
|
||||
float x, float y, float result[4][4])
|
||||
{
|
||||
uint i;
|
||||
const float *dadx = setup->coef[slot].dadx;
|
||||
const float *dady = setup->coef[slot].dady;
|
||||
switch (spu.vertex_info.interp_mode[slot]) {
|
||||
case INTERP_CONSTANT:
|
||||
{
|
||||
uint i;
|
||||
for (i = 0; i < 4; i++) {
|
||||
result[QUAD_TOP_LEFT][i] =
|
||||
result[QUAD_TOP_RIGHT][i] =
|
||||
result[QUAD_BOTTOM_LEFT][i] =
|
||||
result[QUAD_BOTTOM_RIGHT][i] = setup->coef[slot].a0[i];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
/* loop over XYZW comps */
|
||||
for (i = 0; i < 4; i++) {
|
||||
result[QUAD_TOP_LEFT][i] = setup->coef[slot].a0[i] + x * dadx[i] + y * dady[i];
|
||||
result[QUAD_TOP_RIGHT][i] = result[0][i] + dadx[i];
|
||||
result[QUAD_BOTTOM_LEFT][i] = result[0][i] + dady[i];
|
||||
result[QUAD_BOTTOM_RIGHT][i] = result[0][i] + dadx[i] + dady[i];
|
||||
case INTERP_LINEAR:
|
||||
/* fall-through, for now */
|
||||
default:
|
||||
{
|
||||
uint i;
|
||||
const float *dadx = setup->coef[slot].dadx;
|
||||
const float *dady = setup->coef[slot].dady;
|
||||
|
||||
/* loop over XYZW comps */
|
||||
for (i = 0; i < 4; i++) {
|
||||
result[QUAD_TOP_LEFT][i] = setup->coef[slot].a0[i] + x * dadx[i] + y * dady[i];
|
||||
result[QUAD_TOP_RIGHT][i] = result[0][i] + dadx[i];
|
||||
result[QUAD_BOTTOM_LEFT][i] = result[0][i] + dady[i];
|
||||
result[QUAD_BOTTOM_RIGHT][i] = result[0][i] + dadx[i] + dady[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue