|
|
@@ -23,6 +23,7 @@ namespace Shader::Backend::GLASM {
|
|
|
class EmitContext;
|
|
|
|
|
|
enum class Type : u32 {
|
|
|
+ Void,
|
|
|
Register,
|
|
|
U32,
|
|
|
S32,
|
|
|
@@ -65,6 +66,8 @@ struct Value {
|
|
|
return false;
|
|
|
}
|
|
|
switch (type) {
|
|
|
+ case Type::Void:
|
|
|
+ return true;
|
|
|
case Type::Register:
|
|
|
return id == rhs.id;
|
|
|
case Type::U32:
|
|
|
@@ -218,6 +221,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> {
|
|
|
template <typename FormatContext>
|
|
|
auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
|
|
|
switch (value.type) {
|
|
|
+ case Shader::Backend::GLASM::Type::Void:
|
|
|
+ break;
|
|
|
case Shader::Backend::GLASM::Type::Register:
|
|
|
return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
|
|
|
case Shader::Backend::GLASM::Type::U32:
|
|
|
@@ -242,6 +247,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> {
|
|
|
template <typename FormatContext>
|
|
|
auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
|
|
|
switch (value.type) {
|
|
|
+ case Shader::Backend::GLASM::Type::Void:
|
|
|
+ break;
|
|
|
case Shader::Backend::GLASM::Type::Register:
|
|
|
return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
|
|
|
case Shader::Backend::GLASM::Type::U32:
|
|
|
@@ -266,6 +273,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> {
|
|
|
template <typename FormatContext>
|
|
|
auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
|
|
|
switch (value.type) {
|
|
|
+ case Shader::Backend::GLASM::Type::Void:
|
|
|
+ break;
|
|
|
case Shader::Backend::GLASM::Type::Register:
|
|
|
return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
|
|
|
case Shader::Backend::GLASM::Type::U32:
|
|
|
@@ -290,6 +299,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> {
|
|
|
template <typename FormatContext>
|
|
|
auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
|
|
|
switch (value.type) {
|
|
|
+ case Shader::Backend::GLASM::Type::Void:
|
|
|
+ break;
|
|
|
case Shader::Backend::GLASM::Type::Register:
|
|
|
return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
|
|
|
case Shader::Backend::GLASM::Type::U32:
|