Browse Source
Merge pull request #1237 from degasus/optimizations
Optimizations
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
7 additions and
7 deletions
-
src/core/core.cpp
-
src/core/core.h
-
src/video_core/command_processor.cpp
-
src/video_core/gpu.h
|
|
|
@ -441,8 +441,8 @@ void System::SetGPUDebugContext(std::shared_ptr<Tegra::DebugContext> context) { |
|
|
|
impl->debug_context = std::move(context); |
|
|
|
} |
|
|
|
|
|
|
|
std::shared_ptr<Tegra::DebugContext> System::GetGPUDebugContext() const { |
|
|
|
return impl->debug_context; |
|
|
|
Tegra::DebugContext* System::GetGPUDebugContext() const { |
|
|
|
return impl->debug_context.get(); |
|
|
|
} |
|
|
|
|
|
|
|
void System::SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs) { |
|
|
|
|
|
|
|
@ -209,7 +209,7 @@ public: |
|
|
|
|
|
|
|
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); |
|
|
|
|
|
|
|
|
|
|
|
@ -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) { |
|
|
|
|
|
|
|
@ -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; |
|
|
|
|