summaryrefslogtreecommitdiff
path: root/src/video_core/engines
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-02-16 04:12:38 -0300
committerGravatar ReinUsesLisp2020-02-16 04:19:32 -0300
commit6a0220b2e1a0d7692b8f32f66ae7bc86cb63fab7 (patch)
tree06b9087f7921595d336b98503c0e9fcf25694775 /src/video_core/engines
parentMerge pull request #3401 from FernandoS27/synchronization (diff)
downloadyuzu-6a0220b2e1a0d7692b8f32f66ae7bc86cb63fab7.tar.gz
yuzu-6a0220b2e1a0d7692b8f32f66ae7bc86cb63fab7.tar.xz
yuzu-6a0220b2e1a0d7692b8f32f66ae7bc86cb63fab7.zip
texture_cache: Implement layered framebuffer attachments
Layered framebuffer attachments is a feature that allows applications to write attach layered textures to a single attachment. What layer the fragments are written to is decided from the shader using gl_Layer.
Diffstat (limited to 'src/video_core/engines')
-rw-r--r--src/video_core/engines/maxwell_3d.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 0a2af54e5..432596e27 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -520,7 +520,7 @@ public:
520 BitField<12, 1, InvMemoryLayout> type; 520 BitField<12, 1, InvMemoryLayout> type;
521 } memory_layout; 521 } memory_layout;
522 union { 522 union {
523 BitField<0, 16, u32> array_mode; 523 BitField<0, 16, u32> layers;
524 BitField<16, 1, u32> volume; 524 BitField<16, 1, u32> volume;
525 }; 525 };
526 u32 layer_stride; 526 u32 layer_stride;
@@ -778,8 +778,12 @@ public:
778 778
779 u32 zeta_width; 779 u32 zeta_width;
780 u32 zeta_height; 780 u32 zeta_height;
781 union {
782 BitField<0, 16, u32> zeta_layers;
783 BitField<16, 1, u32> zeta_volume;
784 };
781 785
782 INSERT_UNION_PADDING_WORDS(0x27); 786 INSERT_UNION_PADDING_WORDS(0x26);
783 787
784 u32 depth_test_enable; 788 u32 depth_test_enable;
785 789
@@ -1475,6 +1479,7 @@ ASSERT_REG_POSITION(vertex_attrib_format, 0x458);
1475ASSERT_REG_POSITION(rt_control, 0x487); 1479ASSERT_REG_POSITION(rt_control, 0x487);
1476ASSERT_REG_POSITION(zeta_width, 0x48a); 1480ASSERT_REG_POSITION(zeta_width, 0x48a);
1477ASSERT_REG_POSITION(zeta_height, 0x48b); 1481ASSERT_REG_POSITION(zeta_height, 0x48b);
1482ASSERT_REG_POSITION(zeta_layers, 0x48c);
1478ASSERT_REG_POSITION(depth_test_enable, 0x4B3); 1483ASSERT_REG_POSITION(depth_test_enable, 0x4B3);
1479ASSERT_REG_POSITION(independent_blend_enable, 0x4B9); 1484ASSERT_REG_POSITION(independent_blend_enable, 0x4B9);
1480ASSERT_REG_POSITION(depth_write_enabled, 0x4BA); 1485ASSERT_REG_POSITION(depth_write_enabled, 0x4BA);