summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/runtime_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/runtime_info.h')
-rw-r--r--src/shader_recompiler/runtime_info.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/shader_recompiler/runtime_info.h b/src/shader_recompiler/runtime_info.h
new file mode 100644
index 000000000..d4b047b4d
--- /dev/null
+++ b/src/shader_recompiler/runtime_info.h
@@ -0,0 +1,83 @@
+// Copyright 2021 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+#include <optional>
+#include <vector>
+
+#include "common/common_types.h"
+
+namespace Shader {
+
+enum class AttributeType : u8 {
+ Float,
+ SignedInt,
+ UnsignedInt,
+ Disabled,
+};
+
+enum class InputTopology {
+ Points,
+ Lines,
+ LinesAdjacency,
+ Triangles,
+ TrianglesAdjacency,
+};
+
+enum class CompareFunction {
+ Never,
+ Less,
+ Equal,
+ LessThanEqual,
+ Greater,
+ NotEqual,
+ GreaterThanEqual,
+ Always,
+};
+
+enum class TessPrimitive {
+ Isolines,
+ Triangles,
+ Quads,
+};
+
+enum class TessSpacing {
+ Equal,
+ FractionalOdd,
+ FractionalEven,
+};
+
+struct TransformFeedbackVarying {
+ u32 buffer{};
+ u32 stride{};
+ u32 offset{};
+ u32 components{};
+};
+
+struct RuntimeInfo {
+ std::array<AttributeType, 32> generic_input_types{};
+ bool convert_depth_mode{};
+ bool force_early_z{};
+
+ TessPrimitive tess_primitive{};
+ TessSpacing tess_spacing{};
+ bool tess_clockwise{};
+
+ InputTopology input_topology{};
+
+ std::optional<float> fixed_state_point_size;
+ std::optional<CompareFunction> alpha_test_func;
+ float alpha_test_reference{};
+
+ // Static y negate value
+ bool y_negate{};
+ // Use storage buffers instead of global pointers on GLASM
+ bool glasm_use_storage_buffers{};
+
+ std::vector<TransformFeedbackVarying> xfb_varyings;
+};
+
+} // namespace Shader