r300/compiler: Standardize the number of bits used by swizzle fields
authorTom Stellard <tstellar@gmail.com>
Sat, 29 Jan 2011 22:37:58 +0000 (14:37 -0800)
committerTom Stellard <tstellar@gmail.com>
Sun, 30 Jan 2011 05:32:02 +0000 (21:32 -0800)
commit8f32c6cfc6503dd234f09fb06941803866c23c65
treeffb12340d9104119f34c2b3035eb350d930ae150
parentdebc45bca07a5dfad4199079f080b35c19f00e85
r300/compiler: Standardize the number of bits used by swizzle fields

Swizzles are now defined everywhere as a field with 12 bits that contains
4 channels worth of meaningful information.  Any channel that is unused is
set to RC_SWIZZLE_UNUSED.  This change is necessary because rgb instructions
and alpha instructions were initializing channels that would never be used
(channel 3 for rgb and channels 1-3 for alpha) with 0 (aka RC_SWIZZLE_X).
This made it impossible to use generic helper functions for swizzles,
because sometimes a channel value of 0 meant unused and other times it
meant RC_SWIZZLE_X.

All hacks that tried to guess how many channels were relevant have
also been removed.
src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c
src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c
src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h
src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c
src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c
src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h
src/mesa/drivers/dri/r300/compiler/radeon_program_print.c