diff options
author | wwylele <wwylele@gmail.com> | 2017-07-25 21:43:25 +0200 |
---|---|---|
committer | wwylele <wwylele@gmail.com> | 2017-08-19 09:13:20 +0200 |
commit | 28128348f21d83c30979ef10399a8a764bb08a73 (patch) | |
tree | fa27a8ce4684e5eb0f18ae618b04e0c374bd69fb | |
parent | pica/shader: extend UnitState for GS (diff) | |
download | yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar.gz yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar.bz2 yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar.lz yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar.xz yuzu-28128348f21d83c30979ef10399a8a764bb08a73.tar.zst yuzu-28128348f21d83c30979ef10399a8a764bb08a73.zip |
-rw-r--r-- | src/video_core/shader/shader_interpreter.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 206c0978a..9d4da4904 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -636,6 +636,22 @@ static void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData break; } + case OpCode::Id::EMIT: { + GSEmitter* emitter = state.emitter_ptr; + ASSERT_MSG(emitter, "Execute EMIT on VS"); + emitter->Emit(state.registers.output); + break; + } + + case OpCode::Id::SETEMIT: { + GSEmitter* emitter = state.emitter_ptr; + ASSERT_MSG(emitter, "Execute SETEMIT on VS"); + emitter->vertex_id = instr.setemit.vertex_id; + emitter->prim_emit = instr.setemit.prim_emit != 0; + emitter->winding = instr.setemit.winding != 0; + break; + } + default: LOG_ERROR(HW_GPU, "Unhandled instruction: 0x%02x (%s): 0x%08x", (int)instr.opcode.Value().EffectiveOpCode(), |