[spirv] Add subgroup ballot instructions

This commit is contained in:
Philip Rebohle 2018-11-26 15:08:32 +01:00
parent 4057937d2d
commit 0113e8f360
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 43 additions and 0 deletions

View File

@ -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,

View File

@ -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,