summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-06-09 00:04:41 +0200
committerSubv <subv2112@gmail.com>2018-06-09 00:04:41 +0200
commitc712dafaeee1a6deff1a6bb80650d14109c89fb9 (patch)
tree041a88a5663cc2da368c8ff10179af933c3718ff
parentMerge pull request #547 from Subv/compressed_alignment (diff)
downloadyuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar.gz
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar.bz2
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar.lz
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar.xz
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.tar.zst
yuzu-c712dafaeee1a6deff1a6bb80650d14109c89fb9.zip
-rw-r--r--src/video_core/engines/maxwell_3d.h31
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp27
2 files changed, 27 insertions, 31 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 56b837372..2dc251205 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -318,6 +318,7 @@ public:
Equation equation_a;
Factor factor_source_a;
Factor factor_dest_a;
+ INSERT_PADDING_WORDS(1);
};
union {
@@ -432,7 +433,27 @@ public:
};
} rt_control;
- INSERT_PADDING_WORDS(0xCF);
+ INSERT_PADDING_WORDS(0x31);
+
+ u32 independent_blend_enable;
+
+ INSERT_PADDING_WORDS(0x15);
+
+ struct {
+ u32 separate_alpha;
+ Blend::Equation equation_rgb;
+ Blend::Factor factor_source_rgb;
+ Blend::Factor factor_dest_rgb;
+ Blend::Equation equation_a;
+ Blend::Factor factor_source_a;
+ INSERT_PADDING_WORDS(1);
+ Blend::Factor factor_dest_a;
+
+ u32 enable_common;
+ u32 enable[NumRenderTargets];
+ } blend;
+
+ INSERT_PADDING_WORDS(0x77);
struct {
u32 tsc_address_high;
@@ -557,9 +578,7 @@ public:
} vertex_array[NumVertexArrays];
- Blend blend;
-
- INSERT_PADDING_WORDS(0x39);
+ Blend independent_blend[NumRenderTargets];
struct {
u32 limit_high;
@@ -722,6 +741,8 @@ ASSERT_REG_POSITION(vertex_buffer, 0x35D);
ASSERT_REG_POSITION(zeta, 0x3F8);
ASSERT_REG_POSITION(vertex_attrib_format[0], 0x458);
ASSERT_REG_POSITION(rt_control, 0x487);
+ASSERT_REG_POSITION(independent_blend_enable, 0x4B9);
+ASSERT_REG_POSITION(blend, 0x4CF);
ASSERT_REG_POSITION(tsc, 0x557);
ASSERT_REG_POSITION(tic, 0x55D);
ASSERT_REG_POSITION(code_address, 0x582);
@@ -729,7 +750,7 @@ ASSERT_REG_POSITION(draw, 0x585);
ASSERT_REG_POSITION(index_array, 0x5F2);
ASSERT_REG_POSITION(query, 0x6C0);
ASSERT_REG_POSITION(vertex_array[0], 0x700);
-ASSERT_REG_POSITION(blend, 0x780);
+ASSERT_REG_POSITION(independent_blend, 0x780);
ASSERT_REG_POSITION(vertex_array_limit[0], 0x7C0);
ASSERT_REG_POSITION(shader_config[0], 0x800);
ASSERT_REG_POSITION(const_buffer, 0x8E0);
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 59761c6b1..6bc0dbd38 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -455,32 +455,7 @@ void RasterizerOpenGL::DrawArrays() {
}
}
-void RasterizerOpenGL::NotifyMaxwellRegisterChanged(u32 method) {
- const auto& regs = Core::System().GetInstance().GPU().Maxwell3D().regs;
- switch (method) {
- case MAXWELL3D_REG_INDEX(blend.separate_alpha):
- ASSERT_MSG(false, "unimplemented");
- break;
- case MAXWELL3D_REG_INDEX(blend.equation_rgb):
- state.blend.rgb_equation = MaxwellToGL::BlendEquation(regs.blend.equation_rgb);
- break;
- case MAXWELL3D_REG_INDEX(blend.factor_source_rgb):
- state.blend.src_rgb_func = MaxwellToGL::BlendFunc(regs.blend.factor_source_rgb);
- break;
- case MAXWELL3D_REG_INDEX(blend.factor_dest_rgb):
- state.blend.dst_rgb_func = MaxwellToGL::BlendFunc(regs.blend.factor_dest_rgb);
- break;
- case MAXWELL3D_REG_INDEX(blend.equation_a):
- state.blend.a_equation = MaxwellToGL::BlendEquation(regs.blend.equation_a);
- break;
- case MAXWELL3D_REG_INDEX(blend.factor_source_a):
- state.blend.src_a_func = MaxwellToGL::BlendFunc(regs.blend.factor_source_a);
- break;
- case MAXWELL3D_REG_INDEX(blend.factor_dest_a):
- state.blend.dst_a_func = MaxwellToGL::BlendFunc(regs.blend.factor_dest_a);
- break;
- }
-}
+void RasterizerOpenGL::NotifyMaxwellRegisterChanged(u32 method) {}
void RasterizerOpenGL::FlushAll() {
MICROPROFILE_SCOPE(OpenGL_CacheManagement);