Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
- if (!(d = sm6_parser_get_descriptor(sm6, type, id, operands[2])))
- {
WARN("Failed to find resource type %#x, id %#x.\n", type, id);
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND,
"Descriptor for resource type %#x, id %#x was not found.", type, id);
return;
- }
- dst = sm6_parser_get_current_value(sm6);
- dst->value_type = VALUE_TYPE_HANDLE;
- dst->u.handle.d = d;
- reg = &dst->u.handle.reg;
- /* Set idx_count to 3 for use with load/store instructions.
* TODO: set register type from resource type when other types are supported. */
- vsir_register_init(reg, VKD3DSPR_CONSTBUFFER, VKD3D_DATA_FLOAT, 3);
I'm not sure I understand why you're setting 3 here. Also TPF uses 2 indices, and you're not initialising the third one. Could you explain more in detail?