diff options
| author | 2015-02-10 23:08:04 -0500 | |
|---|---|---|
| committer | 2015-02-10 23:08:04 -0500 | |
| commit | 2fb1e4c9a2e45aad6c3e9408a3895369b8a8729f (patch) | |
| tree | fca138e8377c4d66bd1fe026a3d2fef54a7f090c /src/video_core/vertex_shader.cpp | |
| parent | GSP: Fixed typo in SignalInterrupt (diff) | |
| parent | Asserts: break/crash program, fit to style guide; log.h->assert.h (diff) | |
| download | yuzu-2fb1e4c9a2e45aad6c3e9408a3895369b8a8729f.tar.gz yuzu-2fb1e4c9a2e45aad6c3e9408a3895369b8a8729f.tar.xz yuzu-2fb1e4c9a2e45aad6c3e9408a3895369b8a8729f.zip | |
Merge pull request #500 from archshift/assert
Made asserts actually break the debugger, or crash if the program is not in debug mode.
Diffstat (limited to 'src/video_core/vertex_shader.cpp')
| -rw-r--r-- | src/video_core/vertex_shader.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/video_core/vertex_shader.cpp b/src/video_core/vertex_shader.cpp index 48977380e..0bd52231b 100644 --- a/src/video_core/vertex_shader.cpp +++ b/src/video_core/vertex_shader.cpp | |||
| @@ -146,13 +146,10 @@ static void ProcessShaderCode(VertexShaderState& state) { | |||
| 146 | case Instruction::OpCodeType::Arithmetic: | 146 | case Instruction::OpCodeType::Arithmetic: |
| 147 | { | 147 | { |
| 148 | bool is_inverted = 0 != (instr.opcode.GetInfo().subtype & Instruction::OpCodeInfo::SrcInversed); | 148 | bool is_inverted = 0 != (instr.opcode.GetInfo().subtype & Instruction::OpCodeInfo::SrcInversed); |
| 149 | if (is_inverted) { | 149 | // TODO: We don't really support this properly: For instance, the address register |
| 150 | // TODO: We don't really support this properly: For instance, the address register | 150 | // offset needs to be applied to SRC2 instead, etc. |
| 151 | // offset needs to be applied to SRC2 instead, etc. | 151 | // For now, we just abort in this situation. |
| 152 | // For now, we just abort in this situation. | 152 | ASSERT_MSG(!is_inverted, "Bad condition..."); |
| 153 | LOG_CRITICAL(HW_GPU, "Bad condition..."); | ||
| 154 | exit(0); | ||
| 155 | } | ||
| 156 | 153 | ||
| 157 | const int address_offset = (instr.common.address_register_index == 0) | 154 | const int address_offset = (instr.common.address_register_index == 0) |
| 158 | ? 0 : state.address_registers[instr.common.address_register_index - 1]; | 155 | ? 0 : state.address_registers[instr.common.address_register_index - 1]; |
| @@ -342,7 +339,7 @@ static void ProcessShaderCode(VertexShaderState& state) { | |||
| 342 | default: | 339 | default: |
| 343 | LOG_ERROR(HW_GPU, "Unhandled arithmetic instruction: 0x%02x (%s): 0x%08x", | 340 | LOG_ERROR(HW_GPU, "Unhandled arithmetic instruction: 0x%02x (%s): 0x%08x", |
| 344 | (int)instr.opcode.Value(), instr.opcode.GetInfo().name, instr.hex); | 341 | (int)instr.opcode.Value(), instr.opcode.GetInfo().name, instr.hex); |
| 345 | _dbg_assert_(HW_GPU, 0); | 342 | DEBUG_ASSERT(false); |
| 346 | break; | 343 | break; |
| 347 | } | 344 | } |
| 348 | 345 | ||