summaryrefslogtreecommitdiffstats
path: root/src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp')
-rw-r--r--src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp b/src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp
new file mode 100644
index 00000000..848f8ad7
--- /dev/null
+++ b/src/libs/dxvk-native-1.9.2a/src/dxbc/dxbc_util.cpp
@@ -0,0 +1,26 @@
+#include "dxbc_util.h"
+
+namespace dxvk {
+
+ uint32_t primitiveVertexCount(DxbcPrimitive primitive) {
+ static const std::array<uint32_t, 8> s_vertexCounts = {
+ 0, // Undefined
+ 1, // Point
+ 2, // Line
+ 3, // Triangle
+ 0, // Undefined
+ 0, // Undefined
+ 4, // Line with adjacency
+ 6, // Triangle with adjacency
+ };
+
+ if (primitive >= DxbcPrimitive::Patch1) {
+ return static_cast<uint32_t>(primitive)
+ - static_cast<uint32_t>(DxbcPrimitive::Patch1);
+ } else {
+ return s_vertexCounts.at(
+ static_cast<uint32_t>(primitive));
+ }
+ }
+
+} \ No newline at end of file