mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader/spirv: Handle "LiteralInteger" operands.
This commit is contained in:
Notes:
Henri Verbeet
2025-03-10 15:22:45 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1382
@@ -320,6 +320,13 @@ static void spirv_parser_print_id(struct spirv_parser *parser,
|
|||||||
prefix, parser->colours.id, id, parser->colours.reset, suffix);
|
prefix, parser->colours.id, id, parser->colours.reset, suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void spirv_parser_print_uint_literal(struct spirv_parser *parser,
|
||||||
|
struct vkd3d_string_buffer *buffer, const char *prefix, uint32_t i, const char *suffix)
|
||||||
|
{
|
||||||
|
vkd3d_string_buffer_printf(buffer, "%s%s%u%s%s",
|
||||||
|
prefix, parser->colours.literal, i, parser->colours.reset, suffix);
|
||||||
|
}
|
||||||
|
|
||||||
static void spirv_parser_print_opcode(struct spirv_parser *parser,
|
static void spirv_parser_print_opcode(struct spirv_parser *parser,
|
||||||
struct vkd3d_string_buffer *buffer, const char *name)
|
struct vkd3d_string_buffer *buffer, const char *name)
|
||||||
{
|
{
|
||||||
@@ -456,6 +463,10 @@ static bool spirv_parser_parse_operand(struct spirv_parser *parser, struct vkd3d
|
|||||||
*result_id = spirv_parser_read_u32(parser);
|
*result_id = spirv_parser_read_u32(parser);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case SPIRV_PARSER_OPERAND_TYPE_LITERAL_INTEGER:
|
||||||
|
spirv_parser_print_uint_literal(parser, buffer, " ", spirv_parser_read_u32(parser), "");
|
||||||
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
spirv_parser_warning(parser, VKD3D_SHADER_ERROR_SPV_NOT_IMPLEMENTED,
|
spirv_parser_warning(parser, VKD3D_SHADER_ERROR_SPV_NOT_IMPLEMENTED,
|
||||||
"Unhandled operand type \"%s\".", info->name);
|
"Unhandled operand type \"%s\".", info->name);
|
||||||
|
Reference in New Issue
Block a user