summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-11-01 00:43:59 -0300
committerGravatar ReinUsesLisp2019-12-06 22:07:31 -0300
commit707bf41c6f3bb111407c884659a5a1e5757df53f (patch)
treeee0df1bc3e9990489523b2eff4c076143ac6a9e2 /src
parentmaxwell_3d: Add patch vertices register (diff)
downloadyuzu-707bf41c6f3bb111407c884659a5a1e5757df53f.tar.gz
yuzu-707bf41c6f3bb111407c884659a5a1e5757df53f.tar.xz
yuzu-707bf41c6f3bb111407c884659a5a1e5757df53f.zip
maxwell_3d: Add tessellation mode register
Diffstat (limited to 'src')
-rw-r--r--src/video_core/engines/maxwell_3d.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 884f2b018..05d182006 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -491,6 +491,23 @@ public:
491 INSERT_UNION_PADDING_WORDS(1); 491 INSERT_UNION_PADDING_WORDS(1);
492 }; 492 };
493 493
494 enum class DepthMode : u32 {
495 MinusOneToOne = 0,
496 ZeroToOne = 1,
497 };
498
499 enum class TessellationPrimitive : u32 {
500 Isolines = 0,
501 Triangles = 1,
502 Quads = 2,
503 };
504
505 enum class TessellationSpacing : u32 {
506 Equal = 0,
507 FractionalOdd = 1,
508 FractionalEven = 2,
509 };
510
494 struct RenderTargetConfig { 511 struct RenderTargetConfig {
495 u32 address_high; 512 u32 address_high;
496 u32 address_low; 513 u32 address_low;
@@ -628,7 +645,16 @@ public:
628 }; 645 };
629 } sync_info; 646 } sync_info;
630 647
631 INSERT_UNION_PADDING_WORDS(0x11E); 648 INSERT_UNION_PADDING_WORDS(0x15);
649
650 union {
651 BitField<0, 2, TessellationPrimitive> prim;
652 BitField<4, 2, TessellationSpacing> spacing;
653 BitField<8, 1, u32> cw;
654 BitField<9, 1, u32> connected;
655 } tess_mode;
656
657 INSERT_UNION_PADDING_WORDS(0x108);
632 658
633 u32 tfb_enabled; 659 u32 tfb_enabled;
634 660
@@ -1388,6 +1414,7 @@ ASSERT_REG_POSITION(upload, 0x60);
1388ASSERT_REG_POSITION(exec_upload, 0x6C); 1414ASSERT_REG_POSITION(exec_upload, 0x6C);
1389ASSERT_REG_POSITION(data_upload, 0x6D); 1415ASSERT_REG_POSITION(data_upload, 0x6D);
1390ASSERT_REG_POSITION(sync_info, 0xB2); 1416ASSERT_REG_POSITION(sync_info, 0xB2);
1417ASSERT_REG_POSITION(tess_mode, 0xC8);
1391ASSERT_REG_POSITION(tfb_enabled, 0x1D1); 1418ASSERT_REG_POSITION(tfb_enabled, 0x1D1);
1392ASSERT_REG_POSITION(rt, 0x200); 1419ASSERT_REG_POSITION(rt, 0x200);
1393ASSERT_REG_POSITION(viewport_transform, 0x280); 1420ASSERT_REG_POSITION(viewport_transform, 0x280);