diff options
-rw-r--r-- | src/video_core/command_processor.cpp | 4 | ||||
-rw-r--r-- | src/video_core/gpu.h | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp index dc485e811..d5831e752 100644 --- a/src/video_core/command_processor.cpp +++ b/src/video_core/command_processor.cpp @@ -34,6 +34,8 @@ void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params) "{:08X} remaining params {}", method, subchannel, value, remaining_params); + ASSERT(subchannel < bound_engines.size()); + if (method == static_cast<u32>(BufferMethods::BindObject)) { // Bind the current subchannel to the desired engine id. LOG_DEBUG(HW_GPU, "Binding subchannel {} to engine {}", subchannel, value); @@ -47,8 +49,6 @@ void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params) return; } - ASSERT(bound_engines.find(subchannel) != bound_engines.end()); - const EngineID engine = bound_engines[subchannel]; switch (engine) { diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 2c3dbd97b..d29f31f52 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -4,8 +4,8 @@ #pragma once +#include <array> #include <memory> -#include <unordered_map> #include "common/common_types.h" #include "core/hle/service/nvflinger/buffer_queue.h" #include "video_core/memory_manager.h" @@ -136,7 +136,7 @@ private: std::unique_ptr<Tegra::MemoryManager> memory_manager; /// Mapping of command subchannels to their bound engine ids. - std::unordered_map<u32, EngineID> bound_engines; + std::array<EngineID, 8> bound_engines = {}; /// 3D engine std::unique_ptr<Engines::Maxwell3D> maxwell_3d; |