tg->attrib[attr].output_offset);
tg->attrib[attr].fetch( src, data );
+
+ debug_printf("vert %d/%d attr %d: %f %f %f %f\n",
+ i, elt, attr, data[0], data[1], data[2], data[3]);
+
+
tg->attrib[attr].emit( data, dst );
}
+ debug_printf("\n");
vert += tg->translate.key.output_stride;
}
tg->attrib[attr].output_offset);
tg->attrib[attr].fetch( src, data );
+
+ debug_printf("vert %d attr %d: %f %f %f %f\n",
+ i, attr, data[0], data[1], data[2], data[3]);
+
tg->attrib[attr].emit( data, dst );
}
+ debug_printf("\n");
vert += tg->translate.key.output_stride;
}
p->inv_255[0] =
p->inv_255[1] =
p->inv_255[2] =
- p->inv_255[3] = 1.0 / 255.0f;
+ p->inv_255[3] = 1.0f / 255.0f;
sse_movups(p->func, reg,
x86_make_disp(translateESI,
if (p == NULL)
goto fail;
- if (!rtasm_cpu_has_sse() || !rtasm_cpu_has_sse2())
- goto fail;
-
-
- p->translate.key = *key;
p->translate.release = translate_sse_release;
p->translate.set_buffer = translate_sse_set_buffer;
p->translate.run_elts = translate_sse_run_elts;
p->translate.run = translate_sse_run;
+ if (!rtasm_cpu_has_sse() || !rtasm_cpu_has_sse2())
+ goto fail;
+
if (!build_vertex_emit(p, &p->linear_func, TRUE))
goto fail;
if (!build_vertex_emit(p, &p->elt_func, FALSE))
goto fail;
+ p->translate.key = *key;
p->gen_run = (run_func)x86_get_func(&p->linear_func);
p->gen_run_elts = (run_elts_func)x86_get_func(&p->elt_func);
fail:
if (p)
- p->translate.release( &p->translate );
+ translate_sse_release( &p->translate );
return NULL;
}