Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
+ resource = operands[0]; + if (!sm6_value_validate_is_handle(resource, sm6)) + return; + + if ((handler_idx = map_dx_atomic_binop(operands[1], sm6)) == VKD3DSIH_INVALID) + return; + + reg.type = VKD3DSPR_INVALID; + if (resource->u.handle.d->resource_type != VKD3D_SHADER_RESOURCE_BUFFER) + { + if (!sm6_parser_emit_coordinate_construct(sm6, &operands[coord_idx], 3, NULL, state, ®)) + return; + } + else if (resource->u.handle.d->kind == RESOURCE_KIND_STRUCTUREDBUFFER) + { + if (!sm6_parser_emit_coordinate_construct(sm6, &operands[coord_idx], 2, NULL, state, ®)) Since below you warn on unexpectedly defined operands, maybe you could do that here too?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/645#note_61146