Commit Graph

134 Commits

Author SHA1 Message Date
Józef Kucia
eb4c98db17 libs/vkd3d-shader: Add support for switch breaks nested in conditional branches. 2017-08-01 13:55:49 +02:00
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