summaryrefslogtreecommitdiff
path: root/src/video_core/vertex_shader.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2015-02-10 23:08:04 -0500
committerGravatar bunnei2015-02-10 23:08:04 -0500
commit2fb1e4c9a2e45aad6c3e9408a3895369b8a8729f (patch)
treefca138e8377c4d66bd1fe026a3d2fef54a7f090c /src/video_core/vertex_shader.cpp
parentGSP: Fixed typo in SignalInterrupt (diff)
parentAsserts: break/crash program, fit to style guide; log.h->assert.h (diff)
downloadyuzu-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.cpp13
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