From: Marek Olšák Date: Tue, 13 Jul 2010 04:38:30 +0000 (+0200) Subject: r300/compiler: emulate SIN/COS/SCS in r3xx-r4xx vertex shaders X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5fc699b1e1b446260ce9ddb5f2d9fa96361b100;p=mesa.git r300/compiler: emulate SIN/COS/SCS in r3xx-r4xx vertex shaders Despite the docs, the corresponding hardware instructions are r5xx-only. --- diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c index bd8d63246a2..276f4cb6b67 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");