diff options
Diffstat (limited to 'src/video_core/macro')
| -rw-r--r-- | src/video_core/macro/macro_hle.cpp | 48 |
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>& | |||
| 87 | void HLE_3F5E74B9C9A50164(Engines::Maxwell3D& maxwell3d, const std::vector<u32>& parameters) { | 87 | void 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); |