Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
code_block = (block_idx < function->block_count) ? function->blocks[block_idx] : NULL; }
if (ins->handler_idx == VKD3DSIH_INVALID)
{
/* Parsing can continue if we have a result, otherwise the value references will be corrupted. */
if (result_type == RESULT_VALUE && !dst->type)
return VKD3D_ERROR_INVALID_SHADER;
failed = true;
}} if (code_block) code_block->instruction_count += ins->handler_idx != VKD3DSIH_NOP; else assert(ins->handler_idx == VKD3DSIH_NOP); sm6->value_count += !!dst->type;
- sm6->p.failed |= failed;
But is `sm6->p.failed` ever checked again in some ancestor of this function? I can't find where. Why can't we directly return `VKD3D_RESULT_INVALID_SHADER`?