summaryrefslogtreecommitdiffstats
path: root/src/video_core/pica.h
diff options
context:
space:
mode:
authorTony Wasserka <NeoBrainX@gmail.com>2014-12-13 21:39:42 +0100
committerTony Wasserka <NeoBrainX@gmail.com>2014-12-31 16:32:55 +0100
commit0f494240228e24e21c88bf9f3178aaa68db4fb45 (patch)
treeb23513ade2000339485bf9585a988aece11c1019 /src/video_core/pica.h
parentPica/Rasterizer: Textures seem to be laid out flipped vertically. (diff)
downloadyuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar.gz
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar.bz2
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar.lz
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar.xz
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.tar.zst
yuzu-0f494240228e24e21c88bf9f3178aaa68db4fb45.zip
Diffstat (limited to 'src/video_core/pica.h')
-rw-r--r--src/video_core/pica.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/video_core/pica.h b/src/video_core/pica.h
index 810a926c9..f5771ed84 100644
--- a/src/video_core/pica.h
+++ b/src/video_core/pica.h
@@ -50,7 +50,19 @@ struct Regs {
u32 trigger_irq;
- INSERT_PADDING_WORDS(0x30);
+ INSERT_PADDING_WORDS(0x2f);
+
+ enum class CullMode : u32 {
+ // Select which polygons are considered to be "frontfacing".
+ KeepAll = 0,
+ KeepClockWise = 1,
+ KeepCounterClockWise = 2,
+ // TODO: What does the third value imply?
+ };
+
+ union {
+ BitField<0, 2, CullMode> cull_mode;
+ };
BitField<0, 24, u32> viewport_size_x;
@@ -659,6 +671,7 @@ struct Regs {
} while(false)
ADD_FIELD(trigger_irq);
+ ADD_FIELD(cull_mode);
ADD_FIELD(viewport_size_x);
ADD_FIELD(viewport_size_y);
ADD_FIELD(viewport_depth_range);
@@ -730,6 +743,7 @@ private:
#define ASSERT_REG_POSITION(field_name, position) static_assert(offsetof(Regs, field_name) == position * 4, "Field "#field_name" has invalid position")
ASSERT_REG_POSITION(trigger_irq, 0x10);
+ASSERT_REG_POSITION(cull_mode, 0x40);
ASSERT_REG_POSITION(viewport_size_x, 0x41);
ASSERT_REG_POSITION(viewport_size_y, 0x43);
ASSERT_REG_POSITION(viewport_depth_range, 0x4d);