Shader "Ballistic/UI/BloodSplatter" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType" = "Opaque" }
Pass {
Tags { "RenderType" = "Opaque" }
Blend DstColor SrcColor, DstColor SrcColor
ZTest Always
ZWrite Off
Cull Off
GpuProgramID 7289
Program "vp" {
SubProgram "d3d11 hw_tier00 " {
"vs_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyz
// COLOR 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
vs_4_0
dcl_constantbuffer CB0[3], immediateIndexed
dcl_constantbuffer CB1[4], immediateIndexed
dcl_constantbuffer CB2[21], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb1[1].xyzw
mad r0.xyzw, cb1[0].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb1[2].xyzw, v0.zzzz, r0.xyzw
add r0.xyzw, r0.xyzw, cb1[3].xyzw
mul r1.xyzw, r0.yyyy, cb2[18].xyzw
mad r1.xyzw, cb2[17].xyzw, r0.xxxx, r1.xyzw
mad r1.xyzw, cb2[19].xyzw, r0.zzzz, r1.xyzw
mad o0.xyzw, cb2[20].xyzw, r0.wwww, r1.xyzw
mad o1.xy, v2.xyxx, cb0[2].xyxx, cb0[2].zwzz
mov o2.xyzw, v1.xyzw
ret
"
}
SubProgram "d3d11 hw_tier01 " {
"vs_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyz
// COLOR 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
vs_4_0
dcl_constantbuffer CB0[3], immediateIndexed
dcl_constantbuffer CB1[4], immediateIndexed
dcl_constantbuffer CB2[21], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb1[1].xyzw
mad r0.xyzw, cb1[0].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb1[2].xyzw, v0.zzzz, r0.xyzw
add r0.xyzw, r0.xyzw, cb1[3].xyzw
mul r1.xyzw, r0.yyyy, cb2[18].xyzw
mad r1.xyzw, cb2[17].xyzw, r0.xxxx, r1.xyzw
mad r1.xyzw, cb2[19].xyzw, r0.zzzz, r1.xyzw
mad o0.xyzw, cb2[20].xyzw, r0.wwww, r1.xyzw
mad o1.xy, v2.xyxx, cb0[2].xyxx, cb0[2].zwzz
mov o2.xyzw, v1.xyzw
ret
"
}
SubProgram "d3d11 hw_tier02 " {
"vs_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyz
// COLOR 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
//
vs_4_0
dcl_constantbuffer CB0[3], immediateIndexed
dcl_constantbuffer CB1[4], immediateIndexed
dcl_constantbuffer CB2[21], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
dcl_temps 2
mul r0.xyzw, v0.yyyy, cb1[1].xyzw
mad r0.xyzw, cb1[0].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb1[2].xyzw, v0.zzzz, r0.xyzw
add r0.xyzw, r0.xyzw, cb1[3].xyzw
mul r1.xyzw, r0.yyyy, cb2[18].xyzw
mad r1.xyzw, cb2[17].xyzw, r0.xxxx, r1.xyzw
mad r1.xyzw, cb2[19].xyzw, r0.zzzz, r1.xyzw
mad o0.xyzw, cb2[20].xyzw, r0.wwww, r1.xyzw
mad o1.xy, v2.xyxx, cb0[2].xyxx, cb0[2].zwzz
mov o2.xyzw, v1.xyzw
ret
"
}
SubProgram "glcore hw_tier00 " {
"!!GL3x
//ShaderGLESExporter
#ifdef VERTEX
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform vec4 _MainTex_ST;
in vec4 in_POSITION0;
in vec4 in_COLOR0;
in vec2 in_TEXCOORD0;
out vec2 vs_TEXCOORD0;
out vec4 vs_COLOR0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
u_xlat0 = u_xlat0 + hlslcc_mtx4x4unity_ObjectToWorld[3];
u_xlat1 = u_xlat0.yyyy * hlslcc_mtx4x4unity_MatrixVP[1];
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
gl_Position = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
vs_COLOR0 = in_COLOR0;
return;
}
#endif
#ifdef FRAGMENT
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform sampler2D _MainTex;
in vec2 vs_TEXCOORD0;
in vec4 vs_COLOR0;
layout(location = 0) out vec4 SV_Target0;
vec3 u_xlat16_0;
vec4 u_xlat10_0;
float u_xlat1;
float u_xlat6;
void main()
{
u_xlat10_0 = texture(_MainTex, vs_TEXCOORD0.xy);
u_xlat6 = u_xlat10_0.w + vs_COLOR0.x;
u_xlat16_0.xyz = u_xlat10_0.xyz + vec3(-0.5, -0.5, -0.5);
u_xlat6 = u_xlat6 * u_xlat6;
u_xlat1 = u_xlat6 * u_xlat6;
u_xlat6 = u_xlat6 * u_xlat1 + -1.0;
u_xlat6 = max(u_xlat6, 0.0);
u_xlat6 = min(u_xlat6, vs_COLOR0.w);
SV_Target0.xyz = u_xlat16_0.xyz * vec3(u_xlat6) + vec3(0.5, 0.5, 0.5);
SV_Target0.w = u_xlat6;
return;
}
#endif"
}
SubProgram "glcore hw_tier01 " {
"!!GL3x
//ShaderGLESExporter
#ifdef VERTEX
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform vec4 _MainTex_ST;
in vec4 in_POSITION0;
in vec4 in_COLOR0;
in vec2 in_TEXCOORD0;
out vec2 vs_TEXCOORD0;
out vec4 vs_COLOR0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
u_xlat0 = u_xlat0 + hlslcc_mtx4x4unity_ObjectToWorld[3];
u_xlat1 = u_xlat0.yyyy * hlslcc_mtx4x4unity_MatrixVP[1];
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
gl_Position = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
vs_COLOR0 = in_COLOR0;
return;
}
#endif
#ifdef FRAGMENT
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform sampler2D _MainTex;
in vec2 vs_TEXCOORD0;
in vec4 vs_COLOR0;
layout(location = 0) out vec4 SV_Target0;
vec3 u_xlat16_0;
vec4 u_xlat10_0;
float u_xlat1;
float u_xlat6;
void main()
{
u_xlat10_0 = texture(_MainTex, vs_TEXCOORD0.xy);
u_xlat6 = u_xlat10_0.w + vs_COLOR0.x;
u_xlat16_0.xyz = u_xlat10_0.xyz + vec3(-0.5, -0.5, -0.5);
u_xlat6 = u_xlat6 * u_xlat6;
u_xlat1 = u_xlat6 * u_xlat6;
u_xlat6 = u_xlat6 * u_xlat1 + -1.0;
u_xlat6 = max(u_xlat6, 0.0);
u_xlat6 = min(u_xlat6, vs_COLOR0.w);
SV_Target0.xyz = u_xlat16_0.xyz * vec3(u_xlat6) + vec3(0.5, 0.5, 0.5);
SV_Target0.w = u_xlat6;
return;
}
#endif"
}
SubProgram "glcore hw_tier02 " {
"!!GL3x
//ShaderGLESExporter
#ifdef VERTEX
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform vec4 _MainTex_ST;
in vec4 in_POSITION0;
in vec4 in_COLOR0;
in vec2 in_TEXCOORD0;
out vec2 vs_TEXCOORD0;
out vec4 vs_COLOR0;
vec4 u_xlat0;
vec4 u_xlat1;
void main()
{
u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
u_xlat0 = u_xlat0 + hlslcc_mtx4x4unity_ObjectToWorld[3];
u_xlat1 = u_xlat0.yyyy * hlslcc_mtx4x4unity_MatrixVP[1];
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
gl_Position = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
vs_COLOR0 = in_COLOR0;
return;
}
#endif
#ifdef FRAGMENT
#version 150
#extension GL_ARB_explicit_attrib_location : require
#ifdef GL_ARB_shader_bit_encoding
#extension GL_ARB_shader_bit_encoding : enable
#endif
uniform sampler2D _MainTex;
in vec2 vs_TEXCOORD0;
in vec4 vs_COLOR0;
layout(location = 0) out vec4 SV_Target0;
vec3 u_xlat16_0;
vec4 u_xlat10_0;
float u_xlat1;
float u_xlat6;
void main()
{
u_xlat10_0 = texture(_MainTex, vs_TEXCOORD0.xy);
u_xlat6 = u_xlat10_0.w + vs_COLOR0.x;
u_xlat16_0.xyz = u_xlat10_0.xyz + vec3(-0.5, -0.5, -0.5);
u_xlat6 = u_xlat6 * u_xlat6;
u_xlat1 = u_xlat6 * u_xlat6;
u_xlat6 = u_xlat6 * u_xlat1 + -1.0;
u_xlat6 = max(u_xlat6, 0.0);
u_xlat6 = min(u_xlat6, vs_COLOR0.w);
SV_Target0.xyz = u_xlat16_0.xyz * vec3(u_xlat6) + vec3(0.5, 0.5, 0.5);
SV_Target0.w = u_xlat6;
return;
}
#endif"
}
SubProgram "vulkan hw_tier00 " {
"spirv
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 105
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %4 "main" %11 %72 %84 %86 %96 %97
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %11 Location 11
OpDecorate %16 ArrayStride 16
OpDecorate %17 ArrayStride 17
OpMemberDecorate %18 0 Offset 18
OpMemberDecorate %18 1 Offset 18
OpMemberDecorate %18 2 Offset 18
OpDecorate %18 Block
OpDecorate %20 DescriptorSet 20
OpDecorate %20 Binding 20
OpMemberDecorate %70 0 BuiltIn 70
OpMemberDecorate %70 1 BuiltIn 70
OpMemberDecorate %70 2 BuiltIn 70
OpDecorate %70 Block
OpDecorate vs_TEXCOORD0 Location 84
OpDecorate %86 Location 86
OpDecorate %96 RelaxedPrecision
OpDecorate %96 Location 96
OpDecorate %97 RelaxedPrecision
OpDecorate %97 Location 97
OpDecorate %98 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypePointer Input %7
Input f32_4* %11 = OpVariable Input
%14 = OpTypeInt 32 0
u32 %15 = OpConstant 4
%16 = OpTypeArray %7 %15
%17 = OpTypeArray %7 %15
%18 = OpTypeStruct %16 %17 %7
%19 = OpTypePointer Uniform %18
Uniform struct {f32_4[4]; f32_4[4]; f32_4;}* %20 = OpVariable Uniform
%21 = OpTypeInt 32 1
i32 %22 = OpConstant 0
i32 %23 = OpConstant 1
%24 = OpTypePointer Uniform %7
i32 %35 = OpConstant 2
i32 %44 = OpConstant 3
Private f32_4* %48 = OpVariable Private
u32 %68 = OpConstant 1
%69 = OpTypeArray %6 %68
%70 = OpTypeStruct %7 %6 %69
%71 = OpTypePointer Output %70
Output struct {f32_4; f32; f32[1];}* %72 = OpVariable Output
%80 = OpTypePointer Output %7
%82 = OpTypeVector %6 2
%83 = OpTypePointer Output %82
Output f32_2* vs_TEXCOORD0 = OpVariable Output
%85 = OpTypePointer Input %82
Input f32_2* %86 = OpVariable Input
Output f32_4* %96 = OpVariable Output
Input f32_4* %97 = OpVariable Input
%99 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
f32_4 %12 = OpLoad %11
f32_4 %13 = OpVectorShuffle %12 %12 1 1 1 1
Uniform f32_4* %25 = OpAccessChain %20 %22 %23
f32_4 %26 = OpLoad %25
f32_4 %27 = OpFMul %13 %26
OpStore %9 %27
Uniform f32_4* %28 = OpAccessChain %20 %22 %22
f32_4 %29 = OpLoad %28
f32_4 %30 = OpLoad %11
f32_4 %31 = OpVectorShuffle %30 %30 0 0 0 0
f32_4 %32 = OpFMul %29 %31
f32_4 %33 = OpLoad %9
f32_4 %34 = OpFAdd %32 %33
OpStore %9 %34
Uniform f32_4* %36 = OpAccessChain %20 %22 %35
f32_4 %37 = OpLoad %36
f32_4 %38 = OpLoad %11
f32_4 %39 = OpVectorShuffle %38 %38 2 2 2 2
f32_4 %40 = OpFMul %37 %39
f32_4 %41 = OpLoad %9
f32_4 %42 = OpFAdd %40 %41
OpStore %9 %42
f32_4 %43 = OpLoad %9
Uniform f32_4* %45 = OpAccessChain %20 %22 %44
f32_4 %46 = OpLoad %45
f32_4 %47 = OpFAdd %43 %46
OpStore %9 %47
f32_4 %49 = OpLoad %9
f32_4 %50 = OpVectorShuffle %49 %49 1 1 1 1
Uniform f32_4* %51 = OpAccessChain %20 %23 %23
f32_4 %52 = OpLoad %51
f32_4 %53 = OpFMul %50 %52
OpStore %48 %53
Uniform f32_4* %54 = OpAccessChain %20 %23 %22
f32_4 %55 = OpLoad %54
f32_4 %56 = OpLoad %9
f32_4 %57 = OpVectorShuffle %56 %56 0 0 0 0
f32_4 %58 = OpFMul %55 %57
f32_4 %59 = OpLoad %48
f32_4 %60 = OpFAdd %58 %59
OpStore %48 %60
Uniform f32_4* %61 = OpAccessChain %20 %23 %35
f32_4 %62 = OpLoad %61
f32_4 %63 = OpLoad %9
f32_4 %64 = OpVectorShuffle %63 %63 2 2 2 2
f32_4 %65 = OpFMul %62 %64
f32_4 %66 = OpLoad %48
f32_4 %67 = OpFAdd %65 %66
OpStore %48 %67
Uniform f32_4* %73 = OpAccessChain %20 %23 %44
f32_4 %74 = OpLoad %73
f32_4 %75 = OpLoad %9
f32_4 %76 = OpVectorShuffle %75 %75 3 3 3 3
f32_4 %77 = OpFMul %74 %76
f32_4 %78 = OpLoad %48
f32_4 %79 = OpFAdd %77 %78
Output f32_4* %81 = OpAccessChain %72 %22
OpStore %81 %79
f32_2 %87 = OpLoad %86
Uniform f32_4* %88 = OpAccessChain %20 %35
f32_4 %89 = OpLoad %88
f32_2 %90 = OpVectorShuffle %89 %89 0 1
f32_2 %91 = OpFMul %87 %90
Uniform f32_4* %92 = OpAccessChain %20 %35
f32_4 %93 = OpLoad %92
f32_2 %94 = OpVectorShuffle %93 %93 2 3
f32_2 %95 = OpFAdd %91 %94
OpStore vs_TEXCOORD0 %95
f32_4 %98 = OpLoad %97
OpStore %96 %98
Output f32* %100 = OpAccessChain %72 %22 %68
f32 %101 = OpLoad %100
f32 %102 = OpFNegate %101
Output f32* %103 = OpAccessChain %72 %22 %68
OpStore %103 %102
OpReturn
OpFunctionEnd
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 80
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %22 %32 %66
OpExecutionMode %4 OriginUpperLeft
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %9 RelaxedPrecision
OpDecorate %12 RelaxedPrecision
OpDecorate %12 DescriptorSet 12
OpDecorate %12 Binding 12
OpDecorate %13 RelaxedPrecision
OpDecorate %16 RelaxedPrecision
OpDecorate %16 DescriptorSet 16
OpDecorate %16 Binding 16
OpDecorate %17 RelaxedPrecision
OpDecorate vs_TEXCOORD0 Location 22
OpDecorate %26 RelaxedPrecision
OpDecorate %30 RelaxedPrecision
OpDecorate %32 RelaxedPrecision
OpDecorate %32 Location 32
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %40 RelaxedPrecision
OpDecorate %41 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %48 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %54 RelaxedPrecision
OpDecorate %55 RelaxedPrecision
OpDecorate %57 RelaxedPrecision
OpDecorate %58 RelaxedPrecision
OpDecorate %60 RelaxedPrecision
OpDecorate %61 RelaxedPrecision
OpDecorate %63 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %66 Location 66
OpDecorate %67 RelaxedPrecision
OpDecorate %68 RelaxedPrecision
OpDecorate %69 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %73 RelaxedPrecision
OpDecorate %76 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypeImage %6 Dim2D 0 0 0 1 Unknown
%11 = OpTypePointer UniformConstant %10
UniformConstant read_only Texture2D* %12 = OpVariable UniformConstant
%14 = OpTypeSampler
%15 = OpTypePointer UniformConstant %14
UniformConstant sampler* %16 = OpVariable UniformConstant
%18 = OpTypeSampledImage %10
%20 = OpTypeVector %6 2
%21 = OpTypePointer Input %20
Input f32_2* vs_TEXCOORD0 = OpVariable Input
%25 = OpTypePointer Private %6
Private f32* %26 = OpVariable Private
%27 = OpTypeInt 32 0
u32 %28 = OpConstant 3
%31 = OpTypePointer Input %7
Input f32_4* %32 = OpVariable Input
u32 %33 = OpConstant 0
%34 = OpTypePointer Input %6
%38 = OpTypeVector %6 3
%39 = OpTypePointer Private %38
Private f32_3* %40 = OpVariable Private
f32 %43 = OpConstant 3.67402E-40
f32_3 %44 = OpConstantComposite %43 %43 %43
Private f32* %49 = OpVariable Private
f32 %56 = OpConstant 3.67402E-40
f32 %59 = OpConstant 3.67402E-40
%65 = OpTypePointer Output %7
Output f32_4* %66 = OpVariable Output
f32 %71 = OpConstant 3.67402E-40
f32_3 %72 = OpConstantComposite %71 %71 %71
%77 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
read_only Texture2D %13 = OpLoad %12
sampler %17 = OpLoad %16
read_only Texture2DSampled %19 = OpSampledImage %13 %17
f32_2 %23 = OpLoad vs_TEXCOORD0
f32_4 %24 = OpImageSampleImplicitLod %19 %23
OpStore %9 %24
Private f32* %29 = OpAccessChain %9 %28
f32 %30 = OpLoad %29
Input f32* %35 = OpAccessChain %32 %33
f32 %36 = OpLoad %35
f32 %37 = OpFAdd %30 %36
OpStore %26 %37
f32_4 %41 = OpLoad %9
f32_3 %42 = OpVectorShuffle %41 %41 0 1 2
f32_3 %45 = OpFAdd %42 %44
OpStore %40 %45
f32 %46 = OpLoad %26
f32 %47 = OpLoad %26
f32 %48 = OpFMul %46 %47
OpStore %26 %48
f32 %50 = OpLoad %26
f32 %51 = OpLoad %26
f32 %52 = OpFMul %50 %51
OpStore %49 %52
f32 %53 = OpLoad %26
f32 %54 = OpLoad %49
f32 %55 = OpFMul %53 %54
f32 %57 = OpFAdd %55 %56
OpStore %26 %57
f32 %58 = OpLoad %26
f32 %60 = OpExtInst %1 40 %58 %59
OpStore %26 %60
f32 %61 = OpLoad %26
Input f32* %62 = OpAccessChain %32 %28
f32 %63 = OpLoad %62
f32 %64 = OpExtInst %1 37 %61 %63
OpStore %26 %64
f32_3 %67 = OpLoad %40
f32 %68 = OpLoad %26
f32_3 %69 = OpCompositeConstruct %68 %68 %68
f32_3 %70 = OpFMul %67 %69
f32_3 %73 = OpFAdd %70 %72
f32_4 %74 = OpLoad %66
f32_4 %75 = OpVectorShuffle %74 %73 4 5 6 3
OpStore %66 %75
f32 %76 = OpLoad %26
Output f32* %78 = OpAccessChain %66 %28
OpStore %78 %76
OpReturn
OpFunctionEnd
"
}
SubProgram "vulkan hw_tier01 " {
"spirv
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 105
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %4 "main" %11 %72 %84 %86 %96 %97
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %11 Location 11
OpDecorate %16 ArrayStride 16
OpDecorate %17 ArrayStride 17
OpMemberDecorate %18 0 Offset 18
OpMemberDecorate %18 1 Offset 18
OpMemberDecorate %18 2 Offset 18
OpDecorate %18 Block
OpDecorate %20 DescriptorSet 20
OpDecorate %20 Binding 20
OpMemberDecorate %70 0 BuiltIn 70
OpMemberDecorate %70 1 BuiltIn 70
OpMemberDecorate %70 2 BuiltIn 70
OpDecorate %70 Block
OpDecorate vs_TEXCOORD0 Location 84
OpDecorate %86 Location 86
OpDecorate %96 RelaxedPrecision
OpDecorate %96 Location 96
OpDecorate %97 RelaxedPrecision
OpDecorate %97 Location 97
OpDecorate %98 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypePointer Input %7
Input f32_4* %11 = OpVariable Input
%14 = OpTypeInt 32 0
u32 %15 = OpConstant 4
%16 = OpTypeArray %7 %15
%17 = OpTypeArray %7 %15
%18 = OpTypeStruct %16 %17 %7
%19 = OpTypePointer Uniform %18
Uniform struct {f32_4[4]; f32_4[4]; f32_4;}* %20 = OpVariable Uniform
%21 = OpTypeInt 32 1
i32 %22 = OpConstant 0
i32 %23 = OpConstant 1
%24 = OpTypePointer Uniform %7
i32 %35 = OpConstant 2
i32 %44 = OpConstant 3
Private f32_4* %48 = OpVariable Private
u32 %68 = OpConstant 1
%69 = OpTypeArray %6 %68
%70 = OpTypeStruct %7 %6 %69
%71 = OpTypePointer Output %70
Output struct {f32_4; f32; f32[1];}* %72 = OpVariable Output
%80 = OpTypePointer Output %7
%82 = OpTypeVector %6 2
%83 = OpTypePointer Output %82
Output f32_2* vs_TEXCOORD0 = OpVariable Output
%85 = OpTypePointer Input %82
Input f32_2* %86 = OpVariable Input
Output f32_4* %96 = OpVariable Output
Input f32_4* %97 = OpVariable Input
%99 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
f32_4 %12 = OpLoad %11
f32_4 %13 = OpVectorShuffle %12 %12 1 1 1 1
Uniform f32_4* %25 = OpAccessChain %20 %22 %23
f32_4 %26 = OpLoad %25
f32_4 %27 = OpFMul %13 %26
OpStore %9 %27
Uniform f32_4* %28 = OpAccessChain %20 %22 %22
f32_4 %29 = OpLoad %28
f32_4 %30 = OpLoad %11
f32_4 %31 = OpVectorShuffle %30 %30 0 0 0 0
f32_4 %32 = OpFMul %29 %31
f32_4 %33 = OpLoad %9
f32_4 %34 = OpFAdd %32 %33
OpStore %9 %34
Uniform f32_4* %36 = OpAccessChain %20 %22 %35
f32_4 %37 = OpLoad %36
f32_4 %38 = OpLoad %11
f32_4 %39 = OpVectorShuffle %38 %38 2 2 2 2
f32_4 %40 = OpFMul %37 %39
f32_4 %41 = OpLoad %9
f32_4 %42 = OpFAdd %40 %41
OpStore %9 %42
f32_4 %43 = OpLoad %9
Uniform f32_4* %45 = OpAccessChain %20 %22 %44
f32_4 %46 = OpLoad %45
f32_4 %47 = OpFAdd %43 %46
OpStore %9 %47
f32_4 %49 = OpLoad %9
f32_4 %50 = OpVectorShuffle %49 %49 1 1 1 1
Uniform f32_4* %51 = OpAccessChain %20 %23 %23
f32_4 %52 = OpLoad %51
f32_4 %53 = OpFMul %50 %52
OpStore %48 %53
Uniform f32_4* %54 = OpAccessChain %20 %23 %22
f32_4 %55 = OpLoad %54
f32_4 %56 = OpLoad %9
f32_4 %57 = OpVectorShuffle %56 %56 0 0 0 0
f32_4 %58 = OpFMul %55 %57
f32_4 %59 = OpLoad %48
f32_4 %60 = OpFAdd %58 %59
OpStore %48 %60
Uniform f32_4* %61 = OpAccessChain %20 %23 %35
f32_4 %62 = OpLoad %61
f32_4 %63 = OpLoad %9
f32_4 %64 = OpVectorShuffle %63 %63 2 2 2 2
f32_4 %65 = OpFMul %62 %64
f32_4 %66 = OpLoad %48
f32_4 %67 = OpFAdd %65 %66
OpStore %48 %67
Uniform f32_4* %73 = OpAccessChain %20 %23 %44
f32_4 %74 = OpLoad %73
f32_4 %75 = OpLoad %9
f32_4 %76 = OpVectorShuffle %75 %75 3 3 3 3
f32_4 %77 = OpFMul %74 %76
f32_4 %78 = OpLoad %48
f32_4 %79 = OpFAdd %77 %78
Output f32_4* %81 = OpAccessChain %72 %22
OpStore %81 %79
f32_2 %87 = OpLoad %86
Uniform f32_4* %88 = OpAccessChain %20 %35
f32_4 %89 = OpLoad %88
f32_2 %90 = OpVectorShuffle %89 %89 0 1
f32_2 %91 = OpFMul %87 %90
Uniform f32_4* %92 = OpAccessChain %20 %35
f32_4 %93 = OpLoad %92
f32_2 %94 = OpVectorShuffle %93 %93 2 3
f32_2 %95 = OpFAdd %91 %94
OpStore vs_TEXCOORD0 %95
f32_4 %98 = OpLoad %97
OpStore %96 %98
Output f32* %100 = OpAccessChain %72 %22 %68
f32 %101 = OpLoad %100
f32 %102 = OpFNegate %101
Output f32* %103 = OpAccessChain %72 %22 %68
OpStore %103 %102
OpReturn
OpFunctionEnd
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 80
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %22 %32 %66
OpExecutionMode %4 OriginUpperLeft
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %9 RelaxedPrecision
OpDecorate %12 RelaxedPrecision
OpDecorate %12 DescriptorSet 12
OpDecorate %12 Binding 12
OpDecorate %13 RelaxedPrecision
OpDecorate %16 RelaxedPrecision
OpDecorate %16 DescriptorSet 16
OpDecorate %16 Binding 16
OpDecorate %17 RelaxedPrecision
OpDecorate vs_TEXCOORD0 Location 22
OpDecorate %26 RelaxedPrecision
OpDecorate %30 RelaxedPrecision
OpDecorate %32 RelaxedPrecision
OpDecorate %32 Location 32
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %40 RelaxedPrecision
OpDecorate %41 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %48 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %54 RelaxedPrecision
OpDecorate %55 RelaxedPrecision
OpDecorate %57 RelaxedPrecision
OpDecorate %58 RelaxedPrecision
OpDecorate %60 RelaxedPrecision
OpDecorate %61 RelaxedPrecision
OpDecorate %63 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %66 Location 66
OpDecorate %67 RelaxedPrecision
OpDecorate %68 RelaxedPrecision
OpDecorate %69 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %73 RelaxedPrecision
OpDecorate %76 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypeImage %6 Dim2D 0 0 0 1 Unknown
%11 = OpTypePointer UniformConstant %10
UniformConstant read_only Texture2D* %12 = OpVariable UniformConstant
%14 = OpTypeSampler
%15 = OpTypePointer UniformConstant %14
UniformConstant sampler* %16 = OpVariable UniformConstant
%18 = OpTypeSampledImage %10
%20 = OpTypeVector %6 2
%21 = OpTypePointer Input %20
Input f32_2* vs_TEXCOORD0 = OpVariable Input
%25 = OpTypePointer Private %6
Private f32* %26 = OpVariable Private
%27 = OpTypeInt 32 0
u32 %28 = OpConstant 3
%31 = OpTypePointer Input %7
Input f32_4* %32 = OpVariable Input
u32 %33 = OpConstant 0
%34 = OpTypePointer Input %6
%38 = OpTypeVector %6 3
%39 = OpTypePointer Private %38
Private f32_3* %40 = OpVariable Private
f32 %43 = OpConstant 3.67402E-40
f32_3 %44 = OpConstantComposite %43 %43 %43
Private f32* %49 = OpVariable Private
f32 %56 = OpConstant 3.67402E-40
f32 %59 = OpConstant 3.67402E-40
%65 = OpTypePointer Output %7
Output f32_4* %66 = OpVariable Output
f32 %71 = OpConstant 3.67402E-40
f32_3 %72 = OpConstantComposite %71 %71 %71
%77 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
read_only Texture2D %13 = OpLoad %12
sampler %17 = OpLoad %16
read_only Texture2DSampled %19 = OpSampledImage %13 %17
f32_2 %23 = OpLoad vs_TEXCOORD0
f32_4 %24 = OpImageSampleImplicitLod %19 %23
OpStore %9 %24
Private f32* %29 = OpAccessChain %9 %28
f32 %30 = OpLoad %29
Input f32* %35 = OpAccessChain %32 %33
f32 %36 = OpLoad %35
f32 %37 = OpFAdd %30 %36
OpStore %26 %37
f32_4 %41 = OpLoad %9
f32_3 %42 = OpVectorShuffle %41 %41 0 1 2
f32_3 %45 = OpFAdd %42 %44
OpStore %40 %45
f32 %46 = OpLoad %26
f32 %47 = OpLoad %26
f32 %48 = OpFMul %46 %47
OpStore %26 %48
f32 %50 = OpLoad %26
f32 %51 = OpLoad %26
f32 %52 = OpFMul %50 %51
OpStore %49 %52
f32 %53 = OpLoad %26
f32 %54 = OpLoad %49
f32 %55 = OpFMul %53 %54
f32 %57 = OpFAdd %55 %56
OpStore %26 %57
f32 %58 = OpLoad %26
f32 %60 = OpExtInst %1 40 %58 %59
OpStore %26 %60
f32 %61 = OpLoad %26
Input f32* %62 = OpAccessChain %32 %28
f32 %63 = OpLoad %62
f32 %64 = OpExtInst %1 37 %61 %63
OpStore %26 %64
f32_3 %67 = OpLoad %40
f32 %68 = OpLoad %26
f32_3 %69 = OpCompositeConstruct %68 %68 %68
f32_3 %70 = OpFMul %67 %69
f32_3 %73 = OpFAdd %70 %72
f32_4 %74 = OpLoad %66
f32_4 %75 = OpVectorShuffle %74 %73 4 5 6 3
OpStore %66 %75
f32 %76 = OpLoad %26
Output f32* %78 = OpAccessChain %66 %28
OpStore %78 %76
OpReturn
OpFunctionEnd
"
}
SubProgram "vulkan hw_tier02 " {
"spirv
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 105
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %4 "main" %11 %72 %84 %86 %96 %97
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %11 Location 11
OpDecorate %16 ArrayStride 16
OpDecorate %17 ArrayStride 17
OpMemberDecorate %18 0 Offset 18
OpMemberDecorate %18 1 Offset 18
OpMemberDecorate %18 2 Offset 18
OpDecorate %18 Block
OpDecorate %20 DescriptorSet 20
OpDecorate %20 Binding 20
OpMemberDecorate %70 0 BuiltIn 70
OpMemberDecorate %70 1 BuiltIn 70
OpMemberDecorate %70 2 BuiltIn 70
OpDecorate %70 Block
OpDecorate vs_TEXCOORD0 Location 84
OpDecorate %86 Location 86
OpDecorate %96 RelaxedPrecision
OpDecorate %96 Location 96
OpDecorate %97 RelaxedPrecision
OpDecorate %97 Location 97
OpDecorate %98 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypePointer Input %7
Input f32_4* %11 = OpVariable Input
%14 = OpTypeInt 32 0
u32 %15 = OpConstant 4
%16 = OpTypeArray %7 %15
%17 = OpTypeArray %7 %15
%18 = OpTypeStruct %16 %17 %7
%19 = OpTypePointer Uniform %18
Uniform struct {f32_4[4]; f32_4[4]; f32_4;}* %20 = OpVariable Uniform
%21 = OpTypeInt 32 1
i32 %22 = OpConstant 0
i32 %23 = OpConstant 1
%24 = OpTypePointer Uniform %7
i32 %35 = OpConstant 2
i32 %44 = OpConstant 3
Private f32_4* %48 = OpVariable Private
u32 %68 = OpConstant 1
%69 = OpTypeArray %6 %68
%70 = OpTypeStruct %7 %6 %69
%71 = OpTypePointer Output %70
Output struct {f32_4; f32; f32[1];}* %72 = OpVariable Output
%80 = OpTypePointer Output %7
%82 = OpTypeVector %6 2
%83 = OpTypePointer Output %82
Output f32_2* vs_TEXCOORD0 = OpVariable Output
%85 = OpTypePointer Input %82
Input f32_2* %86 = OpVariable Input
Output f32_4* %96 = OpVariable Output
Input f32_4* %97 = OpVariable Input
%99 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
f32_4 %12 = OpLoad %11
f32_4 %13 = OpVectorShuffle %12 %12 1 1 1 1
Uniform f32_4* %25 = OpAccessChain %20 %22 %23
f32_4 %26 = OpLoad %25
f32_4 %27 = OpFMul %13 %26
OpStore %9 %27
Uniform f32_4* %28 = OpAccessChain %20 %22 %22
f32_4 %29 = OpLoad %28
f32_4 %30 = OpLoad %11
f32_4 %31 = OpVectorShuffle %30 %30 0 0 0 0
f32_4 %32 = OpFMul %29 %31
f32_4 %33 = OpLoad %9
f32_4 %34 = OpFAdd %32 %33
OpStore %9 %34
Uniform f32_4* %36 = OpAccessChain %20 %22 %35
f32_4 %37 = OpLoad %36
f32_4 %38 = OpLoad %11
f32_4 %39 = OpVectorShuffle %38 %38 2 2 2 2
f32_4 %40 = OpFMul %37 %39
f32_4 %41 = OpLoad %9
f32_4 %42 = OpFAdd %40 %41
OpStore %9 %42
f32_4 %43 = OpLoad %9
Uniform f32_4* %45 = OpAccessChain %20 %22 %44
f32_4 %46 = OpLoad %45
f32_4 %47 = OpFAdd %43 %46
OpStore %9 %47
f32_4 %49 = OpLoad %9
f32_4 %50 = OpVectorShuffle %49 %49 1 1 1 1
Uniform f32_4* %51 = OpAccessChain %20 %23 %23
f32_4 %52 = OpLoad %51
f32_4 %53 = OpFMul %50 %52
OpStore %48 %53
Uniform f32_4* %54 = OpAccessChain %20 %23 %22
f32_4 %55 = OpLoad %54
f32_4 %56 = OpLoad %9
f32_4 %57 = OpVectorShuffle %56 %56 0 0 0 0
f32_4 %58 = OpFMul %55 %57
f32_4 %59 = OpLoad %48
f32_4 %60 = OpFAdd %58 %59
OpStore %48 %60
Uniform f32_4* %61 = OpAccessChain %20 %23 %35
f32_4 %62 = OpLoad %61
f32_4 %63 = OpLoad %9
f32_4 %64 = OpVectorShuffle %63 %63 2 2 2 2
f32_4 %65 = OpFMul %62 %64
f32_4 %66 = OpLoad %48
f32_4 %67 = OpFAdd %65 %66
OpStore %48 %67
Uniform f32_4* %73 = OpAccessChain %20 %23 %44
f32_4 %74 = OpLoad %73
f32_4 %75 = OpLoad %9
f32_4 %76 = OpVectorShuffle %75 %75 3 3 3 3
f32_4 %77 = OpFMul %74 %76
f32_4 %78 = OpLoad %48
f32_4 %79 = OpFAdd %77 %78
Output f32_4* %81 = OpAccessChain %72 %22
OpStore %81 %79
f32_2 %87 = OpLoad %86
Uniform f32_4* %88 = OpAccessChain %20 %35
f32_4 %89 = OpLoad %88
f32_2 %90 = OpVectorShuffle %89 %89 0 1
f32_2 %91 = OpFMul %87 %90
Uniform f32_4* %92 = OpAccessChain %20 %35
f32_4 %93 = OpLoad %92
f32_2 %94 = OpVectorShuffle %93 %93 2 3
f32_2 %95 = OpFAdd %91 %94
OpStore vs_TEXCOORD0 %95
f32_4 %98 = OpLoad %97
OpStore %96 %98
Output f32* %100 = OpAccessChain %72 %22 %68
f32 %101 = OpLoad %100
f32 %102 = OpFNegate %101
Output f32* %103 = OpAccessChain %72 %22 %68
OpStore %103 %102
OpReturn
OpFunctionEnd
//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 80
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %22 %32 %66
OpExecutionMode %4 OriginUpperLeft
OpName vs_TEXCOORD0 "vs_TEXCOORD0"
OpDecorate %9 RelaxedPrecision
OpDecorate %12 RelaxedPrecision
OpDecorate %12 DescriptorSet 12
OpDecorate %12 Binding 12
OpDecorate %13 RelaxedPrecision
OpDecorate %16 RelaxedPrecision
OpDecorate %16 DescriptorSet 16
OpDecorate %16 Binding 16
OpDecorate %17 RelaxedPrecision
OpDecorate vs_TEXCOORD0 Location 22
OpDecorate %26 RelaxedPrecision
OpDecorate %30 RelaxedPrecision
OpDecorate %32 RelaxedPrecision
OpDecorate %32 Location 32
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %40 RelaxedPrecision
OpDecorate %41 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %45 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %47 RelaxedPrecision
OpDecorate %48 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %54 RelaxedPrecision
OpDecorate %55 RelaxedPrecision
OpDecorate %57 RelaxedPrecision
OpDecorate %58 RelaxedPrecision
OpDecorate %60 RelaxedPrecision
OpDecorate %61 RelaxedPrecision
OpDecorate %63 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %66 Location 66
OpDecorate %67 RelaxedPrecision
OpDecorate %68 RelaxedPrecision
OpDecorate %69 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %73 RelaxedPrecision
OpDecorate %76 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypeImage %6 Dim2D 0 0 0 1 Unknown
%11 = OpTypePointer UniformConstant %10
UniformConstant read_only Texture2D* %12 = OpVariable UniformConstant
%14 = OpTypeSampler
%15 = OpTypePointer UniformConstant %14
UniformConstant sampler* %16 = OpVariable UniformConstant
%18 = OpTypeSampledImage %10
%20 = OpTypeVector %6 2
%21 = OpTypePointer Input %20
Input f32_2* vs_TEXCOORD0 = OpVariable Input
%25 = OpTypePointer Private %6
Private f32* %26 = OpVariable Private
%27 = OpTypeInt 32 0
u32 %28 = OpConstant 3
%31 = OpTypePointer Input %7
Input f32_4* %32 = OpVariable Input
u32 %33 = OpConstant 0
%34 = OpTypePointer Input %6
%38 = OpTypeVector %6 3
%39 = OpTypePointer Private %38
Private f32_3* %40 = OpVariable Private
f32 %43 = OpConstant 3.67402E-40
f32_3 %44 = OpConstantComposite %43 %43 %43
Private f32* %49 = OpVariable Private
f32 %56 = OpConstant 3.67402E-40
f32 %59 = OpConstant 3.67402E-40
%65 = OpTypePointer Output %7
Output f32_4* %66 = OpVariable Output
f32 %71 = OpConstant 3.67402E-40
f32_3 %72 = OpConstantComposite %71 %71 %71
%77 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
read_only Texture2D %13 = OpLoad %12
sampler %17 = OpLoad %16
read_only Texture2DSampled %19 = OpSampledImage %13 %17
f32_2 %23 = OpLoad vs_TEXCOORD0
f32_4 %24 = OpImageSampleImplicitLod %19 %23
OpStore %9 %24
Private f32* %29 = OpAccessChain %9 %28
f32 %30 = OpLoad %29
Input f32* %35 = OpAccessChain %32 %33
f32 %36 = OpLoad %35
f32 %37 = OpFAdd %30 %36
OpStore %26 %37
f32_4 %41 = OpLoad %9
f32_3 %42 = OpVectorShuffle %41 %41 0 1 2
f32_3 %45 = OpFAdd %42 %44
OpStore %40 %45
f32 %46 = OpLoad %26
f32 %47 = OpLoad %26
f32 %48 = OpFMul %46 %47
OpStore %26 %48
f32 %50 = OpLoad %26
f32 %51 = OpLoad %26
f32 %52 = OpFMul %50 %51
OpStore %49 %52
f32 %53 = OpLoad %26
f32 %54 = OpLoad %49
f32 %55 = OpFMul %53 %54
f32 %57 = OpFAdd %55 %56
OpStore %26 %57
f32 %58 = OpLoad %26
f32 %60 = OpExtInst %1 40 %58 %59
OpStore %26 %60
f32 %61 = OpLoad %26
Input f32* %62 = OpAccessChain %32 %28
f32 %63 = OpLoad %62
f32 %64 = OpExtInst %1 37 %61 %63
OpStore %26 %64
f32_3 %67 = OpLoad %40
f32 %68 = OpLoad %26
f32_3 %69 = OpCompositeConstruct %68 %68 %68
f32_3 %70 = OpFMul %67 %69
f32_3 %73 = OpFAdd %70 %72
f32_4 %74 = OpLoad %66
f32_4 %75 = OpVectorShuffle %74 %73 4 5 6 3
OpStore %66 %75
f32 %76 = OpLoad %26
Output f32* %78 = OpAccessChain %66 %28
OpStore %78 %76
OpReturn
OpFunctionEnd
"
}
}
Program "fp" {
SubProgram "d3d11 hw_tier00 " {
"ps_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float x w
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xw
dcl_output o0.xyzw
dcl_temps 2
sample r0.xyzw, v1.xyxx, t0.xyzw, s0
add r0.w, r0.w, v2.x
add r0.xyz, r0.xyzx, l(-0.5, -0.5, -0.5, 0)
mul r0.w, r0.w, r0.w
mul r1.x, r0.w, r0.w
mad r0.w, r0.w, r1.x, l(-1)
max r0.w, r0.w, l(0)
min r0.w, r0.w, v2.w
mad o0.xyz, r0.xyzx, r0.wwww, l(0.5, 0.5, 0.5, 0)
mov o0.w, r0.w
ret
"
}
SubProgram "d3d11 hw_tier01 " {
"ps_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float x w
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xw
dcl_output o0.xyzw
dcl_temps 2
sample r0.xyzw, v1.xyxx, t0.xyzw, s0
add r0.w, r0.w, v2.x
add r0.xyz, r0.xyzx, l(-0.5, -0.5, -0.5, 0)
mul r0.w, r0.w, r0.w
mul r1.x, r0.w, r0.w
mad r0.w, r0.w, r1.x, l(-1)
max r0.w, r0.w, l(0)
min r0.w, r0.w, v2.w
mad o0.xyz, r0.xyzx, r0.wwww, l(0.5, 0.5, 0.5, 0)
mov o0.w, r0.w
ret
"
}
SubProgram "d3d11 hw_tier02 " {
"ps_4_0
//ShaderDXExporter_Disassembler
//
// Generated by
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float x w
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xw
dcl_output o0.xyzw
dcl_temps 2
sample r0.xyzw, v1.xyxx, t0.xyzw, s0
add r0.w, r0.w, v2.x
add r0.xyz, r0.xyzx, l(-0.5, -0.5, -0.5, 0)
mul r0.w, r0.w, r0.w
mul r1.x, r0.w, r0.w
mad r0.w, r0.w, r1.x, l(-1)
max r0.w, r0.w, l(0)
min r0.w, r0.w, v2.w
mad o0.xyz, r0.xyzx, r0.wwww, l(0.5, 0.5, 0.5, 0)
mov o0.w, r0.w
ret
"
}
SubProgram "glcore hw_tier00 " {
"!!GL3x"
}
SubProgram "glcore hw_tier01 " {
"!!GL3x"
}
SubProgram "glcore hw_tier02 " {
"!!GL3x"
}
SubProgram "vulkan hw_tier00 " {
"spirv"
}
SubProgram "vulkan hw_tier01 " {
"spirv"
}
SubProgram "vulkan hw_tier02 " {
"spirv"
}
}
}
}
}