mirror of
https://git.suyu.dev/suyu/sirit.git
synced 2024-12-22 04:02:03 +00:00
Add DemoteToHelperInvocation support
This commit is contained in:
parent
4b1ff612c4
commit
0ef6e807ab
3 changed files with 14 additions and 8 deletions
|
@ -287,13 +287,16 @@ public:
|
|||
std::span<const Id> labels);
|
||||
|
||||
/// Returns with no value from a function with void return type.
|
||||
Id OpReturn();
|
||||
void OpReturn();
|
||||
|
||||
/// Return a value from a function.
|
||||
Id OpReturnValue(Id value);
|
||||
|
||||
/// Fragment-shader discard.
|
||||
Id OpKill();
|
||||
void OpKill();
|
||||
|
||||
/// Demote fragment shader invocation to a helper invocation
|
||||
void OpDemoteToHelperInvocationEXT();
|
||||
|
||||
// Debug
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@ Id Module::OpSwitch(Id selector, Id default_label, std::span<const Literal> lite
|
|||
return *code << EndOp{};
|
||||
}
|
||||
|
||||
Id Module::OpReturn() {
|
||||
void Module::OpReturn() {
|
||||
code->Reserve(1);
|
||||
return *code << spv::Op::OpReturn << EndOp{};
|
||||
*code << spv::Op::OpReturn << EndOp{};
|
||||
}
|
||||
|
||||
Id Module::OpReturnValue(Id value) {
|
||||
|
@ -72,9 +72,14 @@ Id Module::OpReturnValue(Id value) {
|
|||
return *code << spv::Op::OpReturnValue << value << EndOp{};
|
||||
}
|
||||
|
||||
Id Module::OpKill() {
|
||||
void Module::OpKill() {
|
||||
code->Reserve(1);
|
||||
return *code << spv::Op::OpKill << EndOp{};
|
||||
*code << spv::Op::OpKill << EndOp{};
|
||||
}
|
||||
|
||||
void Module::OpDemoteToHelperInvocationEXT() {
|
||||
code->Reserve(1);
|
||||
*code << spv::Op::OpDemoteToHelperInvocationEXT << EndOp{};
|
||||
}
|
||||
|
||||
} // namespace Sirit
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
|
||||
#include "stream.h"
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
namespace Sirit {
|
||||
|
||||
#define DEFINE_IMAGE_OP(opcode) \
|
||||
|
|
Loading…
Reference in a new issue