SPIRV-Cross/reference/opt/shaders/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
..
array-lut-no-loop-variable.frag Update glslang and SPIRV-Tools. 2018-09-27 11:10:22 +02:00
avoid-expression-lowering-to-loop.frag Implement context-sensitive expression read tracking. 2020-06-29 12:20:35 +02:00
barycentric-nv.frag GLSL: Support pervertexNV in NV barycentric extension. 2021-06-30 16:27:46 +02:00
basic.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
complex-expression-in-access-chain.frag Register implied expression reads in OpLoad/OpAccessChain. 2019-01-04 14:56:12 +01:00
composite-extract-forced-temporary.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
constant-array.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
constant-composites.frag Rewrite how IDs are iterated over. 2019-01-10 12:52:56 +01:00
false-loop-init.frag Update glslang and SPIRV-Tools. 2018-09-27 11:10:22 +02:00
flush_params.frag Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00
for-loop-continue-control-flow.frag Fall back to complex loop if non-trivial continue block is found. 2019-07-08 11:54:29 +02:00
for-loop-init.frag HLSL: Workaround FXC bugs with degenerate switch blocks. 2020-06-23 15:39:04 +02:00
frexp-modf.frag GLSL: Handle more proper semantics for RelaxedPrecision. 2022-05-02 15:11:24 +02:00
front-facing.frag Add IsFrontFace support to HLSL. 2018-02-15 12:42:56 +01:00
gather-dref.frag Fix GatherDref on GLSL. 2018-04-30 12:45:23 +02:00
ground.frag Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00
helper-invocation.frag Roll dependencies 2020-05-20 10:27:51 -04:00
hoisted-temporary-use-continue-block-as-value.frag Roll SPIRV-Tools, SPIRV-Headers and GLSLang 2019-12-02 16:17:21 -05:00
image-load-store-uint-coord.asm.frag Roll dependencies 2020-05-20 10:27:51 -04:00
inside-loop-dominated-variable-preservation.frag Deal with case where a variable is dominated by inner part of a loop. 2019-06-06 11:11:44 +02:00
loop-dominator-and-switch-default.frag Move branchless analysis to CFG. 2019-08-27 10:19:19 +02:00
lut-promotion.frag Update glslang and SPIRV-Tools. 2018-09-27 11:10:22 +02:00
mix.frag Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00
modf-pointer-function-analysis.frag Handle Modf/Frexp in more cases. 2021-11-07 11:36:44 +01:00
partial-write-preserve.frag Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00
pixel-interlock-ordered.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
pixel-interlock-unordered.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
pls.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
post-depth-coverage-es.frag GLSL: Fix post-depth coverage for ESSL. 2019-08-28 13:40:13 -05:00
post-depth-coverage.frag GLSL: Fix post-depth coverage for ESSL. 2019-08-28 13:40:13 -05:00
round-even.frag GLSL: Fix round/roundEven for legacy GLSL. 2020-11-06 17:34:38 +01:00
round.frag GLSL: Fix round/roundEven for legacy GLSL. 2020-11-06 17:34:38 +01:00
sample-interlock-ordered.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
sample-interlock-unordered.frag SPIRV-Cross contribution needed for INTEL_fragment_shader_ordering 2021-10-25 10:50:10 +02:00
sample-parameter.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
sampler-ms.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
sampler-proj.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
sampler.frag Add reference output for --opt. 2017-11-23 09:50:11 +01:00
scalar-refract-reflect.frag MSL/HLSL: Support scalar reflect and refract. 2019-07-03 12:31:52 +02:00
selection-block-dominator.frag HLSL: Workaround FXC bugs with degenerate switch blocks. 2020-06-23 15:39:04 +02:00
struct-type-unrelated-alias.frag Do not consider aliased struct types if the master is not a block. 2019-10-07 10:52:16 +02:00
switch-unsigned-case.frag Fix unsigned switch case selectors. 2018-11-26 10:36:50 +01:00
swizzle.frag Roll GLSLang, SPIRV-Tools and SPIRV-Headers. 2020-04-23 10:53:49 -04:00
texel-fetch-offset.frag Roll dependencies. 2022-01-05 14:56:01 +01:00
ubo_layout.frag GLSL: Be more aggressive about using type_alias. 2020-07-29 12:48:41 +02:00
ubo-load-row-major-workaround.frag Normalize all internal workaround methods to use spv prefix. 2020-11-23 15:42:27 +01:00
unary-enclose.frag Update tests for latest SPIRV-Tools and glslang. 2018-03-12 15:11:55 +01:00