commit
9a07e9f805
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Reference in New Issue