vkd3d-shader: Do not assume float type for arrayed shader outputs.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2019-02-25 11:59:14 +01:00 committed by Alexandre Julliard
parent 04e2091afa
commit cb24be8e83

View File

@ -4081,7 +4081,7 @@ static void vkd3d_dxbc_compiler_emit_store_shader_output(struct vkd3d_dxbc_compi
return; return;
} }
type_id = vkd3d_spirv_get_type_id(builder, VKD3D_TYPE_FLOAT, 1); type_id = vkd3d_spirv_get_type_id(builder, output_info->component_type, 1);
ptr_type_id = vkd3d_spirv_get_op_type_pointer(builder, SpvStorageClassOutput, type_id); ptr_type_id = vkd3d_spirv_get_op_type_pointer(builder, SpvStorageClassOutput, type_id);
mask = output_info->array_element_mask; mask = output_info->array_element_mask;
mask &= (1u << (output->semantic_index * VKD3D_VEC4_SIZE)) - 1; mask &= (1u << (output->semantic_index * VKD3D_VEC4_SIZE)) - 1;