Commit Graph

215 Commits

Author SHA1 Message Date
310335f748 libs/vkd3d-shader: Branch directly to merge block when switch default block is absent. 2017-10-20 18:27:17 +02:00
137b5d694b libs/vkd3d-shader: Move inside_block field to vkd3d_control_flow_info. 2017-10-18 19:02:46 +02:00
c112f2ed46 libs/vkd3d-shader: Get rid of VKD3D_BLOCK_ELSE. 2017-10-18 19:02:46 +02:00
9f831b938a libs/vkd3d-shader: Avoid emitting empty else branches.
We have to patch SpvOpBranchConditional instruction when emitting the
else block because we do not know if an else block is present in
advance.
2017-10-18 19:02:46 +02:00
646385e871 libs/vkd3d-shader: Get rid of VKD3D_BLOCK_MAIN. 2017-10-18 19:02:46 +02:00
8a047a8eb7 libs/vkd3d-shader: Rename control flow union member for if instructions. 2017-10-18 19:02:46 +02:00
0369f39a47 libs/vkd3d-shader: Generate correct SPIR-V for rcp with multiple components. 2017-10-18 12:21:24 +02:00
c5e400fa30 libs/vkd3d-shader: Document hacks introduced for Nvidia driver.
See 70f5b24f92.
2017-10-12 17:47:53 +02:00
2171ba6d32 libs/vkd3d-shader: Decrement OpAtomicIDecrement result. 2017-10-12 13:10:26 +02:00
94a33020d3 libs/vkd3d-shader: Use switch statement in shader_parse_root_parameters(). 2017-10-10 16:57:36 +02:00
4522a80de8 libs/vkd3d-shader: Use switch statement in shader_write_root_parameters(). 2017-10-10 16:57:36 +02:00
18b285328e libs/vkd3d-shader: Add version argument to vkd3d_shader_serialize_root_signature(). 2017-10-10 16:57:36 +02:00
6b43a5fe38 libs/vkd3d-shader: Implement root signature serialization. 2017-10-10 16:02:09 +02:00
586e1cc532 libs/vkd3d-shader: Implement relative addressing for constant buffers. 2017-10-06 17:06:31 +02:00
5479ac7011 libs/vkd3d-shader: Always emit default block for OpSwitch.
The default block is required in SPIR-V.
2017-10-05 15:58:51 +02:00
9feb7a3956 libs/vkd3d-shader: Recognize nop instruction. 2017-10-05 15:58:51 +02:00
e7aa2a7bcf libs/vkd3d-shader: Emit NonReadable decoration for image variables.
Fixes image writes for UNORM formats on Anv. Anv uses special surface
state for write-only storage image descriptors.

The SPIR-V spec doesn't state that the NonReadable decoration is
required for images used with StorageImageWriteWithoutFormat. On the
other hand, glslang requires the 'writeonly' keyword for images without
format, and it emits the NonReadable decoration.
2017-09-26 10:37:41 +02:00
5a020d6673 libs/vkd3d-shader: Implement shader visibility for descriptors. 2017-09-22 16:42:07 +02:00
602f9780f8 libs/vkd3d-shader: Implement "sample" interpolation qualifier. 2017-09-14 15:38:19 +02:00
6b757f3002 libs/vkd3d-shader: Subtract BaseInstance from InstanceIndex.
Depends on SPV_KHR_shader_draw_parameters extension.
2017-09-12 17:42:42 +02:00
b19fe74284 libs/vkd3d-shader: Export shader signature parsing. 2017-09-11 22:35:16 +02:00
b61c785bd0 libs/vkd3d-shader: Implement SV_InstanceID. 2017-09-11 22:35:16 +02:00
30cd4cc59f libs/vkd3d-shader: Always declare format for raw/structured image variables. 2017-09-07 17:48:43 +02:00
6dfb4ad520 libs/vkd3d-shader: Mark imm_atomic_alloc as UAV read instruction. 2017-09-07 17:48:43 +02:00
4af15035df libs/vkd3d-shader: Improve some debug messages. 2017-09-07 17:48:43 +02:00