summaryrefslogtreecommitdiffstats
path: root/src/compiler/Makefile.spirv.am
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2018-03-21 20:34:40 +0100
committerNeil Roberts <[email protected]>2018-04-17 20:58:11 +0200
commit608d70bc02a968ee2b21a5db0f54247d877c8196 (patch)
treefeeb2941ed90bc5d27843e4ba8137368bb1f558c /src/compiler/Makefile.spirv.am
parent6e499572b9a7b33165b8438a85db37ae1ba0ce0e (diff)
spirv: Accept doubles in FaceForward, Reflect and Refract
The SPIR-V spec doesn’t specify a size requirement for these and the equivalent functions in the GLSL spec have explicit alternatives for doubles. Refract is a little bit more complicated due to the fact that the final argument is always supposed to be a scalar 32- or 16- bit float regardless of the other operands. However in practice it seems there is a bug in glslang that makes it convert the argument to 64-bit if you actually try to pass it a 32-bit value while the other arguments are 64-bit. This adds an optional conversion of the final argument in order to support any type. These have been tested against the automatically generated tests of glsl-4.00/execution/built-in-functions using the ARB_gl_spirv branch which tests it with quite a large range of combinations. The issue with glslang has been filed here: https://github.com/KhronosGroup/glslang/issues/1279 v2: Convert the eta operand of Refract from any size in order to make it eventually cope with 16-bit floats. Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler/Makefile.spirv.am')
0 files changed, 0 insertions, 0 deletions