More shader tweaks
This commit is contained in:
parent
75a8b54e19
commit
21632e0eae
|
@ -1519,9 +1519,11 @@ static boolean VshConvertShader(VSH_XBOX_SHADER *pShader,
|
|||
// The PC shader assembler doesn't like masks on scalar registers
|
||||
VshSetOutputMask(&pIntermediate->Output, TRUE, TRUE, TRUE, TRUE);
|
||||
|
||||
// Fix when mad to a scaler input does not use a replicate swizzle
|
||||
// Test case: Panzer Dragoon Orta
|
||||
if (pIntermediate->InstructionType == IMD_MAC && pIntermediate->MAC == MAC_MAD) {
|
||||
// Fix when mad or mov to a scaler input does not use a replicate swizzle
|
||||
// MAD Test case: Panzer Dragoon Orta
|
||||
// MOV Test case: DOA3
|
||||
if ((pIntermediate->InstructionType == IMD_MAC && pIntermediate->MAC == MAC_MAD) ||
|
||||
(pIntermediate->InstructionType == IMD_MAC && pIntermediate->MAC == MAC_MOV)) {
|
||||
// Clear all but the first swizzle for each parameter
|
||||
// TODO: Is this sufficient? Perhaps we need to be smart about which swizzle to select
|
||||
for (int param = 0; param < 3; param++) {
|
||||
|
|
Loading…
Reference in New Issue