diff options
Diffstat (limited to 'src/mesa/drivers/dri/r300/compiler')
-rw-r--r-- | src/mesa/drivers/dri/r300/compiler/radeon_compiler.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/r300/compiler/radeon_optimize.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h index fcb0aee9f1..f6a8e83434 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h @@ -41,6 +41,7 @@ struct radeon_compiler { /* Hardware specification. */ unsigned is_r500:1; + unsigned has_half_swizzles:1; unsigned max_temp_regs; unsigned max_constants; int max_alu_insts; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index 8db521e51b..a9be30706b 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -410,7 +410,7 @@ static void constant_folding(struct radeon_compiler * c, struct rc_instruction * newswz = RC_SWIZZLE_ZERO; } else if (baseimm == 1.0) { newswz = RC_SWIZZLE_ONE; - } else if (baseimm == 0.5) { + } else if (baseimm == 0.5 && c->has_half_swizzles) { newswz = RC_SWIZZLE_HALF; } else { have_real_reference = 1; |