aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/video_core/pica.h
diff options
context:
space:
mode:
authorGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-07-27 14:58:30 +0200
committerGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-08-12 13:48:56 +0200
commit9a76a2d0611fc0c35b665fb886d437e8f4d5b4df (patch)
tree3dc2277e820070ef0d13769c10892f1fd2460d13 /src/video_core/pica.h
parentc52651261916b136f2ea4ff022fb9cead5a73a93 (diff)
Pica: Add primitive assembly stage.
Diffstat (limited to 'src/video_core/pica.h')
-rw-r--r--src/video_core/pica.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/video_core/pica.h b/src/video_core/pica.h
index 42303a58..6bbd3ce3 100644
--- a/src/video_core/pica.h
+++ b/src/video_core/pica.h
@@ -221,7 +221,18 @@ struct Regs {
u32 trigger_draw;
u32 trigger_draw_indexed;
- INSERT_PADDING_WORDS(0x8a);
+ INSERT_PADDING_WORDS(0x2e);
+
+ enum class TriangleTopology : u32 {
+ List = 0,
+ Strip = 1,
+ Fan = 2,
+ ListIndexed = 3, // TODO: No idea if this is correct
+ };
+
+ BitField<8, 2, TriangleTopology> triangle_topology;
+
+ INSERT_PADDING_WORDS(0x5b);
// Offset to shader program entry point (in words)
BitField<0, 16, u32> vs_main_offset;
@@ -334,6 +345,7 @@ struct Regs {
ADD_FIELD(num_vertices);
ADD_FIELD(trigger_draw);
ADD_FIELD(trigger_draw_indexed);
+ ADD_FIELD(triangle_topology);
ADD_FIELD(vs_main_offset);
ADD_FIELD(vs_input_register_map);
ADD_FIELD(vs_uniform_setup);
@@ -386,6 +398,7 @@ ASSERT_REG_POSITION(index_array, 0x227);
ASSERT_REG_POSITION(num_vertices, 0x228);
ASSERT_REG_POSITION(trigger_draw, 0x22e);
ASSERT_REG_POSITION(trigger_draw_indexed, 0x22f);
+ASSERT_REG_POSITION(triangle_topology, 0x25e);
ASSERT_REG_POSITION(vs_main_offset, 0x2ba);
ASSERT_REG_POSITION(vs_input_register_map, 0x2bb);
ASSERT_REG_POSITION(vs_uniform_setup, 0x2c0);