mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-18 02:52:10 +01:00
[dxbc] Implement ImmAtomic*Min/Max instructions
This commit is contained in:
parent
00a145906c
commit
d2c6ec5c41
@ -2061,24 +2061,28 @@ namespace dxvk {
|
||||
break;
|
||||
|
||||
case DxbcOpcode::AtomicIMin:
|
||||
case DxbcOpcode::ImmAtomicIMin:
|
||||
value.id = m_module.opAtomicSMin(typeId,
|
||||
pointer.id, scopeId, semanticsId,
|
||||
src[0].id);
|
||||
break;
|
||||
|
||||
case DxbcOpcode::AtomicIMax:
|
||||
case DxbcOpcode::ImmAtomicIMax:
|
||||
value.id = m_module.opAtomicSMax(typeId,
|
||||
pointer.id, scopeId, semanticsId,
|
||||
src[0].id);
|
||||
break;
|
||||
|
||||
case DxbcOpcode::AtomicUMin:
|
||||
case DxbcOpcode::ImmAtomicUMin:
|
||||
value.id = m_module.opAtomicUMin(typeId,
|
||||
pointer.id, scopeId, semanticsId,
|
||||
src[0].id);
|
||||
break;
|
||||
|
||||
case DxbcOpcode::AtomicUMax:
|
||||
case DxbcOpcode::ImmAtomicUMax:
|
||||
value.id = m_module.opAtomicUMax(typeId,
|
||||
pointer.id, scopeId, semanticsId,
|
||||
src[0].id);
|
||||
|
@ -927,28 +927,28 @@ namespace dxvk {
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Uint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Uint32 },
|
||||
} },
|
||||
/* ImmAtomicImax */
|
||||
/* ImmAtomicIMax */
|
||||
{ 4, DxbcInstClass::Atomic, {
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
|
||||
} },
|
||||
/* ImmAtomicImin */
|
||||
/* ImmAtomicIMin */
|
||||
{ 4, DxbcInstClass::Atomic, {
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
|
||||
} },
|
||||
/* ImmAtomicUmax */
|
||||
/* ImmAtomicUMax */
|
||||
{ 4, DxbcInstClass::Atomic, {
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Sint32 },
|
||||
{ DxbcOperandKind::SrcReg, DxbcScalarType::Uint32 },
|
||||
} },
|
||||
/* ImmAtomicUmin */
|
||||
/* ImmAtomicUMin */
|
||||
{ 4, DxbcInstClass::Atomic, {
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },
|
||||
{ DxbcOperandKind::DstReg, DxbcScalarType::Uint32 },
|
||||
|
@ -194,10 +194,10 @@ namespace dxvk {
|
||||
ImmAtomicXor = 183,
|
||||
ImmAtomicExch = 184,
|
||||
ImmAtomicCmpExch = 185,
|
||||
ImmAtomicImax = 186,
|
||||
ImmAtomicImin = 187,
|
||||
ImmAtomicUmax = 188,
|
||||
ImmAtomicUmin = 189,
|
||||
ImmAtomicIMax = 186,
|
||||
ImmAtomicIMin = 187,
|
||||
ImmAtomicUMax = 188,
|
||||
ImmAtomicUMin = 189,
|
||||
Sync = 190,
|
||||
DAdd = 191,
|
||||
DMax = 192,
|
||||
|
@ -190,10 +190,10 @@ std::ostream& operator << (std::ostream& os, DxbcOpcode e) {
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicXor);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicExch);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicCmpExch);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicImax);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicImin);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicUmax);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicUmin);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicIMax);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicIMin);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicUMax);
|
||||
ENUM_NAME(DxbcOpcode::ImmAtomicUMin);
|
||||
ENUM_NAME(DxbcOpcode::Sync);
|
||||
ENUM_NAME(DxbcOpcode::DAdd);
|
||||
ENUM_NAME(DxbcOpcode::DMax);
|
||||
|
Loading…
x
Reference in New Issue
Block a user