Граф коммитов

113 Коммитов

Автор SHA1 Сообщение Дата
Hans-Kristian Arntzen 0280800a8f Fix case where SampledImage would get flushed to temporary. 2018-04-27 10:06:30 +02:00
Hans-Kristian Arntzen c266429be9 Partially implement subgroup ops for HLSL SM 6.0.
Lots of stuff that needs tons of emulation, which I'm not going to
bother with.
2018-04-11 15:57:41 +02:00
Hans-Kristian Arntzen 146ea76f52 Add test shader for subgroup.
Update SPIRV-Tools/glslang commits.
Use vulkan1.1 environment for testing.
Found new "errors" in SPIRV-Tools, so disable validation on those shaders
for now.
2018-04-11 10:29:47 +02:00
Hans-Kristian Arntzen 694b314f87 Support empty structs.
Need to fake it by pretending it has one dummy member.
2018-04-05 16:26:54 +02:00
Hans-Kristian Arntzen e8ca39b7b5 Add test for sampler image arrays. 2018-04-04 09:41:20 +02:00
Hans-Kristian Arntzen e7bf8d2f48 Refactor out noopt shaders to their own folders.
Makes maintenance easier with less clutter.
2018-03-13 10:39:49 +01:00
Hans-Kristian Arntzen 938c7debed Handle control-dependent temporaries.
Derivatives, subgroup and implicit-lod instructions all need to happen
in the block they were created.
2018-03-12 17:34:54 +01:00
Hans-Kristian Arntzen 9fbd8b789e Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00
Hans-Kristian Arntzen e3b8e9455c Add test shader where a phi variable invalidates a temporary.
The temporary in question is used to flush a phi variable.
2018-03-09 14:42:26 +01:00
Hans-Kristian Arntzen 922420e346 Disallow arrays and structs from becoming loop variables.
Fixes awkward code-gen issue.
2018-03-07 14:54:11 +01:00
Hans-Kristian Arntzen 723bec5d33 frexp/ldexp fails in debug builds, workaround temporarily. 2018-03-07 11:20:53 +01:00
Hans-Kristian Arntzen 47d94ff8d9 Add FP16 to HLSL.
Cannot be used in buffer types, similar to mediump in GLSL.
half is useless, because it's 32-bit in FXC.
2018-03-07 10:21:25 +01:00
Hans-Kristian Arntzen b380a2113a Implement MatrixInverse on HLSL.
Copy-paste implementation from MSL. I assume it's correct.
2018-02-23 16:42:40 +01:00
Hans-Kristian Arntzen f6d08e6113 Add workaround for PointCoord builtin on HLSL. 2018-02-23 15:58:35 +01:00
Hans-Kristian Arntzen dd603eab58 Support spec constant array size in blocks.
Won't really be correct if the spec constant is changed outside
SPIRV-Cross, but nothing we can do about that, really.
2018-02-23 15:11:45 +01:00
Hans-Kristian Arntzen a04bdcc7f7 Handle overloaded functions which share the same OpName.
Awkward, but legal SPIR-V.
2018-02-23 14:15:51 +01:00
Hans-Kristian Arntzen 047ad7df0f Support special float constants (NaN/Inf). 2018-02-23 13:06:20 +01:00
Hans-Kristian Arntzen 0673f27b7c Fix incorrect loop range. 2018-02-22 17:00:41 +01:00
Hans-Kristian Arntzen 114c2c5e37 Add clip/cull-distance support to HLSL. 2018-02-22 16:40:04 +01:00
Hans-Kristian Arntzen 8a3bef2bd6 Add OpFRem tests. 2018-02-15 13:36:59 +01:00
Hans-Kristian Arntzen 843e34b604 Add IsFrontFace support to HLSL. 2018-02-15 12:42:56 +01:00
Hans-Kristian Arntzen 18a594a76b Implement subpass input support in HLSL. 2018-02-10 10:54:42 +01:00
Hans-Kristian Arntzen 00ccd590ee Return arrays in HLSL/MSL by writing to an output variable instead. 2018-02-08 12:22:08 +01:00
Hans-Kristian Arntzen 18e8833eeb Support gl_NumWorkgroups in HLSL. 2018-02-05 10:29:20 +01:00
Hans-Kristian Arntzen 5d9df6a31c Do not declare constant composites inline in HLSL.
Move arrays and structs out to their own global static constants.

Also, replace illegal names in HLSL as well.
2018-02-02 10:12:26 +01:00
Hans-Kristian Arntzen 988f00fe3c Fix OpImage on OpSampledImages in HLSL. 2018-02-01 09:22:16 +01:00
Hans-Kristian Arntzen b3f6e3de8e Fix CFG::update_common_dominator.
The algorithm was too conservative causing lots of unnecessary
temporaries to be created.
2018-01-24 20:32:11 +01:00
Hans-Kristian Arntzen 06041985d0 Fix HLSL regression with struct declaration.
It actually worked surprisingly. Fix it properly.
2018-01-23 16:36:20 +01:00
Hans-Kristian Arntzen 7d223b8987 Fix CFG for forwarded temporaries.
Forwarded temporaries would never declare a temporary.
Figure out all result types ahead of time so we can deal with those
temporaries as well.
2018-01-18 12:11:33 +01:00
Hans-Kristian Arntzen 168bcc7b3b Add unreachable tests for MSL/HLSL. 2018-01-15 09:39:15 +01:00
Hans-Kristian Arntzen 9c3d4e7c60 Rewrite barrier handling in HLSL. 2018-01-09 12:41:13 +01:00
Hans-Kristian Arntzen 27ad8c0922 Add more exhaustive test for barrier handling. 2018-01-09 12:26:46 +01:00
Hans-Kristian Arntzen 23f0abf112 Update tests for struct flattening. 2018-01-09 10:40:34 +01:00
Hans-Kristian Arntzen c4e787ccf8
Merge pull request #378 from KhronosGroup/fix-371
Fix swizzling of scalar integers in HLSL.
2018-01-04 13:42:27 +01:00
Hans-Kristian Arntzen 4590c63b40 Fix swizzling of integers.
Add scalar swizzling to constant composites as well.
2018-01-04 13:16:56 +01:00
Hans-Kristian Arntzen e51b7cd162 Add test for sampler arrays. 2018-01-04 12:28:57 +01:00
Hans-Kristian Arntzen 789fa91987 Support running FXC on Unix-likes as well.
Assumes a wine wrapper script is set up, but should be good enough.
2017-12-12 13:23:56 +01:00
Hans-Kristian Arntzen ffad50b3c2 Remove duplicate swizzles in remap_swizzle.
Makes HLSL image-load-store look much nicer.
2017-12-12 13:01:10 +01:00
Hans-Kristian Arntzen 1c7980a778 Swizzle scalars when splatting in HLSL. 2017-12-12 12:52:45 +01:00
Hans-Kristian Arntzen cc532cb7b6 Use t-namespace for ByteAddressBuffer.
FXC caught it, but not glslang, hm ...
2017-12-11 13:55:26 +01:00
Hans-Kristian Arntzen 5e9b53e354 Support VertexID/InstanceID in HLSL. 2017-12-06 11:01:32 +01:00
Hans-Kristian Arntzen aeeb0e3dd0 Support textureQueryLod in HLSL. 2017-12-01 13:30:31 +01:00
Hans-Kristian Arntzen 975cf86892 Test textureProjLodOffset with compare in HLSL as well. 2017-11-29 12:48:06 +01:00
Hans-Kristian Arntzen dbfa686990 Emit SampleCmpLevelZero for lod/grad variants of SampleCmp. 2017-11-29 12:38:13 +01:00
Hans-Kristian Arntzen c65248fdce Support image load-store without format in HLSL. 2017-11-29 12:14:06 +01:00
Hans-Kristian Arntzen 48f3fa4adb Implement bitfield ops in HLSL. 2017-11-29 11:33:44 +01:00
Hans-Kristian Arntzen 656af7e3ed Implement unorm16/snorm16 packing in HLSL. 2017-11-27 15:03:40 +01:00
Hans-Kristian Arntzen 719ba63416 Add pack/unpack snorm8/unorm8. 2017-11-27 14:49:47 +01:00
Hans-Kristian Arntzen 6c7c680d01 Implement FP16 unpack/pack on HLSL. 2017-11-27 14:24:30 +01:00
msiglreith f4bde2b3ef HLSL: Support early fragment tests attribute 2017-11-21 14:51:03 +01:00