Hans-Kristian Arntzen
4ef51331b2
Always value-cast FP16 constants instead of using literals.
...
GL_NV_gpu_shader5 doesn't support "hf", so to avoid lots of complicated
workarounds, just value-cast the half literals.
2019-02-20 12:30:01 +01:00
Hans-Kristian Arntzen
2ed171e525
GLSL/MSL: Implement 8-bit part of VK_KHR_shader_float16_int8.
...
Storage was in place already, so mostly just dealing with bitcasts and
constants.
Simplies some of the bitcasting logic, and this exposed some bugs in the
implementation. Refactor to use correct width integers with explicit bitcast opcodes.
2019-01-30 15:45:24 +01:00
Hans-Kristian Arntzen
4e7777c443
Update to latest glslang/SPIRV-Tools.
...
Fix various bugs along the way.
2019-01-30 13:41:57 +01:00
Hans-Kristian Arntzen
2a8a4fe706
GLSL: Support extended arithmetic opcodes.
...
- uaddCarry
- usubBorrow
- umulExtended
- imulExtended
2018-11-13 14:50:46 +01:00
Hans-Kristian Arntzen
4e5c8d7199
Deal with depth_greater/depth_less qualifiers.
...
Adds support on HLSL SM 5.0, and fixes bug on GLSL.
Makes sure early fragment tests is tested on MSL as well.
2018-11-12 10:35:36 +01:00
Chip Davis
1fb27b4cda
Add support for 8- and 16-bit types to GLSL and MSL.
...
In GLSL, 8-bit types require GL_EXT_shader_8bit_storage. 16-bit types
can use either GL_AMD_gpu_shader_int16/GL_AMD_gpu_shader_half_float or
GL_EXT_shader_16bit_storage.
2018-11-01 10:20:57 -05:00
Hans-Kristian Arntzen
6157bf3cae
Add Windows support in Travis CI.
...
- Add new Windows support
- Use CMake/CTest instead of Make + shell scripts
- Use --parallel in CTest
- Fix CTest on Windows
- Cleanups in test_shaders.py
- Force specific commit for SPIRV-Headers
- Fix Inf/NaN odd-ball case by moving to ASM
2018-10-27 00:22:30 +02:00
Hans-Kristian Arntzen
af75ef005f
Update glslang and SPIRV-Tools.
...
A lot of changes in spirv-opt output.
Some new invalid SPIR-V was found but most of them were not significant
for SPIRV-Cross, so just marked them as invalid.
2018-09-27 11:10:22 +02:00
Hans-Kristian Arntzen
63f6466065
Support Component decoration in GLSL.
2018-09-10 12:13:26 +02:00
Chip Davis
348aecc59f
Remove extra newline.
...
vim doesn't display the newline terminating a file, because every file
is supposed to have one. Travis does. That threw me off.
2018-08-29 14:04:20 -05:00
Chip Davis
e00e5b3b2c
Appease tests that check for exact matches and not equivalent semantics.
2018-08-29 13:53:12 -05:00
Chip Davis
d63751a5a3
Really fix shader_draw_parameters tests (hopefully for good).
2018-08-29 13:42:09 -05:00
Chip Davis
2de572ac53
Add new tests for GLSL 4.50 shaders.
2018-08-29 13:32:01 -05:00
Chip Davis
84eb889d73
Fix reference output of shader_draw_parameters tests.
2018-08-29 13:31:43 -05:00
Chip Davis
56a9b73685
Add test cases for SPV_KHR_shader_draw_parameters.
2018-08-29 12:04:29 -05:00
Hans-Kristian Arntzen
ae859934ca
Use GL_NV_gpu_shader5 as a fallback for AMD_gpu_shader_half_float.
2018-08-23 15:37:09 +02:00
Hans-Kristian Arntzen
a6e211e00b
Support dual-source blending on GLSL and MSL.
2018-04-03 16:04:49 +02: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
0780820a7b
Skip interpolateAt tests with FP16.
2018-03-07 10:58:38 +01:00
Hans-Kristian Arntzen
547278da12
Test denormal fp16 constants.
2018-03-06 17:09:18 +01:00
Hans-Kristian Arntzen
05348a66ca
Add test shader for FP16 support.
2018-03-06 17:09:18 +01:00
Hans-Kristian Arntzen
5fe79eb59c
Update tests.
...
Adds an earlier reported shader packing failure into regression suite.
2018-03-05 16:34:42 +01:00
Hans-Kristian Arntzen
047ad7df0f
Support special float constants (NaN/Inf).
2018-02-23 13:06:20 +01:00
Hans-Kristian Arntzen
fb3f92a3ff
Overhaul clip/cull distance support in GLSL.
2018-02-22 14:36:50 +01:00
Hans-Kristian Arntzen
41ffb1064e
Add basic test for viewport-index builtin.
2018-01-04 13:51:05 +01:00
Hans-Kristian Arntzen
2c90ea3acc
Improve handling of block name declaration in GLSL.
...
HLSL UAVs are a bit annoying because they can share block types,
so reflection becomes rather awkward. Sometimes we will need to make
some nasty fallbacks, so add a reflection interface which lets you query
post-shader compile which names was actually declared in the shader.
2017-12-01 14:30:10 +01:00
Hans-Kristian Arntzen
c68c72c5be
Fix ARB_enhanced_layout test.
2017-10-10 16:25:47 +02:00
Hans-Kristian Arntzen
4d11220aa8
Add a test for enhanced layouts.
2017-10-10 11:30:29 +02:00
Hans-Kristian Arntzen
7064c54820
Various fixes to texture/image query in GLSL.
2017-09-19 16:08:25 +02:00
Hans-Kristian Arntzen
cbcaca5a39
Fix textureProj with shadow on GLSL.
2017-07-31 10:05:32 +02:00
Hans-Kristian Arntzen
de33d89074
Add explicit in/out locations everywhere.
...
Needed for newer glslang. With Vulkan semantics for SPIR-V, all
locations must be explicitly defined.
2017-06-21 09:39:08 +02:00
Hans-Kristian Arntzen
623eaebdf8
Add test shaders for SSO.
2017-05-22 15:53:38 +02:00
Hans-Kristian Arntzen
7f2e17969b
Add built-in cull distance.
2017-03-05 12:47:03 +01:00
Hans-Kristian Arntzen
036b9b73f5
Emit storage qualifier in the correct place.
...
Need to emit qualifiers in a specific order for legacy GLSL.
<interpolation> <storage> <precision> <type>.
2017-02-24 09:56:17 +01:00
Hans-Kristian Arntzen
62613df5a5
Optimize for read-modify-writes.
...
Required for legacy loop increments.
2016-12-16 13:14:22 +01:00
Hans-Kristian Arntzen
e67f6f85a4
Defer parenthesis generation until needed.
...
Previously, we would generate parentheses proactively when generating
binary ops, however, this leads to uglier code and hits warnings in
compilers when used as a conditional.
2016-12-05 10:56:54 +01:00
Hans-Kristian Arntzen
206cb9157c
Handle interpolation qualifiers inside IO blocks.
2016-10-07 16:30:11 +02:00
Hans-Kristian Arntzen
b6847168b2
Update test suite for latest glslang.
2016-09-10 12:53:41 +02:00
Hans-Kristian Arntzen
f61a5d1e5d
Implement dead variable elimination.
2016-08-26 12:58:50 +02:00
Hans-Kristian Arntzen
fc2230ffff
Add support for int64/uint64 in GLSL.
2016-07-27 11:31:58 +02:00
Hans-Kristian Arntzen
fa0255c43b
Add support for FP64 in GLSL.
2016-07-27 11:31:54 +02:00
Hans-Kristian Arntzen
81d00da573
Implement OpImageQueryLevels.
2016-07-19 09:28:32 +02:00
Hans-Kristian Arntzen
1b4f7662d3
Add support for OpImageQueryLod.
2016-07-19 09:23:49 +02:00
Hans-Kristian Arntzen
2bfe98c35d
Fix image-format test to use desktop extension.
2016-07-12 09:37:31 +02:00
Hans-Kristian Arntzen
606ecce0f1
Handle all desktop image formats.
2016-07-12 09:35:15 +02:00
Hans-Kristian Arntzen
7af13b68d5
Support ImageRead/Write on multisampled images.
2016-07-11 13:26:22 +02:00
Hans-Kristian Arntzen
2c7d2e4d3c
Implement OpImageQuerySamples.
2016-07-11 12:47:46 +02:00