SPIRV-Cross/reference/shaders-no-opt/asm/frag
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
..
anonymous-inner-struct-names.asm.frag Fixup names of anonymous inner structs. 2022-03-10 15:45:38 +01:00
array-builtin-bitcast-load-store.asm.frag GLSL: Handle complex load/store scenarios to gl_SampleMask. 2021-03-09 10:25:03 +01:00
combined-image-sampler-dxc-min16float.asm.invalid.frag Update external/ to SPIR-V 1.5 2019-09-18 16:04:27 -04:00
demote-impure-function-call.vk.nocompat.asm.frag.vk Consider discard and demote as impure statements. 2019-09-12 14:21:10 +02:00
discard-impure-function-call.asm.frag Consider discard and demote as impure statements. 2019-09-12 14:21:10 +02:00
do-while-continue-phi.asm.invalid.frag Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
do-while-loop-inverted-test.asm.frag Support do-while where test is negative. 2019-03-06 12:17:38 +01:00
early-conditional-return-switch.asm.frag Deal with case where a selection construct conditionally merges/breaks. 2020-09-17 12:02:43 +02:00
empty-struct-in-struct.asm.frag Implement constant empty struct correctly on all backends. 2019-10-26 16:10:11 +02:00
for-loop-dedicated-merge-block-inverted.asm.invalid.frag Roll GLSLang and SPIRV-Tools 2019-11-05 10:07:15 -05:00
for-loop-dedicated-merge-block-non-inverted.asm.invalid.frag Roll GLSLang and SPIRV-Tools 2019-11-05 10:07:15 -05:00
for-loop-inverted-test.asm.frag Support do-while where test is negative. 2019-03-06 12:17:38 +01:00
image-fetch-uint-coord.asm.frag GLSL: Fix OpImageFetch with uint coordinates and LOD. 2019-04-03 10:50:32 +02:00
inliner-dominator-inside-loop.asm.frag Do not forward expressions which carry a huge amount of dependencies. 2022-01-17 13:45:12 +01:00
late-expression-invalidation-2.asm.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
late-expression-invalidation.asm.frag Rework how loop iteration counts are validated. 2022-01-17 14:12:01 +01:00
ldexp-uint-exponent.asm.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
loop-merge-to-continue.asm.invalid.frag Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
nonuniform-bracket-handling-2.vk.nocompat.asm.frag.vk GLSL: Fix nonuniformEXT injection. 2020-10-30 14:11:16 +01:00
nonuniform-qualifier-propagation.vk.nocompat.asm.frag.vk GLSL: Emit nonuniformEXT in correct place for late-combined samplers. 2020-12-07 13:00:15 +01:00
nonuniform-ssbo.nocompat.vk.asm.frag.vk Rewrite how non-uniform qualifiers are handled. 2021-04-22 16:03:08 +02:00
only-initializer-frag-depth.asm.frag Add test for pure initializer gl_FragDepth. 2021-01-07 15:32:15 +01:00
opaque-id-literal-alias.preserve.asm.frag Fix edge case where opaque types can be declared on stack. 2019-02-19 17:28:31 +01:00
out-of-order-struct-id.asm.frag Rewrite how IDs are iterated over. 2019-01-10 12:52:56 +01:00
phi.zero-initialize.asm.frag Add support for forcefully zero-initialized variables. 2020-03-26 13:38:27 +01:00
pixel-interlock-callstack.asm.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
pixel-interlock-control-flow.asm.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
pixel-interlock-split-functions.asm.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
relaxed-precision-inheritance-rules-hoisted-temporaries.asm.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
relaxed-precision-inheritance-rules-hoisted-temporary.asm.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
relaxed-precision-inheritance-rules.asm.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
reserved-function-identifier.asm.frag Handle reserved identifiers for functions. 2021-01-04 10:00:12 +01:00
reserved-identifiers.asm.frag Overhaul how we deal with reserved identifiers. 2020-08-21 16:33:27 +02:00
scalar-select.spv14.asm.frag Handle SPIR-V 1.4 selection constructs. 2021-06-28 12:23:44 +02:00
selection-merge-to-continue.asm.invalid.frag Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
sparse-texture-feedback-uint-code.asm.desktop.frag GLSL: Support uint code for sparse residency query. 2020-06-08 11:40:02 +02:00
subgroup-arithmetic-cast.nocompat.vk.asm.frag.vk GLSL: Deal with sign in subgroup Min/Max operations. 2020-01-09 12:35:14 +01:00
subgroup-ballot-only.vk.asm.frag GLSL: Fix KHR subgroup extension table for subgroups. 2020-12-11 12:26:43 +01:00
subgroup-ballot-only.vk.asm.frag.vk GLSL: Fix KHR subgroup extension table for subgroups. 2020-12-11 12:26:43 +01:00
switch-block-case-fallthrough.asm.invalid.frag Update external/ to SPIR-V 1.5 2019-09-18 16:04:27 -04:00
switch-merge-to-continue.asm.invalid.frag Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
switch-non-default-fallthrough-no-phi.asm.frag Fix switch fallthrough case in some cases. 2021-08-31 17:24:09 +02:00
switch-single-case-multiple-exit-cfg.asm.frag HLSL: Workaround FXC bugs with degenerate switch blocks. 2020-06-23 15:39:04 +02:00
terminate-impure-function-call.spv16.asm.frag Handle OpTerminateInvocation. 2022-03-03 10:36:07 +01:00
texel-fetch-ms-uint-sample.asm.frag GLSL: Ensure correct signed integer type for more texture functions. 2022-02-16 11:14:07 +01:00
unordered-compare.asm.frag Add relax_nan_checks options. 2022-03-03 14:50:56 +01:00
unordered-compare.relax-nan.asm.frag Add relax_nan_checks options. 2022-03-03 14:50:56 +01:00
vector-extract-dynamic-spec-constant.asm.frag Fix OpVectorExtractDynamic with spec constant op index. 2019-10-17 11:12:14 +02:00
vector-shuffle-undef-index.asm.frag Support -1 index in OpVectorShuffle. 2019-03-25 10:17:05 +01:00
while-loop-inverted-test.asm.frag Support do-while where test is negative. 2019-03-06 12:17:38 +01:00