SPIRV-Cross/reference/shaders-no-opt/asm/frag/inliner-dominator-inside-loop.asm.frag
Chip Davis 5547b25afe Interleave undef values with constants and types.
Undef values may be of struct type and may be used in constants.
Therefore, they must be interleaved with constants and types.

Fixes the rest of the Vulkan CTS test
`dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_spec_constant_composite`.

(Please excuse the churn in the reference output; it's an inevitable
result of this change.)
2022-11-20 02:08:37 -08:00

214 lines
7.9 KiB
GLSL

#version 450
struct VertexOutput
{
vec4 HPosition;
vec4 Uv_EdgeDistance1;
vec4 UvStuds_EdgeDistance2;
vec4 Color;
vec4 LightPosition_Fog;
vec4 View_Depth;
vec4 Normal_SpecPower;
vec3 Tangent;
vec4 PosLightSpace_Reflectance;
float studIndex;
};
struct Surface
{
vec3 albedo;
vec3 normal;
float specular;
float gloss;
float reflectance;
float opacity;
};
struct SurfaceInput
{
vec4 Color;
vec2 Uv;
vec2 UvStuds;
};
struct Globals
{
mat4 ViewProjection;
vec4 ViewRight;
vec4 ViewUp;
vec4 ViewDir;
vec3 CameraPosition;
vec3 AmbientColor;
vec3 Lamp0Color;
vec3 Lamp0Dir;
vec3 Lamp1Color;
vec4 FogParams;
vec3 FogColor;
vec4 LightBorder;
vec4 LightConfig0;
vec4 LightConfig1;
vec4 LightConfig2;
vec4 LightConfig3;
vec4 RefractionBias_FadeDistance_GlowFactor;
vec4 OutlineBrightness_ShadowInfo;
vec4 ShadowMatrix0;
vec4 ShadowMatrix1;
vec4 ShadowMatrix2;
};
struct Params
{
vec4 LqmatFarTilingFactor;
};
VertexOutput _121;
SurfaceInput _122;
vec2 _123;
vec4 _124;
Surface _125;
vec4 _192;
vec4 _219;
vec4 _297;
layout(binding = 0, std140) uniform CB0
{
Globals CB0;
} _19;
uniform sampler2D SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler;
uniform sampler2D SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler;
uniform sampler2D SPIRV_Cross_CombinedNormalDetailMapTextureNormalDetailMapSampler;
uniform sampler2D SPIRV_Cross_CombinedStudsMapTextureStudsMapSampler;
uniform sampler2D SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler;
uniform sampler3D SPIRV_Cross_CombinedLightMapTextureLightMapSampler;
uniform sampler2D SPIRV_Cross_CombinedShadowMapTextureShadowMapSampler;
uniform samplerCube SPIRV_Cross_CombinedEnvironmentMapTextureEnvironmentMapSampler;
layout(location = 0) in vec4 IN_Uv_EdgeDistance1;
layout(location = 1) in vec4 IN_UvStuds_EdgeDistance2;
layout(location = 2) in vec4 IN_Color;
layout(location = 3) in vec4 IN_LightPosition_Fog;
layout(location = 4) in vec4 IN_View_Depth;
layout(location = 5) in vec4 IN_Normal_SpecPower;
layout(location = 6) in vec3 IN_Tangent;
layout(location = 7) in vec4 IN_PosLightSpace_Reflectance;
layout(location = 8) in float IN_studIndex;
layout(location = 0) out vec4 _entryPointOutput;
void main()
{
VertexOutput _128;
_128.HPosition = gl_FragCoord;
_128.Uv_EdgeDistance1 = IN_Uv_EdgeDistance1;
_128.UvStuds_EdgeDistance2 = IN_UvStuds_EdgeDistance2;
_128.Color = IN_Color;
_128.LightPosition_Fog = IN_LightPosition_Fog;
_128.View_Depth = IN_View_Depth;
_128.Normal_SpecPower = IN_Normal_SpecPower;
_128.Tangent = IN_Tangent;
_128.PosLightSpace_Reflectance = IN_PosLightSpace_Reflectance;
_128.studIndex = IN_studIndex;
SurfaceInput _147;
_147.Color = IN_Color;
_147.Uv = IN_Uv_EdgeDistance1.xy;
_147.UvStuds = IN_UvStuds_EdgeDistance2.xy;
_147.UvStuds.y = (fract(_147.UvStuds.y) + IN_studIndex) * 0.25;
float _160 = clamp(1.0 - (_128.View_Depth.w * 0.00333332992158830165863037109375), 0.0, 1.0);
float _163 = _128.View_Depth.w * _19.CB0.RefractionBias_FadeDistance_GlowFactor.y;
float _165 = clamp(1.0 - _163, 0.0, 1.0);
vec2 _166 = IN_Uv_EdgeDistance1.xy * 1.0;
bool _173;
vec4 _193;
for (;;)
{
_173 = 0.0 == 0.0;
if (_173)
{
_193 = texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166);
break;
}
else
{
float _180 = 1.0 / (1.0 - 0.0);
_193 = mix(texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedDiffuseMapTextureDiffuseMapSampler, _166), vec4(clamp((_160 * _180) - (0.0 * _180), 0.0, 1.0)));
break;
}
_193 = _192;
break;
}
vec4 _220;
for (;;)
{
if (_173)
{
_220 = texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166);
break;
}
else
{
float _207 = 1.0 / (1.0 - 0.0);
_220 = mix(texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedNormalMapTextureNormalMapSampler, _166), vec4(clamp((_165 * _207) - (0.0 * _207), 0.0, 1.0)));
break;
}
_220 = _219;
break;
}
vec2 _223 = vec2(1.0);
vec2 _224 = (_220.wy * 2.0) - _223;
vec3 _232 = vec3(_224, sqrt(clamp(1.0 + dot(-_224, _224), 0.0, 1.0)));
vec4 _237 = texture(SPIRV_Cross_CombinedNormalDetailMapTextureNormalDetailMapSampler, _166 * 0.0);
vec2 _240 = (_237.wy * 2.0) - _223;
vec2 _252 = _232.xy + (vec3(_240, sqrt(clamp(1.0 + dot(-_240, _240), 0.0, 1.0))).xy * 0.0);
vec3 _253 = vec3(_252.x, _252.y, _232.z);
vec2 _255 = _253.xy * _165;
vec3 _256 = vec3(_255.x, _255.y, _253.z);
vec4 _268 = texture(SPIRV_Cross_CombinedStudsMapTextureStudsMapSampler, _147.UvStuds);
vec3 _271 = ((IN_Color.xyz * (_193 * 1.0).xyz) * (1.0 + (_256.x * 0.300000011920928955078125))) * (_268.x * 2.0);
vec4 _298;
for (;;)
{
if (0.75 == 0.0)
{
_298 = texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166);
break;
}
else
{
float _285 = 1.0 / (1.0 - 0.75);
_298 = mix(texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166 * 0.25), texture(SPIRV_Cross_CombinedSpecularMapTextureSpecularMapSampler, _166), vec4(clamp((_165 * _285) - (0.75 * _285), 0.0, 1.0)));
break;
}
_298 = _297;
break;
}
vec2 _303 = mix(vec2(0.800000011920928955078125, 120.0), (_298.xy * vec2(2.0, 256.0)) + vec2(0.0, 0.00999999977648258209228515625), vec2(_165));
Surface _304;
_304.albedo = _271;
_304.normal = _256;
float _306 = _303.x;
_304.specular = _306;
float _308 = _303.y;
_304.gloss = _308;
float _312 = (_298.xy.y * _165) * 0.0;
_304.reflectance = _312;
vec4 _318 = vec4(_271, _128.Color.w);
vec3 _329 = normalize(((IN_Tangent * _304.normal.x) + (cross(IN_Normal_SpecPower.xyz, IN_Tangent) * _304.normal.y)) + (IN_Normal_SpecPower.xyz * _304.normal.z));
vec3 _332 = -_19.CB0.Lamp0Dir;
float _333 = dot(_329, _332);
float _357 = clamp(dot(step(_19.CB0.LightConfig3.xyz, abs(IN_LightPosition_Fog.xyz - _19.CB0.LightConfig2.xyz)), vec3(1.0)), 0.0, 1.0);
vec4 _368 = mix(texture(SPIRV_Cross_CombinedLightMapTextureLightMapSampler, IN_LightPosition_Fog.xyz.yzx - (IN_LightPosition_Fog.xyz.yzx * _357)), _19.CB0.LightBorder, vec4(_357));
vec2 _376 = texture(SPIRV_Cross_CombinedShadowMapTextureShadowMapSampler, IN_PosLightSpace_Reflectance.xyz.xy).xy;
float _392 = (1.0 - (((step(_376.x, IN_PosLightSpace_Reflectance.xyz.z) * clamp(9.0 - (20.0 * abs(IN_PosLightSpace_Reflectance.xyz.z - 0.5)), 0.0, 1.0)) * _376.y) * _19.CB0.OutlineBrightness_ShadowInfo.w)) * _368.w;
vec3 _403 = mix(_318.xyz, texture(SPIRV_Cross_CombinedEnvironmentMapTextureEnvironmentMapSampler, reflect(-IN_View_Depth.xyz, _329)).xyz, vec3(_312));
vec3 _422 = (((_19.CB0.AmbientColor + (((_19.CB0.Lamp0Color * clamp(_333, 0.0, 1.0)) + (_19.CB0.Lamp1Color * max(-_333, 0.0))) * _392)) + _368.xyz) * vec4(_403.x, _403.y, _403.z, _318.w).xyz) + (_19.CB0.Lamp0Color * (((step(0.0, _333) * _306) * _392) * pow(clamp(dot(_329, normalize(_332 + normalize(IN_View_Depth.xyz))), 0.0, 1.0), _308)));
vec4 _423 = vec4(_422.x, _422.y, _422.z, _124.w);
_423.w = vec4(_403.x, _403.y, _403.z, _318.w).w;
vec2 _435 = min(IN_Uv_EdgeDistance1.wz, IN_UvStuds_EdgeDistance2.wz);
float _439 = min(_435.x, _435.y) / _163;
vec3 _445 = _423.xyz * clamp((clamp((_163 * _19.CB0.OutlineBrightness_ShadowInfo.x) + _19.CB0.OutlineBrightness_ShadowInfo.y, 0.0, 1.0) * (1.5 - _439)) + _439, 0.0, 1.0);
vec4 _446 = vec4(_445.x, _445.y, _445.z, _423.w);
vec3 _453 = mix(_19.CB0.FogColor, _446.xyz, vec3(clamp(_128.LightPosition_Fog.w, 0.0, 1.0)));
_entryPointOutput = vec4(_453.x, _453.y, _453.z, _446.w);
}