diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-04-28 04:07:21 +0200 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-04-28 04:07:21 +0200 |
commit | b87422a86f4dd3b59ef91c3ce37945865a6cfbef (patch) | |
tree | f7a0231f8a226f2dc73ca84fe77aa066f8b912d4 /src/video_core/gpu.cpp | |
parent | VideoCore/Engines: Refactor Engines CallMethod. (diff) | |
download | yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar.gz yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar.bz2 yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar.lz yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar.xz yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.tar.zst yuzu-b87422a86f4dd3b59ef91c3ce37945865a6cfbef.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/gpu.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 4868437c1..f10d69fd5 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -347,7 +347,27 @@ void GPU::ProcessBindMethod(const MethodCall& method_call) { // Bind the current subchannel to the desired engine id. LOG_DEBUG(HW_GPU, "Binding subchannel {} to engine {}", method_call.subchannel, method_call.argument); - bound_engines[method_call.subchannel] = static_cast<EngineID>(method_call.argument); + auto engine_id = static_cast<EngineID>(method_call.argument); + bound_engines[method_call.subchannel] = static_cast<EngineID>(engine_id); + switch (engine_id) { + case EngineID::FERMI_TWOD_A: + dma_pusher->BindSubchannel(fermi_2d.get(), method_call.subchannel); + break; + case EngineID::MAXWELL_B: + dma_pusher->BindSubchannel(maxwell_3d.get(), method_call.subchannel); + break; + case EngineID::KEPLER_COMPUTE_B: + dma_pusher->BindSubchannel(kepler_compute.get(), method_call.subchannel); + break; + case EngineID::MAXWELL_DMA_COPY_A: + dma_pusher->BindSubchannel(maxwell_dma.get(), method_call.subchannel); + break; + case EngineID::KEPLER_INLINE_TO_MEMORY_B: + dma_pusher->BindSubchannel(kepler_memory.get(), method_call.subchannel); + break; + default: + UNIMPLEMENTED_MSG("Unimplemented engine"); + } } void GPU::ProcessSemaphoreTriggerMethod() { |