diff --git a/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d-shader/d3d_asm.c index 7d10cf98f..043740aad 100644 --- a/libs/vkd3d-shader/d3d_asm.c +++ b/libs/vkd3d-shader/d3d_asm.c @@ -388,7 +388,6 @@ static void shader_print_data_type(struct vkd3d_d3d_asm_compiler *compiler, enum { static const char *const data_type_names[] = { - [VKD3D_DATA_INT ] = "int", [VKD3D_DATA_UINT ] = "uint", [VKD3D_DATA_UNORM ] = "unorm", [VKD3D_DATA_SNORM ] = "snorm", @@ -403,6 +402,7 @@ static void shader_print_data_type(struct vkd3d_d3d_asm_compiler *compiler, enum [VSIR_DATA_F16 ] = "half", [VSIR_DATA_F32 ] = "float", [VSIR_DATA_F64 ] = "double", + [VSIR_DATA_I32 ] = "int", }; if (type < ARRAY_SIZE(data_type_names)) @@ -736,7 +736,7 @@ static void shader_print_register(struct vkd3d_d3d_asm_compiler *compiler, const else shader_print_float_literal(compiler, "", reg->u.immconst_f32[0], ""); break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: shader_print_int_literal(compiler, "", reg->u.immconst_u32[0], ""); break; case VKD3D_DATA_UINT: @@ -768,7 +768,7 @@ static void shader_print_register(struct vkd3d_d3d_asm_compiler *compiler, const shader_print_float_literal(compiler, ", ", reg->u.immconst_f32[3], ""); } break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: shader_print_int_literal(compiler, "", reg->u.immconst_u32[0], ""); shader_print_int_literal(compiler, ", ", reg->u.immconst_u32[1], ""); shader_print_int_literal(compiler, ", ", reg->u.immconst_u32[2], ""); diff --git a/libs/vkd3d-shader/d3dbc.c b/libs/vkd3d-shader/d3dbc.c index 2dd9c7310..06dedbfbd 100644 --- a/libs/vkd3d-shader/d3dbc.c +++ b/libs/vkd3d-shader/d3dbc.c @@ -1307,7 +1307,7 @@ static void shader_sm1_read_instruction(struct vkd3d_shader_sm1_parser *sm1, str else if (ins->opcode == VSIR_OP_DEFI) { shader_sm1_read_dst_param(sm1, &p, dst_param); - shader_sm1_read_immconst(sm1, &p, &src_params[0], VSIR_DIMENSION_VEC4, VKD3D_DATA_INT); + shader_sm1_read_immconst(sm1, &p, &src_params[0], VSIR_DIMENSION_VEC4, VSIR_DATA_I32); shader_sm1_scan_register(sm1, &dst_param->reg, dst_param->write_mask, true); } else if (ins->opcode == VSIR_OP_TEXKILL) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 105a2e604..b8e51b4c3 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -9044,9 +9044,9 @@ static const enum vsir_data_type data_type_table[] = { [COMPONENT_TYPE_INVALID] = VKD3D_DATA_UNUSED, [COMPONENT_TYPE_I1] = VKD3D_DATA_UNUSED, - [COMPONENT_TYPE_I16] = VKD3D_DATA_INT, + [COMPONENT_TYPE_I16] = VSIR_DATA_I32, [COMPONENT_TYPE_U16] = VKD3D_DATA_UINT, - [COMPONENT_TYPE_I32] = VKD3D_DATA_INT, + [COMPONENT_TYPE_I32] = VSIR_DATA_I32, [COMPONENT_TYPE_U32] = VKD3D_DATA_UINT, [COMPONENT_TYPE_I64] = VKD3D_DATA_UNUSED, [COMPONENT_TYPE_U64] = VKD3D_DATA_UNUSED, diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index bf407f0fc..384b02b1b 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -345,7 +345,7 @@ static void shader_glsl_print_bitcast(struct vkd3d_string_buffer *dst, struct vk { switch (dst_data_type) { - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(dst, "floatBitsToInt(%s)", src); return; case VKD3D_DATA_UINT: @@ -363,7 +363,7 @@ static void shader_glsl_print_bitcast(struct vkd3d_string_buffer *dst, struct vk case VSIR_DATA_F32: vkd3d_string_buffer_printf(dst, "uintBitsToFloat(%s)", src); return; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: if (size == 1) vkd3d_string_buffer_printf(dst, "int(%s)", src); else @@ -522,7 +522,7 @@ static void VKD3D_PRINTF_FUNC(4, 0) shader_glsl_vprint_assignment(struct vkd3d_g case VSIR_DATA_F32: close = false; break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(buffer, "intBitsToFloat("); break; case VKD3D_DATA_UINT: @@ -1167,7 +1167,7 @@ static void shader_glsl_store_uav_typed(struct vkd3d_glsl_generator *gen, const case VKD3D_DATA_UINT: vkd3d_string_buffer_printf(image_data, "uvec4("); break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(image_data, "ivec4("); break; default: @@ -1770,7 +1770,7 @@ static void shader_glsl_generate_uav_declaration(struct vkd3d_glsl_generator *ge image_type_prefix = "u"; read_format = "r32ui"; break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: image_type_prefix = "i"; read_format = "r32i"; break; @@ -1998,14 +1998,14 @@ static void shader_glsl_generate_sampler_declaration(struct vkd3d_glsl_generator case VKD3D_DATA_UINT: sampler_type_prefix = "u"; break; - case VKD3D_DATA_INT: - sampler_type_prefix = "i"; - break; case VSIR_DATA_F32: case VKD3D_DATA_UNORM: case VKD3D_DATA_SNORM: sampler_type_prefix = ""; break; + case VSIR_DATA_I32: + sampler_type_prefix = "i"; + break; default: vkd3d_glsl_compiler_error(gen, VKD3D_SHADER_ERROR_GLSL_INTERNAL, "Internal compiler error: Unhandled data type %#x for combined resource/sampler " diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c index 661c34f5f..3d1974f7b 100644 --- a/libs/vkd3d-shader/hlsl_codegen.c +++ b/libs/vkd3d-shader/hlsl_codegen.c @@ -8245,7 +8245,7 @@ static enum vsir_data_type vsir_data_type_from_hlsl_type(struct hlsl_ctx *ctx, c case HLSL_TYPE_HALF: return VSIR_DATA_F16; case HLSL_TYPE_INT: - return VKD3D_DATA_INT; + return VSIR_DATA_I32; case HLSL_TYPE_UINT: case HLSL_TYPE_BOOL: case HLSL_TYPE_MIN16UINT: @@ -11163,7 +11163,7 @@ static bool sm4_generate_vsir_instr_ld(struct hlsl_ctx *ctx, { if (sample_index->type == HLSL_IR_CONSTANT) vsir_src_from_hlsl_constant_value(&ins->src[2], ctx, - &hlsl_ir_constant(sample_index)->value, VKD3D_DATA_INT, 1, 0); + &hlsl_ir_constant(sample_index)->value, VSIR_DATA_I32, 1, 0); else if (version->major == 4 && version->minor == 0) hlsl_error(ctx, &sample_index->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE, "Expected literal sample index."); else @@ -12185,7 +12185,7 @@ static enum vsir_data_type sm4_generate_vsir_get_format_type(const struct hlsl_t return VSIR_DATA_F32; case HLSL_TYPE_INT: - return VKD3D_DATA_INT; + return VSIR_DATA_I32; case HLSL_TYPE_BOOL: case HLSL_TYPE_MIN16UINT: diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 43ae90990..5ab4793f6 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -9882,7 +9882,7 @@ static void vsir_validate_io_src_param(struct validation_context *ctx, #define F32_BIT (1u << VSIR_DATA_F32) #define F16_BIT (1u << VSIR_DATA_F16) -#define I32_BIT (1u << VKD3D_DATA_INT) +#define I32_BIT (1u << VSIR_DATA_I32) #define U64_BIT (1u << VKD3D_DATA_UINT64) #define U32_BIT (1u << VKD3D_DATA_UINT) @@ -10640,9 +10640,9 @@ static void vsir_validate_integer_elementwise_operation(struct validation_contex { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, [VKD3D_DATA_UINT64] = true, + [VSIR_DATA_I32] = true, }; vsir_validate_elementwise_operation(ctx, instruction, types); @@ -10653,10 +10653,10 @@ static void vsir_validate_logic_elementwise_operation(struct validation_context { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, [VKD3D_DATA_UINT64] = true, [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_I32] = true, }; vsir_validate_elementwise_operation(ctx, instruction, types); @@ -10730,9 +10730,9 @@ static void vsir_validate_integer_comparison_operation(struct validation_context { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, [VKD3D_DATA_UINT64] = true, + [VSIR_DATA_I32] = true, }; vsir_validate_comparison_operation(ctx, instruction, types); @@ -11287,8 +11287,8 @@ static void vsir_validate_ftoi(struct validation_context *ctx, const struct vkd3 }; static const bool dst_types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, + [VSIR_DATA_I32] = true, }; vsir_validate_cast_operation(ctx, instruction, src_types, dst_types); @@ -11326,10 +11326,10 @@ static void vsir_validate_itof(struct validation_context *ctx, const struct vkd3 { static const bool src_types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, [VKD3D_DATA_UINT64] = true, [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_I32] = true, }; static const bool dst_types[VSIR_DATA_TYPE_COUNT] = { @@ -11345,10 +11345,10 @@ static void vsir_validate_itoi(struct validation_context *ctx, const struct vkd3 { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_INT] = true, [VKD3D_DATA_UINT] = true, [VKD3D_DATA_UINT64] = true, [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_I32] = true, }; vsir_validate_cast_operation(ctx, instruction, types, types); diff --git a/libs/vkd3d-shader/msl.c b/libs/vkd3d-shader/msl.c index 83cdf9fee..6a74351c0 100644 --- a/libs/vkd3d-shader/msl.c +++ b/libs/vkd3d-shader/msl.c @@ -142,7 +142,7 @@ static void msl_print_resource_datatype(struct msl_generator *gen, case VKD3D_DATA_SNORM: vkd3d_string_buffer_printf(buffer, "float"); break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(buffer, "int"); break; case VKD3D_DATA_UINT: @@ -165,7 +165,7 @@ static void msl_print_register_datatype(struct vkd3d_string_buffer *buffer, case VSIR_DATA_F32: vkd3d_string_buffer_printf(buffer, "f"); break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(buffer, "i"); break; case VKD3D_DATA_UINT: @@ -1312,7 +1312,7 @@ static void msl_store_uav_typed(struct msl_generator *gen, const struct vkd3d_sh case VKD3D_DATA_UINT: vkd3d_string_buffer_printf(image_data, "uint4("); break; - case VKD3D_DATA_INT: + case VSIR_DATA_I32: vkd3d_string_buffer_printf(image_data, "int4("); break; default: diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 9b9e1a32b..89167cc6a 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -4709,7 +4709,7 @@ static uint32_t spirv_compiler_emit_constant_array(struct spirv_compiler *compil switch (icb->data_type) { case VSIR_DATA_F32: - case VKD3D_DATA_INT: + case VSIR_DATA_I32: case VKD3D_DATA_UINT: for (i = 0; i < element_count; ++i) elements[i] = spirv_compiler_get_constant(compiler, component_type, component_count, diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index 26c41a902..15010b2cd 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -753,7 +753,7 @@ static const enum vsir_data_type data_type_table[] = /* 0 */ VSIR_DATA_F32, /* VKD3D_SM4_DATA_UNORM */ VKD3D_DATA_UNORM, /* VKD3D_SM4_DATA_SNORM */ VKD3D_DATA_SNORM, - /* VKD3D_SM4_DATA_INT */ VKD3D_DATA_INT, + /* VKD3D_SM4_DATA_INT */ VSIR_DATA_I32, /* VKD3D_SM4_DATA_UINT */ VKD3D_DATA_UINT, /* VKD3D_SM4_DATA_FLOAT */ VSIR_DATA_F32, /* VKD3D_SM4_DATA_MIXED */ VKD3D_DATA_MIXED, @@ -1432,7 +1432,7 @@ static void init_sm4_lookup_tables(struct vkd3d_sm4_lookup_tables *lookup) /* * d -> VSIR_DATA_F64 * f -> VSIR_DATA_F32 - * i -> VKD3D_DATA_INT + * i -> VSIR_DATA_I32 * u -> VKD3D_DATA_UINT * O -> VKD3D_DATA_OPAQUE * R -> VKD3D_DATA_RESOURCE @@ -1994,7 +1994,7 @@ static enum vsir_data_type map_data_type(char t) case 'f': return VSIR_DATA_F32; case 'i': - return VKD3D_DATA_INT; + return VSIR_DATA_I32; case 'u': return VKD3D_DATA_UINT; case 'O': @@ -2024,7 +2024,7 @@ static bool shader_sm4_read_reg_idx(struct vkd3d_shader_sm4_parser *priv, const reg_idx->offset = *(*ptr)++; else reg_idx->offset = 0; - shader_sm4_read_src_param(priv, ptr, end, VKD3D_DATA_INT, rel_addr); + shader_sm4_read_src_param(priv, ptr, end, VSIR_DATA_I32, rel_addr); } else { diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c index dbc10a6d4..fe29e7054 100644 --- a/libs/vkd3d-shader/vkd3d_shader_main.c +++ b/libs/vkd3d-shader/vkd3d_shader_main.c @@ -1530,8 +1530,6 @@ static enum vkd3d_shader_resource_data_type vkd3d_resource_data_type_from_data_t return VKD3D_SHADER_RESOURCE_DATA_UNORM; case VKD3D_DATA_SNORM: return VKD3D_SHADER_RESOURCE_DATA_SNORM; - case VKD3D_DATA_INT: - return VKD3D_SHADER_RESOURCE_DATA_INT; case VKD3D_DATA_UINT: return VKD3D_SHADER_RESOURCE_DATA_UINT; case VKD3D_DATA_MIXED: @@ -1544,6 +1542,8 @@ static enum vkd3d_shader_resource_data_type vkd3d_resource_data_type_from_data_t return VKD3D_SHADER_RESOURCE_DATA_FLOAT; case VSIR_DATA_F64: return VKD3D_SHADER_RESOURCE_DATA_DOUBLE; + case VSIR_DATA_I32: + return VKD3D_SHADER_RESOURCE_DATA_INT; default: ERR("Invalid resource data type %#x.\n", data_type); return VKD3D_SHADER_RESOURCE_DATA_FLOAT; diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index b5326c216..b864b0bab 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -710,7 +710,6 @@ enum vkd3d_shader_register_precision enum vsir_data_type { - VKD3D_DATA_INT, VKD3D_DATA_UINT, VKD3D_DATA_UNORM, VKD3D_DATA_SNORM, @@ -727,12 +726,14 @@ enum vsir_data_type VSIR_DATA_F32, VSIR_DATA_F64, + VSIR_DATA_I32, + VSIR_DATA_TYPE_COUNT, }; static inline bool data_type_is_integer(enum vsir_data_type data_type) { - return data_type == VKD3D_DATA_INT || data_type == VKD3D_DATA_UINT8 || data_type == VKD3D_DATA_UINT16 + return data_type == VSIR_DATA_I32 || data_type == VKD3D_DATA_UINT8 || data_type == VKD3D_DATA_UINT16 || data_type == VKD3D_DATA_UINT || data_type == VKD3D_DATA_UINT64; } @@ -1799,11 +1800,11 @@ static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_ty return VKD3D_SHADER_COMPONENT_FLOAT; case VSIR_DATA_F64: return VKD3D_SHADER_COMPONENT_DOUBLE; + case VSIR_DATA_I32: + return VKD3D_SHADER_COMPONENT_INT; case VKD3D_DATA_UINT16: /* Minimum precision. TODO: native 16-bit */ case VKD3D_DATA_UINT: return VKD3D_SHADER_COMPONENT_UINT; - case VKD3D_DATA_INT: - return VKD3D_SHADER_COMPONENT_INT; case VKD3D_DATA_UINT64: return VKD3D_SHADER_COMPONENT_UINT64; case VKD3D_DATA_BOOL: @@ -1825,7 +1826,7 @@ static inline enum vsir_data_type vsir_data_type_from_component_type(enum vkd3d_ case VKD3D_SHADER_COMPONENT_UINT: return VKD3D_DATA_UINT; case VKD3D_SHADER_COMPONENT_INT: - return VKD3D_DATA_INT; + return VSIR_DATA_I32; case VKD3D_SHADER_COMPONENT_DOUBLE: return VSIR_DATA_F64; default: