A computer-implemented method comprising: executing a compiler to compile a shader program based on a first instruction and a second instruction to generate a machine executable code segment that is to identify at least two code blocks, from the shader program, that are independent from each other and execute an uncompleted independent code block with available data based on use of a scoreboard to track data availability for independent code blocks, wherein the first instruction is to cause selection of an identifier of a first independent code block for tracking availability of data to be processed by the first independent code block, and the first instruction is to indicate an offset to a first instruction position in a sequence of instructions of the first independent code block, the first instruction is to cause writing into a scoreboard the offset to the first instruction position associated with the first independent code block that is to be executed based on availability of data for processing by the first independent code block, wherein the shader program provides a read request for data associated with the first independent code block, and wherein the read request comprises the first code block identifier for the first independent code block, wherein the second instruction is to cause execution of an unexecuted independent code block with a completed read request, and the second instruction is to cause determination if a register is ready to read by a particular independent code block and based on a determination a register is ready to read by the particular independent code block, move an instruction pointer to a first instruction of the particular independent code block. executing a compiler to compile a shader program based on a first instruction and a second instruction to generate a machine executable code segment that is to identify at least two code blocks, from the shader program, that are independent from each other and execute an uncompleted independent code block with available data based on use of a scoreboard to track data availability for independent code blocks, wherein the first instruction is to cause selection of an identifier of a first independent code block for tracking availability of data to be processed by the first independent code block, and the first instruction is to indicate an offset to a first instruction position in a sequence of instructions of the first independent code block, the first instruction is to cause writing into a scoreboard the offset to the first instruction position associated with the first independent code block that is to be executed based on availability of data for processing by the first independent code block, wherein the shader program provides a read request for data associated with the first independent code block, and wherein the read request comprises the first code block identifier for the first independent code block, wherein the second instruction is to cause execution of an unexecuted independent code block with a completed read request, and the second instruction is to cause determination if a register is ready to read by a particular independent code block and based on a determination a register is ready to read by the particular independent code block, move an instruction pointer to a first instruction of the particular independent code block. <EOS>