forked from ShuriZma/suyu
1
0
Fork 0

Merge pull request #1237 from degasus/optimizations

Optimizations
This commit is contained in:
bunnei 2018-09-04 12:16:06 -04:00 committed by GitHub
commit 9a07e9f805
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 7 deletions

View File

@ -441,8 +441,8 @@ void System::SetGPUDebugContext(std::shared_ptr<Tegra::DebugContext> context) {
impl->debug_context = std::move(context); impl->debug_context = std::move(context);
} }
std::shared_ptr<Tegra::DebugContext> System::GetGPUDebugContext() const { Tegra::DebugContext* System::GetGPUDebugContext() const {
return impl->debug_context; return impl->debug_context.get();
} }
void System::SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs) { void System::SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs) {

View File

@ -209,7 +209,7 @@ public:
void SetGPUDebugContext(std::shared_ptr<Tegra::DebugContext> context); void SetGPUDebugContext(std::shared_ptr<Tegra::DebugContext> context);
std::shared_ptr<Tegra::DebugContext> GetGPUDebugContext() const; Tegra::DebugContext* GetGPUDebugContext() const;
void SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs); void SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs);

View File

@ -34,6 +34,8 @@ void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params)
"{:08X} remaining params {}", "{:08X} remaining params {}",
method, subchannel, value, remaining_params); method, subchannel, value, remaining_params);
ASSERT(subchannel < bound_engines.size());
if (method == static_cast<u32>(BufferMethods::BindObject)) { if (method == static_cast<u32>(BufferMethods::BindObject)) {
// Bind the current subchannel to the desired engine id. // Bind the current subchannel to the desired engine id.
LOG_DEBUG(HW_GPU, "Binding subchannel {} to engine {}", subchannel, value); 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; return;
} }
ASSERT(bound_engines.find(subchannel) != bound_engines.end());
const EngineID engine = bound_engines[subchannel]; const EngineID engine = bound_engines[subchannel];
switch (engine) { switch (engine) {

View File

@ -4,8 +4,8 @@
#pragma once #pragma once
#include <array>
#include <memory> #include <memory>
#include <unordered_map>
#include "common/common_types.h" #include "common/common_types.h"
#include "core/hle/service/nvflinger/buffer_queue.h" #include "core/hle/service/nvflinger/buffer_queue.h"
#include "video_core/memory_manager.h" #include "video_core/memory_manager.h"
@ -136,7 +136,7 @@ private:
std::unique_ptr<Tegra::MemoryManager> memory_manager; std::unique_ptr<Tegra::MemoryManager> memory_manager;
/// Mapping of command subchannels to their bound engine ids. /// Mapping of command subchannels to their bound engine ids.
std::unordered_map<u32, EngineID> bound_engines; std::array<EngineID, 8> bound_engines = {};
/// 3D engine /// 3D engine
std::unique_ptr<Engines::Maxwell3D> maxwell_3d; std::unique_ptr<Engines::Maxwell3D> maxwell_3d;