Browse Source

fix try #1

pull/3322/head
CamilleLaVey 3 weeks ago
parent
commit
e4ee00e7b5
  1. 2
      src/video_core/dma_pusher.h
  2. 1
      src/video_core/engines/engine_interface.h
  3. 5
      src/video_core/engines/maxwell_3d.cpp
  4. 5
      src/video_core/macro/macro_interpreter.cpp

2
src/video_core/dma_pusher.h

@ -178,7 +178,7 @@ private:
const bool ib_enable{true}; ///< IB mode enabled
std::array<Engines::EngineInterface*, max_subchannels> subchannels{};
std::array<Engines::EngineTypes, max_subchannels> subchannel_type;
std::array<Engines::EngineTypes, max_subchannels> subchannel_type{};
GPU& gpu;
Core::System& system;

1
src/video_core/engines/engine_interface.h

@ -15,6 +15,7 @@
namespace Tegra::Engines {
enum class EngineTypes : u32 {
Invalid = 0,
KeplerCompute,
Maxwell3D,
Fermi2D,

5
src/video_core/engines/maxwell_3d.cpp

@ -256,7 +256,10 @@ void Maxwell3D::ProcessDirtyRegisters(u32 method, u32 argument) {
}
regs.reg_array[method] = argument;
const auto [flag0, flag1] = VideoCommon::Dirty::GetDirtyFlagsForMethod(method);
const auto& table0 = dirty.tables[0];
const auto& table1 = dirty.tables[1];
const u8 flag0 = table0[method];
const u8 flag1 = table1[method];
dirty.flags[flag0] = true;
if (flag1 != flag0) {
dirty.flags[flag1] = true;

5
src/video_core/macro/macro_interpreter.cpp

@ -107,8 +107,9 @@ void MacroInterpreterImpl::Execute(const std::vector<u32>& params, u32 method) {
keep_executing = Step(false);
}
// Assert the the macro used all the input parameters
ASSERT(next_parameter_index == num_parameters);
// Verify the macro used all the input parameters (debug only)
// Some games/macros may not consume all parameters, which is valid behavior
DEBUG_ASSERT(next_parameter_index == num_parameters);
}
void MacroInterpreterImpl::Reset() {

Loading…
Cancel
Save