Commit Graph

126 Commits

Author SHA1 Message Date
Józef Kucia 6b93e6ce99 libs/vkd3d-shader: Add support for switch fall-through blocks. 2017-08-01 13:55:49 +02:00
Józef Kucia fbeaf0ba95 libs/vkd3d-shader: Make sure that inserted chunks are sorted.
The list is expected to be empty or very small so insertion sort should
be fine.
2017-08-01 13:55:49 +02:00
Józef Kucia 3effb4b18c libs/vkd3d-shader: Get rid of artificial limit for switch case blocks. 2017-08-01 11:38:10 +02:00
Józef Kucia ae8d8036c6 libs/vkd3d-shader: Implement switch control flow instructions. 2017-08-01 10:51:45 +02:00
Józef Kucia 5061dbaf0c libs/vkd3d-shader: Add mechanism for inserting words into SPIR-V streams.
Allows inserting SPIR-V instructions at arbitrary locations in SPIR-V
streams.
2017-08-01 10:51:45 +02:00
Józef Kucia c1c94e248c libs/vkd3d-shader: Allow multiple push constant buffers. 2017-08-01 10:51:45 +02:00
Józef Kucia d75966ab9e libs/vkd3d: Assign non-overlapping push constant ranges for root constants. 2017-08-01 10:51:45 +02:00
Józef Kucia fec337a03c libs/vkd3d-shader: Fix memory leak in vkd3d_dxbc_compiler_destroy(). 2017-07-28 12:56:18 +02:00
Józef Kucia 9725eb3763 libs/vkd3d-shader: Remove double semicolons. 2017-07-28 12:56:18 +02:00
Józef Kucia 92fcb9ffa2 libs/vkd3d-shader: Add support for push constants. 2017-07-27 15:24:38 +02:00
Józef Kucia edd1e9602d libs/vkd3d-shader: Implement arbitrary mappings from D3D shader register to Vulkan descriptors.
An arbitrary mapping can be passed to vkd3d_shader_compile_dxbc().
2017-07-26 13:45:25 +02:00
Józef Kucia 6c174beb4b libs/vkd3d-shader: Use component types from input signatures for shader inputs.
Fixes Vulkan validation layers errors.
2017-07-25 14:23:27 +02:00
Józef Kucia 5a2ebc62f6 libs/vkd3d-shader: Use component types from output signatures for shader outputs.
Fixes Vulkan validation layers errors.
2017-07-25 14:23:27 +02:00
Józef Kucia a0e82064dc libs/vkd3d-shader: Mask coordinates for OpImageWrite instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia 046afde8db libs/vkd3d-shader: Store resource type info in table. 2017-07-24 19:43:50 +02:00
Józef Kucia aa3465ac83 libs/vkd3d-shader: Fix bitcasts for shader inputs. 2017-07-24 19:43:50 +02:00
Józef Kucia c71d609fb6 libs/vkd3d-shader: Fix write mask for vThreadIDInGroupFlattened. 2017-07-24 19:43:50 +02:00
Józef Kucia 6bbd6c948a libs/vkd3d-shader: Translate store_uav_typed instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia 4746833a6f libs/vkd3d-shader: Translate dcl_uav_typed instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia ea6b35ef58 libs/vkd3d-shader: Translate udiv instructions. 2017-07-21 14:14:42 +02:00
Józef Kucia c73b201110 libs/vkd3d-shader: Do not print FIXMEs for known global flags. 2017-07-21 14:14:42 +02:00
Józef Kucia 95b6b7b91b libs/vkd3d-shader: Clean up vkd3d_dxbc_compiler_emit_control_flow_instruction(). 2017-07-21 14:14:42 +02:00
Józef Kucia 18c06c8022 libs/vk3d-shader: Translate break instructions for loops. 2017-07-20 13:32:40 +02:00
Józef Kucia 1cbf6ebddf libs/vk3d-shader: Fix return instructions in if/else blocks. 2017-07-20 13:32:40 +02:00
Józef Kucia 2022702858 libs/vkd3d-shader: Translate breakc instructions. 2017-07-20 13:32:40 +02:00
Józef Kucia 98c307cdbc libs/vkd3d-shader: Implement loops. 2017-07-20 13:32:40 +02:00
Józef Kucia f6f70d8c02 libs/vkd3d-shader: Add support for nested control flow. 2017-07-20 13:32:40 +02:00
Józef Kucia 1e9a38005b libs/vkd3d-shader: Use vkd3d_spirv_build_once mechanism for SPIR-V constants. 2017-07-19 14:45:54 +02:00
Józef Kucia ab78c23170 libs/vkd3d-shader: Translate round_{ni,pi} instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia fed8155d08 libs/vkd3d-shader: Translate rcp instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia a4e5d06cac libs/vkd3d-shader: Translate log instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia 87f34094db libs/vkd3d-shader: Translate imul instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia b75022df72 libs/vkd3d-shader: Translate more integer comparison instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia e8edbac33f libs/vkd3d-shader: Translate more integer ALU instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia dddd97f126 libs/vkd3d-shader: Translate imad instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia be276b4182 libs/vkd3d-shader: Translate frc instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia aa8ce19b2e libs/vkd3d-shader: Translate exp instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia e307beee29 libs/vkd3d-shader: Fix immediate constant buffers. 2017-07-18 17:32:26 +02:00
Józef Kucia 2420fdb3af libs/vkd3d-shader: Add support for vThreadGroupID register. 2017-07-18 17:32:26 +02:00
Józef Kucia 79e61d95df libs/vkd3d-shader: Fix shader input register mask handling. 2017-07-18 17:32:26 +02:00
Józef Kucia 78a085199f libs/vkd3d-shader: Use vkd3d_get_spirv_builtin() directly. 2017-07-18 17:32:26 +02:00
Józef Kucia 9d944ad96c libs/vkd3d-shader: Store info about SPIR-V built-ins in table. 2017-07-18 17:32:26 +02:00
Józef Kucia e5a4ad3385 libs/vkd3d-shader: Add support for vThreadIDInGroupFlattened register. 2017-07-18 17:32:26 +02:00
Józef Kucia caa1f4a37a libs/vkd3d-shader: Allow compute shader registers as source operands. 2017-07-18 17:32:26 +02:00
Józef Kucia 9d319bbc3d libs/vkd3d-shader: Translate swapc instructions. 2017-07-18 13:31:46 +02:00
Józef Kucia 3407702d60 libs/vkd3d-shader: Avoid duplicated OpTypeImage instructions. 2017-07-17 18:12:02 +02:00
Józef Kucia 758247de4d libs/vkd3d-shader: Avoid duplicated OpTypeSampledImage instructions. 2017-07-17 18:12:02 +02:00
Józef Kucia 42d8b97176 libs/vkd3d-shader: Avoid duplicated OpTypePointer instructions. 2017-07-17 18:12:02 +02:00
Józef Kucia e715a6d1c9 libs/vkd3d-shader: Add more general way to emit SPIR-V instructions once. 2017-07-17 18:12:02 +02:00
Józef Kucia 3dc307bfb8 libs/vkd3d-shader: Make SPIR-V builder responsible for emitting parameterless types once. 2017-07-17 18:12:02 +02:00