diff options
| author | bunnei <bunneidev@gmail.com> | 2015-08-19 19:58:49 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2015-08-19 19:58:49 -0400 |
| commit | a575399fbcf6f2c29e9dd9835c5014226b453348 (patch) | |
| tree | 9566863df2add30681caa0bc47ee477e6b4ef23a /src/video_core/shader/shader_interpreter.cpp | |
| parent | 08325e51e58eb48230e87b60ff1a4768f7b9aa10 (diff) | |
| parent | f3e8f42718393b6894b06845321328b59b8a012f (diff) | |
Merge pull request #1055 from aroulin/shader-sge-sgei-slt
Shader: Implement SGE, SGEI and SLT in interpreter/JIT
Diffstat (limited to 'src/video_core/shader/shader_interpreter.cpp')
| -rw-r--r-- | src/video_core/shader/shader_interpreter.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 646171a19..063cc38f0 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -278,6 +278,20 @@ void RunInterpreter(UnitState<Debug>& state) { break; } + case OpCode::Id::SGE: + case OpCode::Id::SGEI: + Record<DebugDataRecord::SRC1>(state.debug, iteration, src1); + Record<DebugDataRecord::SRC2>(state.debug, iteration, src2); + Record<DebugDataRecord::DEST_IN>(state.debug, iteration, dest); + for (int i = 0; i < 4; ++i) { + if (!swizzle.DestComponentEnabled(i)) + continue; + + dest[i] = (src1[i] >= src2[i]) ? float24::FromFloat32(1.0f) : float24::FromFloat32(0.0f); + } + Record<DebugDataRecord::DEST_OUT>(state.debug, iteration, dest); + break; + case OpCode::Id::SLT: case OpCode::Id::SLTI: Record<DebugDataRecord::SRC1>(state.debug, iteration, src1); |
