summaryrefslogtreecommitdiff
path: root/src/video_core/macro
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/macro')
-rw-r--r--src/video_core/macro/macro_hle.cpp48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/video_core/macro/macro_hle.cpp b/src/video_core/macro/macro_hle.cpp
index cabe8dcbf..8a8adbb42 100644
--- a/src/video_core/macro/macro_hle.cpp
+++ b/src/video_core/macro/macro_hle.cpp
@@ -21,16 +21,16 @@ void HLE_771BB18C62444DA0(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
21 21
22 maxwell3d.regs.draw.topology.Assign( 22 maxwell3d.regs.draw.topology.Assign(
23 static_cast<Tegra::Engines::Maxwell3D::Regs::PrimitiveTopology>(parameters[0] & 0x3ffffff)); 23 static_cast<Tegra::Engines::Maxwell3D::Regs::PrimitiveTopology>(parameters[0] & 0x3ffffff));
24 maxwell3d.regs.vb_base_instance = parameters[5]; 24 maxwell3d.regs.global_base_instance_index = parameters[5];
25 maxwell3d.mme_draw.instance_count = instance_count; 25 maxwell3d.mme_draw.instance_count = instance_count;
26 maxwell3d.regs.vb_element_base = parameters[3]; 26 maxwell3d.regs.global_base_vertex_index = parameters[3];
27 maxwell3d.regs.index_array.count = parameters[1]; 27 maxwell3d.regs.index_buffer.count = parameters[1];
28 maxwell3d.regs.index_array.first = parameters[4]; 28 maxwell3d.regs.index_buffer.first = parameters[4];
29 29
30 if (maxwell3d.ShouldExecute()) { 30 if (maxwell3d.ShouldExecute()) {
31 maxwell3d.Rasterizer().Draw(true, true); 31 maxwell3d.Rasterizer().Draw(true, true);
32 } 32 }
33 maxwell3d.regs.index_array.count = 0; 33 maxwell3d.regs.index_buffer.count = 0;
34 maxwell3d.mme_draw.instance_count = 0; 34 maxwell3d.mme_draw.instance_count = 0;
35 maxwell3d.mme_draw.current_mode = Engines::Maxwell3D::MMEDrawMode::Undefined; 35 maxwell3d.mme_draw.current_mode = Engines::Maxwell3D::MMEDrawMode::Undefined;
36} 36}
@@ -40,7 +40,7 @@ void HLE_0D61FC9FAAC9FCAD(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
40 40
41 maxwell3d.regs.vertex_buffer.first = parameters[3]; 41 maxwell3d.regs.vertex_buffer.first = parameters[3];
42 maxwell3d.regs.vertex_buffer.count = parameters[1]; 42 maxwell3d.regs.vertex_buffer.count = parameters[1];
43 maxwell3d.regs.vb_base_instance = parameters[4]; 43 maxwell3d.regs.global_base_instance_index = parameters[4];
44 maxwell3d.regs.draw.topology.Assign( 44 maxwell3d.regs.draw.topology.Assign(
45 static_cast<Tegra::Engines::Maxwell3D::Regs::PrimitiveTopology>(parameters[0])); 45 static_cast<Tegra::Engines::Maxwell3D::Regs::PrimitiveTopology>(parameters[0]));
46 maxwell3d.mme_draw.instance_count = count; 46 maxwell3d.mme_draw.instance_count = count;
@@ -57,12 +57,12 @@ void HLE_0217920100488FF7(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
57 const u32 instance_count = (maxwell3d.GetRegisterValue(0xD1B) & parameters[2]); 57 const u32 instance_count = (maxwell3d.GetRegisterValue(0xD1B) & parameters[2]);
58 const u32 element_base = parameters[4]; 58 const u32 element_base = parameters[4];
59 const u32 base_instance = parameters[5]; 59 const u32 base_instance = parameters[5];
60 maxwell3d.regs.index_array.first = parameters[3]; 60 maxwell3d.regs.index_buffer.first = parameters[3];
61 maxwell3d.regs.reg_array[0x446] = element_base; // vertex id base? 61 maxwell3d.regs.vertex_id_base = element_base;
62 maxwell3d.regs.index_array.count = parameters[1]; 62 maxwell3d.regs.index_buffer.count = parameters[1];
63 maxwell3d.dirty.flags[VideoCommon::Dirty::IndexBuffer] = true; 63 maxwell3d.dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
64 maxwell3d.regs.vb_element_base = element_base; 64 maxwell3d.regs.global_base_vertex_index = element_base;
65 maxwell3d.regs.vb_base_instance = base_instance; 65 maxwell3d.regs.global_base_instance_index = base_instance;
66 maxwell3d.mme_draw.instance_count = instance_count; 66 maxwell3d.mme_draw.instance_count = instance_count;
67 maxwell3d.CallMethodFromMME(0x8e3, 0x640); 67 maxwell3d.CallMethodFromMME(0x8e3, 0x640);
68 maxwell3d.CallMethodFromMME(0x8e4, element_base); 68 maxwell3d.CallMethodFromMME(0x8e4, element_base);
@@ -72,10 +72,10 @@ void HLE_0217920100488FF7(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
72 if (maxwell3d.ShouldExecute()) { 72 if (maxwell3d.ShouldExecute()) {
73 maxwell3d.Rasterizer().Draw(true, true); 73 maxwell3d.Rasterizer().Draw(true, true);
74 } 74 }
75 maxwell3d.regs.reg_array[0x446] = 0x0; // vertex id base? 75 maxwell3d.regs.vertex_id_base = 0x0;
76 maxwell3d.regs.index_array.count = 0; 76 maxwell3d.regs.index_buffer.count = 0;
77 maxwell3d.regs.vb_element_base = 0x0; 77 maxwell3d.regs.global_base_vertex_index = 0x0;
78 maxwell3d.regs.vb_base_instance = 0x0; 78 maxwell3d.regs.global_base_instance_index = 0x0;
79 maxwell3d.mme_draw.instance_count = 0; 79 maxwell3d.mme_draw.instance_count = 0;
80 maxwell3d.CallMethodFromMME(0x8e3, 0x640); 80 maxwell3d.CallMethodFromMME(0x8e3, 0x640);
81 maxwell3d.CallMethodFromMME(0x8e4, 0x0); 81 maxwell3d.CallMethodFromMME(0x8e4, 0x0);
@@ -87,10 +87,10 @@ void HLE_0217920100488FF7(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
87void HLE_3F5E74B9C9A50164(Engines::Maxwell3D& maxwell3d, const std::vector<u32>& parameters) { 87void HLE_3F5E74B9C9A50164(Engines::Maxwell3D& maxwell3d, const std::vector<u32>& parameters) {
88 SCOPE_EXIT({ 88 SCOPE_EXIT({
89 // Clean everything. 89 // Clean everything.
90 maxwell3d.regs.reg_array[0x446] = 0x0; // vertex id base? 90 maxwell3d.regs.vertex_id_base = 0x0;
91 maxwell3d.regs.index_array.count = 0; 91 maxwell3d.regs.index_buffer.count = 0;
92 maxwell3d.regs.vb_element_base = 0x0; 92 maxwell3d.regs.global_base_vertex_index = 0x0;
93 maxwell3d.regs.vb_base_instance = 0x0; 93 maxwell3d.regs.global_base_instance_index = 0x0;
94 maxwell3d.mme_draw.instance_count = 0; 94 maxwell3d.mme_draw.instance_count = 0;
95 maxwell3d.CallMethodFromMME(0x8e3, 0x640); 95 maxwell3d.CallMethodFromMME(0x8e3, 0x640);
96 maxwell3d.CallMethodFromMME(0x8e4, 0x0); 96 maxwell3d.CallMethodFromMME(0x8e4, 0x0);
@@ -122,11 +122,11 @@ void HLE_3F5E74B9C9A50164(Engines::Maxwell3D& maxwell3d, const std::vector<u32>&
122 const u32 first_index = parameters[base + 2]; 122 const u32 first_index = parameters[base + 2];
123 const u32 base_vertex = parameters[base + 3]; 123 const u32 base_vertex = parameters[base + 3];
124 const u32 base_instance = parameters[base + 4]; 124 const u32 base_instance = parameters[base + 4];
125 maxwell3d.regs.index_array.first = first_index; 125 maxwell3d.regs.index_buffer.first = first_index;
126 maxwell3d.regs.reg_array[0x446] = base_vertex; 126 maxwell3d.regs.vertex_id_base = base_vertex;
127 maxwell3d.regs.index_array.count = num_vertices; 127 maxwell3d.regs.index_buffer.count = num_vertices;
128 maxwell3d.regs.vb_element_base = base_vertex; 128 maxwell3d.regs.global_base_vertex_index = base_vertex;
129 maxwell3d.regs.vb_base_instance = base_instance; 129 maxwell3d.regs.global_base_instance_index = base_instance;
130 maxwell3d.mme_draw.instance_count = instance_count; 130 maxwell3d.mme_draw.instance_count = instance_count;
131 maxwell3d.CallMethodFromMME(0x8e3, 0x640); 131 maxwell3d.CallMethodFromMME(0x8e3, 0x640);
132 maxwell3d.CallMethodFromMME(0x8e4, base_vertex); 132 maxwell3d.CallMethodFromMME(0x8e4, base_vertex);