diff --git a/Ryujinx.Graphics.Gpu/Engine/Threed/IndirectDrawType.cs b/Ryujinx.Graphics.Gpu/Engine/Threed/IndirectDrawType.cs
index d78aa4982..bba6ab82c 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Threed/IndirectDrawType.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Threed/IndirectDrawType.cs
@@ -1,8 +1,11 @@
+using System;
+
 namespace Ryujinx.Graphics.Gpu.Engine.Threed
 {
     /// <summary>
     /// Indirect draw type, which can be indexed or non-indexed, with or without a draw count.
     /// </summary>
+    [Flags]
     enum IndirectDrawType
     {
         /// <summary>
diff --git a/Ryujinx.Graphics.Shader/Decoders/InstDecoders.cs b/Ryujinx.Graphics.Shader/Decoders/InstDecoders.cs
index 98a436407..26ef474d4 100644
--- a/Ryujinx.Graphics.Shader/Decoders/InstDecoders.cs
+++ b/Ryujinx.Graphics.Shader/Decoders/InstDecoders.cs
@@ -1,3 +1,5 @@
+using System;
+
 namespace Ryujinx.Graphics.Shader.Decoders
 {
     enum AlSize
@@ -710,6 +712,7 @@ namespace Ryujinx.Graphics.Shader.Decoders
         TexSamplerBorderColor = 22,
     }
 
+    [Flags]
     enum VectorSelect
     {
         U8B0 = 0,
diff --git a/Ryujinx.Graphics.Shader/Decoders/InstProps.cs b/Ryujinx.Graphics.Shader/Decoders/InstProps.cs
index 1af94ab59..3f39e631d 100644
--- a/Ryujinx.Graphics.Shader/Decoders/InstProps.cs
+++ b/Ryujinx.Graphics.Shader/Decoders/InstProps.cs
@@ -1,5 +1,8 @@
+using System;
+
 namespace Ryujinx.Graphics.Shader.Decoders
 {
+    [Flags]
     enum InstProps : ushort
     {
         None = 0,
diff --git a/Ryujinx.Graphics.Shader/Translation/AggregateType.cs b/Ryujinx.Graphics.Shader/Translation/AggregateType.cs
index dcd1e0bd4..c8dfb4083 100644
--- a/Ryujinx.Graphics.Shader/Translation/AggregateType.cs
+++ b/Ryujinx.Graphics.Shader/Translation/AggregateType.cs
@@ -1,5 +1,8 @@
-namespace Ryujinx.Graphics.Shader.Translation
+using System;
+
+namespace Ryujinx.Graphics.Shader.Translation
 {
+    [Flags]
     enum AggregateType
     {
         Invalid,
diff --git a/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs b/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs
index 5734d301e..c53ea40ac 100644
--- a/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs
+++ b/Ryujinx.Graphics.Texture/Encoders/EncodeMode.cs
@@ -1,5 +1,8 @@
-namespace Ryujinx.Graphics.Texture.Encoders
+using System;
+
+namespace Ryujinx.Graphics.Texture.Encoders
 {
+    [Flags]
     enum EncodeMode
     {
         Fast,
diff --git a/Ryujinx.Graphics.Vulkan/PipelineDynamicState.cs b/Ryujinx.Graphics.Vulkan/PipelineDynamicState.cs
index b4d6e95c7..cf5f02aa3 100644
--- a/Ryujinx.Graphics.Vulkan/PipelineDynamicState.cs
+++ b/Ryujinx.Graphics.Vulkan/PipelineDynamicState.cs
@@ -1,5 +1,6 @@
 using Ryujinx.Common.Memory;
 using Silk.NET.Vulkan;
+using System;
 
 namespace Ryujinx.Graphics.Vulkan
 {
@@ -24,6 +25,7 @@ namespace Ryujinx.Graphics.Vulkan
         public int ViewportsCount;
         public Array16<Viewport> Viewports;
 
+        [Flags]
         private enum DirtyFlags
         {
             None = 0,
diff --git a/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/Qualifier.cs b/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/Qualifier.cs
index cb6dd6bf6..c13f2b770 100644
--- a/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/Qualifier.cs
+++ b/Ryujinx.HLE/HOS/Diagnostics/Demangler/Ast/Qualifier.cs
@@ -1,7 +1,9 @@
+using System;
 using System.IO;
 
 namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
 {
+    [Flags]
     public enum Cv
     {
         None,
@@ -10,6 +12,7 @@ namespace Ryujinx.HLE.HOS.Diagnostics.Demangler.Ast
         Restricted = 4
     }
 
+    [Flags]
     public enum Reference
     {
         None,
diff --git a/Ryujinx.HLE/HOS/Kernel/Common/KernelResult.cs b/Ryujinx.HLE/HOS/Kernel/Common/KernelResult.cs
index 357b01ea5..873fca4ed 100644
--- a/Ryujinx.HLE/HOS/Kernel/Common/KernelResult.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Common/KernelResult.cs
@@ -1,5 +1,8 @@
+using System;
+
 namespace Ryujinx.HLE.HOS.Kernel.Common
 {
+    [Flags]
     enum KernelResult
     {
         Success              = 0,
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationFlags.cs b/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationFlags.cs
index a34481e55..a79978ac4 100644
--- a/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationFlags.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationFlags.cs
@@ -1,5 +1,8 @@
-namespace Ryujinx.HLE.HOS.Kernel.Process
+using System;
+
+namespace Ryujinx.HLE.HOS.Kernel.Process
 {
+    [Flags]
     enum ProcessCreationFlags
     {
         Is64Bit = 1 << 0,
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs b/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs
index 9577075c0..1d09e021e 100644
--- a/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs
+++ b/Ryujinx.HLE/HOS/Kernel/Threading/ThreadSchedState.cs
@@ -1,5 +1,8 @@
+using System;
+
 namespace Ryujinx.HLE.HOS.Kernel.Threading
 {
+    [Flags]
     enum ThreadSchedState : ushort
     {
         LowMask        = 0xf,
diff --git a/Ryujinx.Tests.Unicorn/MemoryPermission.cs b/Ryujinx.Tests.Unicorn/MemoryPermission.cs
index a14c4e9cf..d0ddfe908 100644
--- a/Ryujinx.Tests.Unicorn/MemoryPermission.cs
+++ b/Ryujinx.Tests.Unicorn/MemoryPermission.cs
@@ -1,5 +1,8 @@
+using System;
+
 namespace Ryujinx.Tests.Unicorn
 {
+    [Flags]
     public enum MemoryPermission
     {
         NONE = 0,
diff --git a/Spv.Generator/spirv.cs b/Spv.Generator/spirv.cs
index df28438bb..4027fb514 100644
--- a/Spv.Generator/spirv.cs
+++ b/Spv.Generator/spirv.cs
@@ -42,6 +42,8 @@
 // "Mask" in their name, and a parallel enum that has the shift
 // amount (1 << x) for each corresponding enumerant.
 
+using System;
+
 namespace Spv
 {
 
@@ -341,6 +343,7 @@ namespace Spv
             ZeroExtend = 13,
         }
 
+        [Flags]
         public enum ImageOperandsMask
         {
             MaskNone = 0,
@@ -717,6 +720,7 @@ namespace Spv
             Volatile = 15,
         }
 
+        [Flags]
         public enum MemorySemanticsMask
         {
             MaskNone = 0,