diff --git a/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d-shader/d3d_asm.c index 4553b8373..c213007f2 100644 --- a/libs/vkd3d-shader/d3d_asm.c +++ b/libs/vkd3d-shader/d3d_asm.c @@ -388,7 +388,7 @@ static void shader_print_data_type(struct vkd3d_d3d_asm_compiler *compiler, enum { static const char *const data_type_names[] = { - [VKD3D_DATA_BOOL ] = "bool", + [VSIR_DATA_BOOL ] = "bool", [VSIR_DATA_F16 ] = "half", [VSIR_DATA_F32 ] = "float", [VSIR_DATA_F64 ] = "double", diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 29633a653..f83145a60 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -2480,7 +2480,7 @@ static enum vsir_data_type vsir_data_type_from_dxil(const struct sm6_type *type) switch (type->u.width) { case 1: - return VKD3D_DATA_BOOL; + return VSIR_DATA_BOOL; case 8: return VSIR_DATA_U8; case 16: diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 8a5435aaa..fb7262929 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -661,7 +661,7 @@ static void src_param_init_ssa_scalar(struct vkd3d_shader_src_param *src, static void src_param_init_ssa_bool(struct vkd3d_shader_src_param *src, unsigned int idx) { - src_param_init_ssa_scalar(src, idx, VKD3D_DATA_BOOL); + src_param_init_ssa_scalar(src, idx, VSIR_DATA_BOOL); } static void src_param_init_ssa_float(struct vkd3d_shader_src_param *src, unsigned int idx) @@ -676,7 +676,7 @@ static void src_param_init_ssa_float4(struct vkd3d_shader_src_param *src, unsign static void src_param_init_temp_bool(struct vkd3d_shader_src_param *src, unsigned int idx) { - vsir_src_param_init(src, VKD3DSPR_TEMP, VKD3D_DATA_BOOL, 1); + vsir_src_param_init(src, VKD3DSPR_TEMP, VSIR_DATA_BOOL, 1); src->reg.idx[0].offset = idx; } @@ -745,7 +745,7 @@ static void dst_param_init_ssa_scalar(struct vkd3d_shader_dst_param *dst, static void dst_param_init_ssa_bool(struct vkd3d_shader_dst_param *dst, unsigned int idx) { - dst_param_init_ssa_scalar(dst, idx, VKD3D_DATA_BOOL); + dst_param_init_ssa_scalar(dst, idx, VSIR_DATA_BOOL); } static void dst_param_init_ssa_float(struct vkd3d_shader_dst_param *dst, unsigned int idx) @@ -760,7 +760,7 @@ static void dst_param_init_ssa_float4(struct vkd3d_shader_dst_param *dst, unsign static void dst_param_init_temp_bool(struct vkd3d_shader_dst_param *dst, unsigned int idx) { - vsir_dst_param_init(dst, VKD3DSPR_TEMP, VKD3D_DATA_BOOL, 1); + vsir_dst_param_init(dst, VKD3DSPR_TEMP, VSIR_DATA_BOOL, 1); dst->reg.idx[0].offset = idx; } @@ -10685,7 +10685,7 @@ static void vsir_validate_logic_elementwise_operation(struct validation_context { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_BOOL] = true, [VSIR_DATA_I32] = true, [VSIR_DATA_U32] = true, [VSIR_DATA_U64] = true, @@ -10705,7 +10705,7 @@ static void vsir_validate_comparison_operation(struct validation_context *ctx, dst_data_type = instruction->dst[0].reg.data_type; - if (dst_data_type != VSIR_DATA_U32 && dst_data_type != VKD3D_DATA_BOOL) + if (dst_data_type != VSIR_DATA_U32 && dst_data_type != VSIR_DATA_BOOL) validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DATA_TYPE, "Invalid data type %#x for result of comparison operation \"%s\" (%#x).", dst_data_type, vsir_opcode_get_name(instruction->opcode, ""), instruction->opcode); @@ -11358,7 +11358,7 @@ static void vsir_validate_itof(struct validation_context *ctx, const struct vkd3 { static const bool src_types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_BOOL] = true, [VSIR_DATA_I32] = true, [VSIR_DATA_U32] = true, [VSIR_DATA_U64] = true, @@ -11377,7 +11377,7 @@ static void vsir_validate_itoi(struct validation_context *ctx, const struct vkd3 { static const bool types[VSIR_DATA_TYPE_COUNT] = { - [VKD3D_DATA_BOOL] = true, + [VSIR_DATA_BOOL] = true, [VSIR_DATA_I32] = true, [VSIR_DATA_U32] = true, [VSIR_DATA_U64] = true, diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 6eabf7fca..08d09fc79 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -7588,7 +7588,7 @@ static void spirv_compiler_emit_bool_cast(struct spirv_compiler *compiler, const struct vkd3d_shader_src_param *src = instruction->src; uint32_t val_id; - VKD3D_ASSERT(src->reg.data_type == VKD3D_DATA_BOOL && dst->reg.data_type != VKD3D_DATA_BOOL); + VKD3D_ASSERT(src->reg.data_type == VSIR_DATA_BOOL && dst->reg.data_type != VSIR_DATA_BOOL); val_id = spirv_compiler_emit_load_src(compiler, src, dst->write_mask); if (dst->reg.data_type == VSIR_DATA_F16 || dst->reg.data_type == VSIR_DATA_F32) @@ -7639,9 +7639,9 @@ static enum vkd3d_result spirv_compiler_emit_alu_instruction(struct spirv_compil return VKD3D_ERROR_INVALID_SHADER; } - if (src->reg.data_type == VKD3D_DATA_BOOL) + if (src->reg.data_type == VSIR_DATA_BOOL) { - if (dst->reg.data_type == VKD3D_DATA_BOOL) + if (dst->reg.data_type == VSIR_DATA_BOOL) { /* VSIR supports logic ops AND/OR/XOR on bool values. */ op = spirv_compiler_map_logical_instruction(instruction); @@ -7955,7 +7955,7 @@ static void spirv_compiler_emit_movc(struct spirv_compiler *compiler, component_count = vsir_write_mask_component_count(dst->write_mask); type_id = spirv_compiler_get_type_id_for_dst(compiler, dst); - if (src[0].reg.data_type != VKD3D_DATA_BOOL) + if (src[0].reg.data_type != VSIR_DATA_BOOL) { if (instruction->opcode == VSIR_OP_CMP) condition_id = vkd3d_spirv_build_op_tr2(builder, &builder->function_stream, SpvOpFOrdGreaterThanEqual, @@ -8398,7 +8398,7 @@ static void spirv_compiler_emit_comparison_instruction(struct spirv_compiler *co result_id = vkd3d_spirv_build_op_tr2(builder, &builder->function_stream, op, type_id, src0_id, src1_id); - if (dst->reg.data_type != VKD3D_DATA_BOOL) + if (dst->reg.data_type != VSIR_DATA_BOOL) result_id = spirv_compiler_emit_bool_to_int(compiler, component_count, result_id, true); spirv_compiler_emit_store_reg(compiler, &dst->reg, dst->write_mask, result_id); } @@ -8579,7 +8579,7 @@ static void spirv_compiler_emit_discard(struct spirv_compiler *compiler, * a mismatch between the VSIR structure and the SPIR-V one, which would cause problems if * structurisation is necessary. Therefore we emit it as a function call. */ condition_id = spirv_compiler_emit_load_src(compiler, src, VKD3DSP_WRITEMASK_0); - if (src->reg.data_type != VKD3D_DATA_BOOL) + if (src->reg.data_type != VSIR_DATA_BOOL) condition_id = spirv_compiler_emit_int_to_bool(compiler, instruction->flags, src->reg.data_type, 1, condition_id); else if (instruction->flags & VKD3D_SHADER_CONDITIONAL_OP_Z) @@ -8666,7 +8666,7 @@ static void spirv_compiler_emit_branch(struct spirv_compiler *compiler, } condition_id = spirv_compiler_emit_load_src(compiler, &src[0], VKD3DSP_WRITEMASK_0); - if (src[0].reg.data_type != VKD3D_DATA_BOOL) + if (src[0].reg.data_type != VSIR_DATA_BOOL) condition_id = spirv_compiler_emit_int_to_bool(compiler, VKD3D_SHADER_CONDITIONAL_OP_NZ, src[0].reg.data_type, 1, condition_id); /* Emit the merge immediately before the branch instruction. */ diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 69384ff89..b4819e478 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -710,7 +710,7 @@ enum vkd3d_shader_register_precision enum vsir_data_type { - VKD3D_DATA_BOOL, + VSIR_DATA_BOOL, VSIR_DATA_F16, VSIR_DATA_F32, @@ -742,7 +742,7 @@ static inline bool data_type_is_integer(enum vsir_data_type data_type) static inline bool data_type_is_bool(enum vsir_data_type data_type) { - return data_type == VKD3D_DATA_BOOL; + return data_type == VSIR_DATA_BOOL; } static inline bool data_type_is_floating_point(enum vsir_data_type data_type) @@ -1806,6 +1806,8 @@ static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_ty { switch (data_type) { + case VSIR_DATA_BOOL: + return VKD3D_SHADER_COMPONENT_BOOL; case VSIR_DATA_F16: /* Minimum precision. TODO: native 16-bit */ case VSIR_DATA_F32: case VSIR_DATA_SNORM: @@ -1820,8 +1822,6 @@ static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_ty return VKD3D_SHADER_COMPONENT_UINT; case VSIR_DATA_U64: return VKD3D_SHADER_COMPONENT_UINT64; - case VKD3D_DATA_BOOL: - return VKD3D_SHADER_COMPONENT_BOOL; default: FIXME("Unhandled data type %#x.\n", data_type); /* fall-through */