mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-13 19:29:14 +01:00
[spirv] Add subgroup ballot instructions
This commit is contained in:
parent
4057937d2d
commit
0113e8f360
@ -2872,6 +2872,38 @@ namespace dxvk {
|
||||
}
|
||||
|
||||
|
||||
uint32_t SpirvModule::opGroupNonUniformBallot(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
uint32_t predicate) {
|
||||
uint32_t resultId = this->allocateId();
|
||||
|
||||
m_code.putIns(spv::OpGroupNonUniformBallot, 5);
|
||||
m_code.putWord(resultType);
|
||||
m_code.putWord(resultId);
|
||||
m_code.putWord(execution);
|
||||
m_code.putWord(predicate);
|
||||
return resultId;
|
||||
}
|
||||
|
||||
|
||||
uint32_t SpirvModule::opGroupNonUniformBallotBitCount(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
uint32_t operation,
|
||||
uint32_t ballot) {
|
||||
uint32_t resultId = this->allocateId();
|
||||
|
||||
m_code.putIns(spv::OpGroupNonUniformBallotBitCount, 6);
|
||||
m_code.putWord(resultType);
|
||||
m_code.putWord(resultId);
|
||||
m_code.putWord(execution);
|
||||
m_code.putWord(operation);
|
||||
m_code.putWord(ballot);
|
||||
return resultId;
|
||||
}
|
||||
|
||||
|
||||
uint32_t SpirvModule::opGroupNonUniformLogicalAnd(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
|
@ -992,6 +992,17 @@ namespace dxvk {
|
||||
uint32_t reference,
|
||||
const SpirvImageOperands& operands);
|
||||
|
||||
uint32_t opGroupNonUniformBallot(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
uint32_t predicate);
|
||||
|
||||
uint32_t opGroupNonUniformBallotBitCount(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
uint32_t operation,
|
||||
uint32_t ballot);
|
||||
|
||||
uint32_t opGroupNonUniformLogicalAnd(
|
||||
uint32_t resultType,
|
||||
uint32_t execution,
|
||||
|
Loading…
x
Reference in New Issue
Block a user