diff options
| author | bunnei <bunneidev@gmail.com> | 2017-09-07 23:02:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-07 23:02:59 -0400 |
| commit | 11baa40d75d8a479bd738a05e91bba6f09856fe5 (patch) | |
| tree | 2a7affcefd22d5332970c7a28a04c139aa9a6654 /src/video_core/shader/shader_interpreter.cpp | |
| parent | 4af793c5919c2ce7dd26cc0b1d670135cb8a5246 (diff) | |
| parent | 0f35755572fe63534813528de9a0710193f2e335 (diff) | |
Merge pull request #2865 from wwylele/gs++
PICA: implemented geometry shader
Diffstat (limited to 'src/video_core/shader/shader_interpreter.cpp')
| -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(), |
