diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-06-16 08:22:56 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:38 +0200 |
commit | 0ffea97e2ea2c8f58928e13dc2488d620ea98ea8 (patch) | |
tree | d297ca549a7c6dfb9fddb514cbd1f38422087f02 /src/shader_recompiler/runtime_info.h | |
parent | shader: Add support for native 16-bit floats (diff) | |
download | yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar.gz yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar.bz2 yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar.lz yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar.xz yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.tar.zst yuzu-0ffea97e2ea2c8f58928e13dc2488d620ea98ea8.zip |
Diffstat (limited to '')
-rw-r--r-- | src/shader_recompiler/runtime_info.h | 83 |
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 |