File tree Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -1680,11 +1680,20 @@ namespace dxvk {
1680
1680
// (src0) The condition vector
1681
1681
// (src1) Vector to select from if the condition is not 0
1682
1682
// (src2) Vector to select from if the condition is 0
1683
- const DxbcRegisterValue condition = emitRegisterLoad (ins.src [0 ], ins.dst [0 ].mask );
1683
+ DxbcRegMask condMask = ins.dst [0 ].mask ;
1684
+
1685
+ if (ins.dst [0 ].dataType == DxbcScalarType::Float64 ) {
1686
+ condMask = DxbcRegMask (
1687
+ condMask[0 ] && condMask[1 ],
1688
+ condMask[2 ] && condMask[3 ],
1689
+ false , false );
1690
+ }
1691
+
1692
+ const DxbcRegisterValue condition = emitRegisterLoad (ins.src [0 ], condMask);
1684
1693
const DxbcRegisterValue selectTrue = emitRegisterLoad (ins.src [1 ], ins.dst [0 ].mask );
1685
1694
const DxbcRegisterValue selectFalse = emitRegisterLoad (ins.src [2 ], ins.dst [0 ].mask );
1686
1695
1687
- const uint32_t componentCount = ins. dst [ 0 ]. mask .popCount ();
1696
+ uint32_t componentCount = condMask .popCount ();
1688
1697
1689
1698
// We'll compare against a vector of zeroes to generate a
1690
1699
// boolean vector, which in turn will be used by OpSelect
Original file line number Diff line number Diff line change @@ -1013,7 +1013,12 @@ namespace dxvk {
1013
1013
{ DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
1014
1014
} },
1015
1015
/* DMovc */
1016
- { },
1016
+ { 4 , DxbcInstClass::VectorCmov, {
1017
+ { DxbcOperandKind::DstReg, DxbcScalarType::Float64 },
1018
+ { DxbcOperandKind::SrcReg, DxbcScalarType::Uint32 },
1019
+ { DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
1020
+ { DxbcOperandKind::SrcReg, DxbcScalarType::Float64 },
1021
+ } },
1017
1022
/* DtoF */
1018
1023
{ 2 , DxbcInstClass::ConvertFloat64, {
1019
1024
{ DxbcOperandKind::DstReg, DxbcScalarType::Float32 },
You can’t perform that action at this time.
0 commit comments