summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/attribute.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-06-24 02:41:09 -0300
committerGravatar ameerj2021-07-22 21:51:39 -0400
commit7dafa96ab59892b7f1fbffdb61e4326e6443955f (patch)
tree5ab58d56860db635542ea1ec24be258bd86b40b9 /src/shader_recompiler/frontend/ir/attribute.h
parentvk_graphics_pipeline: Implement conservative rendering (diff)
downloadyuzu-7dafa96ab59892b7f1fbffdb61e4326e6443955f.tar.gz
yuzu-7dafa96ab59892b7f1fbffdb61e4326e6443955f.tar.xz
yuzu-7dafa96ab59892b7f1fbffdb61e4326e6443955f.zip
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
Diffstat (limited to 'src/shader_recompiler/frontend/ir/attribute.h')
-rw-r--r--src/shader_recompiler/frontend/ir/attribute.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/attribute.h b/src/shader_recompiler/frontend/ir/attribute.h
index 8bf2ddf30..ca1199494 100644
--- a/src/shader_recompiler/frontend/ir/attribute.h
+++ b/src/shader_recompiler/frontend/ir/attribute.h
@@ -222,6 +222,8 @@ enum class Attribute : u64 {
222 FrontFace = 255, 222 FrontFace = 255,
223}; 223};
224 224
225constexpr size_t NUM_GENERICS = 32;
226
225[[nodiscard]] bool IsGeneric(Attribute attribute) noexcept; 227[[nodiscard]] bool IsGeneric(Attribute attribute) noexcept;
226 228
227[[nodiscard]] u32 GenericAttributeIndex(Attribute attribute); 229[[nodiscard]] u32 GenericAttributeIndex(Attribute attribute);
@@ -230,6 +232,10 @@ enum class Attribute : u64 {
230 232
231[[nodiscard]] std::string NameOf(Attribute attribute); 233[[nodiscard]] std::string NameOf(Attribute attribute);
232 234
235[[nodiscard]] constexpr IR::Attribute operator+(IR::Attribute attribute, size_t value) noexcept {
236 return static_cast<IR::Attribute>(static_cast<size_t>(attribute) + value);
237}
238
233} // namespace Shader::IR 239} // namespace Shader::IR
234 240
235template <> 241template <>