From b5fc699b1e1b446260ce9ddb5f2d9fa96361b100 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Tue, 13 Jul 2010 06:38:30 +0200 Subject: r300/compiler: emulate SIN/COS/SCS in r3xx-r4xx vertex shaders Despite the docs, the corresponding hardware instructions are r5xx-only. --- src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/mesa/drivers/dri/r300') diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c index bd8d63246a..276f4cb6b6 100644 --- a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c @@ -619,12 +619,18 @@ void r3xx_compile_vertex_program(struct r300_vertex_program_compiler* compiler) debug_program_log(compiler, "after emulate branches"); - { + if (compiler->Base.is_r500) { struct radeon_program_transformation transformations[] = { { &r300_transform_vertex_alu, 0 }, { &r300_transform_trig_scale_vertex, 0 } }; radeonLocalTransform(&compiler->Base, 2, transformations); + } else { + struct radeon_program_transformation transformations[] = { + { &r300_transform_vertex_alu, 0 }, + { &radeonTransformTrigSimple, 0 } + }; + radeonLocalTransform(&compiler->Base, 2, transformations); } debug_program_log(compiler, "after native rewrite"); -- cgit v1.2.3