SPIRV-Cross/reference/shaders-no-opt/asm/comp
Hans-Kristian Arntzen 7a6c2da9aa GLSL: Handle more proper semantics for RelaxedPrecision.
GLSL and RelaxedPrecision are quite different in what they affect.
RelaxedPrecision affects operations, while this is merely implied in
GLSL based on inputs.

This leads to situations where we have to promote mediump inputs to
highp, and the simplest approach is to force highp temporaries for
inputs which are consumed in a highp context. For completeness, we also
demote RelaxedPrecision inputs to mediump variables.

PHI is handled by copying the PHI into a temporary.

We have to be very careful with hoisted temporaries, since the child
temporary will not be analyzed up-front. We inherit the hoisted-ness
state and emit the hoisted child temporary as necessary. When faking the
temporaries with OpCopyObject, we make sure to block any variable
hoisting.

Hoisting children of PHI variables is fine, since PHIs are not hoisted with
the same framework as other temporaries.
2022-05-02 15:11:24 +02:00
..
access-chain-dominator-in-loop-body-2.asm.comp Force complex loop in certain rare access chain scenarios. 2019-04-10 16:02:03 +02:00
access-chain-dominator-in-loop-body.asm.comp Force complex loop in certain rare access chain scenarios. 2019-04-10 16:02:03 +02:00
access-tracking-function-call-result.asm.comp Fix broken access tracking for OpFunctionCall results. 2019-10-29 11:13:39 +01:00
aliased-struct-divergent-member-name.asm.comp GLSL: Be more aggressive about using type_alias. 2020-07-29 12:48:41 +02:00
arithmetic-conversion-signs.asm.nocompat.vk.comp.vk Fix sign handling for S/UToF. 2019-11-28 13:55:28 +01:00
atomic-load-store.asm.comp Implement OpAtomicLoad/OpAtomicStore. 2020-04-27 12:11:46 +02:00
atomic-result-temporary.asm.comp Fix infinite loop when OpAtomic* temporaries are used in other blocks. 2019-04-24 09:33:39 +02:00
basic.spv16.asm.comp Add sanity test for SPIR-V 1.6 modules. 2022-01-06 14:16:28 +01:00
bitcast-fp16-fp32.asm.vk.comp GLSL: Support f16x2 <-> f32 bitcast. 2020-04-21 23:27:33 +02:00
bitcast-fp16-fp32.asm.vk.comp.vk GLSL: Support f16x2 <-> f32 bitcast. 2020-04-21 23:27:33 +02:00
bitfield-signed-operations.asm.comp Deal correctly with sign on bitfield operations. 2019-08-26 11:36:36 +02:00
bitscan.asm.comp Deal correctly with return sign of bitscan operations. 2019-07-12 10:57:56 +02:00
buffer-atomic-nonuniform.vk.nocompat.asm.comp.vk GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics. 2020-03-19 12:05:27 +01:00
buffer-reference-aliased-block-name.nocompat.vk.asm.comp.vk GLSL: Deal with buffer_reference_align. 2021-11-07 17:11:46 +01:00
buffer-reference-pointer-to-pod-in-buffer.asm.nocompat.vk.comp.vk GLSL: Deal with buffer_reference_align. 2021-11-07 17:11:46 +01:00
buffer-reference-pointer-to-unused-pod-in-buffer.asm.nocompat.vk.comp.vk GLSL: Deal with buffer_reference_align. 2021-11-07 17:11:46 +01:00
buffer-reference-synthesized-pointer-2.asm.nocompat.vk.comp.vk GLSL: Deal with buffer_reference_align. 2021-11-07 17:11:46 +01:00
buffer-reference-synthesized-pointer.asm.nocompat.vk.comp.vk GLSL: Deal with buffer_reference_align. 2021-11-07 17:11:46 +01:00
constant-composite-undef.asm.comp Parser: Fix OpCompositeConstruct with OpUndef. 2019-03-27 10:51:23 +01:00
constant-lut-name-aliasing.asm.comp Test aliased names in declared LUTs. 2022-01-18 12:39:16 +01:00
copy-logical.spv14.asm.comp Basic implementation of OpCopyLogical. 2020-01-06 11:47:26 +01:00
eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp Check entry point variables in is_hidden_variables. 2021-01-22 13:53:22 +01:00
expression-nesting-limits.asm.comp Do not forward expressions which carry a huge amount of dependencies. 2022-01-17 13:45:12 +01:00
extended-debug-extinst.invalid.asm.comp Move .invalid. test shaders to the more appropriate subfolders. 2019-11-06 10:40:37 +01:00
glsl-signed-operations.asm.comp Properly deal with sign-dependent GLSL opcodes. 2019-03-27 12:20:53 +01:00
glsl.std450.frexp-modf-struct.asm.comp Test glsl.std450 more exhaustively. 2019-07-17 11:53:05 +02:00
image-atomic-nonuniform.vk.nocompat.asm.comp.vk GLSL/HLSL: Implement nonuniform qualifier for image atomics. 2020-03-19 11:35:29 +01:00
local-size-id-override.vk.asm.comp Add support for LocalSizeId. 2022-01-06 13:57:10 +01:00
local-size-id-override.vk.asm.comp.vk Add support for LocalSizeId. 2022-01-06 13:57:10 +01:00
local-size-id.vk.asm.comp Add support for LocalSizeId. 2022-01-06 13:57:10 +01:00
local-size-id.vk.asm.comp.vk GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
loop-variable-early-read-with-initializer.asm.comp Handle early reads from loop variables with initializers. 2022-04-28 14:36:53 +02:00
loop-variable-early-read-with-undef.asm.comp Handle early reads from loop variables with initializers. 2022-04-28 14:36:53 +02:00
loop-variable-with-initializer.asm.comp Fix duplicated initialization for loop variables with initializers. 2020-06-19 10:51:00 +02:00
nonuniform-bracket-handling.vk.nocompat.asm.comp.vk Rewrite how non-uniform qualifiers are handled. 2021-04-22 16:03:08 +02:00
phi-temporary-copy-loop-variable.asm.invalid.comp Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
ray-query-function-object.spv14.asm.vk.nocompat.comp.vk GLSL: Ensure ray query object decls are flushed if allocated in Function. 2021-07-20 12:04:00 +02:00
spec-constant-name-aliasing.vk.asm.comp Handle aliased names in spec constants. 2022-01-18 12:31:28 +01:00
spec-constant-name-aliasing.vk.asm.comp.vk Handle aliased names in spec constants. 2022-01-18 12:31:28 +01:00
spec-constant-op-convert-sign.asm.comp Deal with mismatched signs in S/U/F conversion opcodes. 2019-04-10 14:03:58 +02:00
storage-buffer-basic.asm.comp GLSL/HLSL: Disallow VariablePointers capability outright. 2020-12-07 12:16:02 +01:00
temorary-access-terminator.vk.nocompat.asm.comp.vk Handle value access in terminators. 2021-07-29 15:27:52 +02:00