diff --git a/QPUassembler/vc4_qpu_defines.h b/QPUassembler/vc4_qpu_defines.h index cbd5360..fc91f7d 100644 --- a/QPUassembler/vc4_qpu_defines.h +++ b/QPUassembler/vc4_qpu_defines.h @@ -119,11 +119,11 @@ typedef enum { static const char *qpu_sig_bits_str[] = { [QPU_SIG_SW_BREAKPOINT] = "sig_brk", [QPU_SIG_NONE] = "sig_none", - [QPU_SIG_THREAD_SWITCH] = "sig_switch", + [QPU_SIG_THREAD_SWITCH] = "sig_thread_switch", [QPU_SIG_PROG_END] = "sig_end", [QPU_SIG_WAIT_FOR_SCOREBOARD] = "sig_wait_score", [QPU_SIG_SCOREBOARD_UNLOCK] = "sig_unlock_score", - [QPU_SIG_LAST_THREAD_SWITCH] = "sig_thread_switch", + [QPU_SIG_LAST_THREAD_SWITCH] = "sig_last_thread_switch", [QPU_SIG_COVERAGE_LOAD] = "sig_coverage_load", [QPU_SIG_COLOR_LOAD] = "sig_color_load", [QPU_SIG_COLOR_LOAD_END] = "sig_color_load_end", diff --git a/driver/shader.c b/driver/shader.c index c747b11..2175fd4 100644 --- a/driver/shader.c +++ b/driver/shader.c @@ -51,15 +51,16 @@ VkResult vkCreateShaderModuleFromRpiAssemblyEXT(VkDevice device, VkRpiShaderModu shader->bos[c] = vc4_bo_alloc_shader(controlFd, instructions, &size); //TODO if debug... - for(uint64_t c = 0; c < numInstructions; ++c) + for(uint64_t d = 0; d < numInstructions; ++d) { - printf("%#llx ", instructions[c]); - disassemble_qpu_asm(instructions[c]); + printf("%#llx ", instructions[d]); + disassemble_qpu_asm(instructions[d]); } - for(uint64_t c = 0; c < numInstructions; ++c) + for(uint64_t d = 0; d < numInstructions; ++d) { - if((instructions[c] & (0xfll << 60)) == (2ll << 60)) + uint64_t s = (instructions[d] & (0xfll << 60)) >> 60; + if(s == 2ll) { shader->hasThreadSwitch = 1; break;