Web: Add separate texture/sampler, exclude *CubeArray*.
Looks like will add about 1K compressed size to executable footprint.
This commit is contained in:
178
Test/baseResults/web.separate.frag.out
Normal file
178
Test/baseResults/web.separate.frag.out
Normal file
@@ -0,0 +1,178 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: Khronos Glslang Reference Front End; 7
|
||||
; Bound: 99
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %main "main" %color %i
|
||||
OpExecutionMode %main OriginUpperLeft
|
||||
OpSource ESSL 310
|
||||
OpName %main "main"
|
||||
OpName %color "color"
|
||||
OpName %t2d "t2d"
|
||||
OpName %s "s"
|
||||
OpName %t3d "t3d"
|
||||
OpName %sA "sA"
|
||||
OpName %sShadow "sShadow"
|
||||
OpName %i "i"
|
||||
OpName %tex2D "tex2D"
|
||||
OpName %texCube "texCube"
|
||||
OpName %tex2DArray "tex2DArray"
|
||||
OpName %itex2D "itex2D"
|
||||
OpName %itex3D "itex3D"
|
||||
OpName %itexCube "itexCube"
|
||||
OpName %itex2DArray "itex2DArray"
|
||||
OpName %utex2D "utex2D"
|
||||
OpName %utex3D "utex3D"
|
||||
OpName %utexCube "utexCube"
|
||||
OpName %utex2DArray "utex2DArray"
|
||||
OpName %tex3D "tex3D"
|
||||
OpDecorate %color Location 0
|
||||
OpDecorate %t2d RelaxedPrecision
|
||||
OpDecorate %t2d DescriptorSet 0
|
||||
OpDecorate %t2d Binding 3
|
||||
OpDecorate %14 RelaxedPrecision
|
||||
OpDecorate %s DescriptorSet 0
|
||||
OpDecorate %s Binding 0
|
||||
OpDecorate %23 RelaxedPrecision
|
||||
OpDecorate %t3d DescriptorSet 0
|
||||
OpDecorate %t3d Binding 4
|
||||
OpDecorate %sA DescriptorSet 0
|
||||
OpDecorate %sA Binding 2
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %sShadow DescriptorSet 0
|
||||
OpDecorate %sShadow Binding 1
|
||||
OpDecorate %i RelaxedPrecision
|
||||
OpDecorate %i Flat
|
||||
OpDecorate %i Location 0
|
||||
OpDecorate %tex2D RelaxedPrecision
|
||||
OpDecorate %tex2D DescriptorSet 0
|
||||
OpDecorate %tex2D Binding 5
|
||||
OpDecorate %texCube RelaxedPrecision
|
||||
OpDecorate %texCube DescriptorSet 0
|
||||
OpDecorate %texCube Binding 6
|
||||
OpDecorate %tex2DArray DescriptorSet 0
|
||||
OpDecorate %tex2DArray Binding 15
|
||||
OpDecorate %itex2D DescriptorSet 0
|
||||
OpDecorate %itex2D Binding 16
|
||||
OpDecorate %itex3D DescriptorSet 0
|
||||
OpDecorate %itex3D Binding 17
|
||||
OpDecorate %itexCube DescriptorSet 0
|
||||
OpDecorate %itexCube Binding 18
|
||||
OpDecorate %itex2DArray DescriptorSet 0
|
||||
OpDecorate %itex2DArray Binding 19
|
||||
OpDecorate %utex2D DescriptorSet 0
|
||||
OpDecorate %utex2D Binding 20
|
||||
OpDecorate %utex3D DescriptorSet 0
|
||||
OpDecorate %utex3D Binding 21
|
||||
OpDecorate %utexCube DescriptorSet 0
|
||||
OpDecorate %utexCube Binding 22
|
||||
OpDecorate %utex2DArray DescriptorSet 0
|
||||
OpDecorate %utex2DArray Binding 23
|
||||
OpDecorate %tex3D DescriptorSet 0
|
||||
OpDecorate %tex3D Binding 36
|
||||
%void = OpTypeVoid
|
||||
%3 = OpTypeFunction %void
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%color = OpVariable %_ptr_Output_v4float Output
|
||||
%10 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%11 = OpTypeSampledImage %10
|
||||
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
|
||||
%t2d = OpVariable %_ptr_UniformConstant_11 UniformConstant
|
||||
%15 = OpTypeSampler
|
||||
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
|
||||
%s = OpVariable %_ptr_UniformConstant_15 UniformConstant
|
||||
%v2float = OpTypeVector %float 2
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
%22 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
||||
%24 = OpTypeImage %float 3D 0 0 0 1 Unknown
|
||||
%25 = OpTypeSampledImage %24
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_4 = OpConstant %uint 4
|
||||
%_arr_25_uint_4 = OpTypeArray %25 %uint_4
|
||||
%_ptr_UniformConstant__arr_25_uint_4 = OpTypePointer UniformConstant %_arr_25_uint_4
|
||||
%t3d = OpVariable %_ptr_UniformConstant__arr_25_uint_4 UniformConstant
|
||||
%int = OpTypeInt 32 1
|
||||
%int_1 = OpConstant %int 1
|
||||
%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
|
||||
%_arr_15_uint_4 = OpTypeArray %15 %uint_4
|
||||
%_ptr_UniformConstant__arr_15_uint_4 = OpTypePointer UniformConstant %_arr_15_uint_4
|
||||
%sA = OpVariable %_ptr_UniformConstant__arr_15_uint_4 UniformConstant
|
||||
%int_2 = OpConstant %int 2
|
||||
%v3float = OpTypeVector %float 3
|
||||
%44 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
|
||||
%sShadow = OpVariable %_ptr_UniformConstant_15 UniformConstant
|
||||
%_ptr_Input_int = OpTypePointer Input %int
|
||||
%i = OpVariable %_ptr_Input_int Input
|
||||
%tex2D = OpVariable %_ptr_UniformConstant_11 UniformConstant
|
||||
%58 = OpTypeImage %float Cube 0 0 0 1 Unknown
|
||||
%59 = OpTypeSampledImage %58
|
||||
%_ptr_UniformConstant_59 = OpTypePointer UniformConstant %59
|
||||
%texCube = OpVariable %_ptr_UniformConstant_59 UniformConstant
|
||||
%62 = OpTypeImage %float 2D 0 1 0 1 Unknown
|
||||
%63 = OpTypeSampledImage %62
|
||||
%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63
|
||||
%tex2DArray = OpVariable %_ptr_UniformConstant_63 UniformConstant
|
||||
%66 = OpTypeImage %int 2D 0 0 0 1 Unknown
|
||||
%67 = OpTypeSampledImage %66
|
||||
%_ptr_UniformConstant_67 = OpTypePointer UniformConstant %67
|
||||
%itex2D = OpVariable %_ptr_UniformConstant_67 UniformConstant
|
||||
%70 = OpTypeImage %int 3D 0 0 0 1 Unknown
|
||||
%71 = OpTypeSampledImage %70
|
||||
%_ptr_UniformConstant_71 = OpTypePointer UniformConstant %71
|
||||
%itex3D = OpVariable %_ptr_UniformConstant_71 UniformConstant
|
||||
%74 = OpTypeImage %int Cube 0 0 0 1 Unknown
|
||||
%75 = OpTypeSampledImage %74
|
||||
%_ptr_UniformConstant_75 = OpTypePointer UniformConstant %75
|
||||
%itexCube = OpVariable %_ptr_UniformConstant_75 UniformConstant
|
||||
%78 = OpTypeImage %int 2D 0 1 0 1 Unknown
|
||||
%79 = OpTypeSampledImage %78
|
||||
%_ptr_UniformConstant_79 = OpTypePointer UniformConstant %79
|
||||
%itex2DArray = OpVariable %_ptr_UniformConstant_79 UniformConstant
|
||||
%82 = OpTypeImage %uint 2D 0 0 0 1 Unknown
|
||||
%83 = OpTypeSampledImage %82
|
||||
%_ptr_UniformConstant_83 = OpTypePointer UniformConstant %83
|
||||
%utex2D = OpVariable %_ptr_UniformConstant_83 UniformConstant
|
||||
%86 = OpTypeImage %uint 3D 0 0 0 1 Unknown
|
||||
%87 = OpTypeSampledImage %86
|
||||
%_ptr_UniformConstant_87 = OpTypePointer UniformConstant %87
|
||||
%utex3D = OpVariable %_ptr_UniformConstant_87 UniformConstant
|
||||
%90 = OpTypeImage %uint Cube 0 0 0 1 Unknown
|
||||
%91 = OpTypeSampledImage %90
|
||||
%_ptr_UniformConstant_91 = OpTypePointer UniformConstant %91
|
||||
%utexCube = OpVariable %_ptr_UniformConstant_91 UniformConstant
|
||||
%94 = OpTypeImage %uint 2D 0 1 0 1 Unknown
|
||||
%95 = OpTypeSampledImage %94
|
||||
%_ptr_UniformConstant_95 = OpTypePointer UniformConstant %95
|
||||
%utex2DArray = OpVariable %_ptr_UniformConstant_95 UniformConstant
|
||||
%tex3D = OpVariable %_ptr_UniformConstant_25 UniformConstant
|
||||
%main = OpFunction %void None %3
|
||||
%5 = OpLabel
|
||||
%14 = OpLoad %11 %t2d
|
||||
%18 = OpLoad %15 %s
|
||||
%19 = OpSampledImage %11 %14 %18
|
||||
%23 = OpImageSampleImplicitLod %v4float %19 %22
|
||||
OpStore %color %23
|
||||
%34 = OpAccessChain %_ptr_UniformConstant_25 %t3d %int_1
|
||||
%35 = OpLoad %25 %34
|
||||
%40 = OpAccessChain %_ptr_UniformConstant_15 %sA %int_2
|
||||
%41 = OpLoad %15 %40
|
||||
%42 = OpSampledImage %25 %35 %41
|
||||
%45 = OpImageSampleImplicitLod %v4float %42 %44
|
||||
%46 = OpLoad %v4float %color
|
||||
%47 = OpFAdd %v4float %46 %45
|
||||
OpStore %color %47
|
||||
%48 = OpLoad %11 %t2d
|
||||
%49 = OpLoad %15 %s
|
||||
%50 = OpSampledImage %11 %48 %49
|
||||
%51 = OpImageSampleImplicitLod %v4float %50 %22
|
||||
%52 = OpLoad %v4float %color
|
||||
%53 = OpFAdd %v4float %52 %51
|
||||
OpStore %color %53
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
63
Test/web.separate.frag
Normal file
63
Test/web.separate.frag
Normal file
@@ -0,0 +1,63 @@
|
||||
#version 310 es
|
||||
|
||||
precision highp sampler;
|
||||
precision highp samplerShadow;
|
||||
precision highp texture2DArray;
|
||||
precision highp itexture2D;
|
||||
precision highp itexture3D;
|
||||
precision highp itextureCube;
|
||||
precision highp itexture2DArray;
|
||||
precision highp utexture2D;
|
||||
precision highp utexture3D;
|
||||
precision highp utextureCube;
|
||||
precision highp utexture2DArray;
|
||||
precision highp texture3D;
|
||||
precision highp float;
|
||||
|
||||
layout(binding = 0) uniform sampler s;
|
||||
layout(binding = 1) uniform samplerShadow sShadow;
|
||||
layout(binding = 2) uniform sampler sA[4];
|
||||
layout(binding = 3) uniform texture2D t2d;
|
||||
layout(binding = 4) uniform texture3D t3d[4];
|
||||
layout(location = 0) flat in int i;
|
||||
|
||||
layout(location = 0) out vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
color = texture(sampler2D(t2d, s), vec2(0.5));
|
||||
color += texture(sampler3D(t3d[1], sA[2]), vec3(0.5));
|
||||
color += texture(sampler2D(t2d, s), vec2(0.5));
|
||||
}
|
||||
|
||||
layout(binding = 5) uniform texture2D tex2D;
|
||||
layout(binding = 6) uniform textureCube texCube;
|
||||
layout(binding = 15) uniform texture2DArray tex2DArray;
|
||||
layout(binding = 16) uniform itexture2D itex2D;
|
||||
layout(binding = 17) uniform itexture3D itex3D;
|
||||
layout(binding = 18) uniform itextureCube itexCube;
|
||||
layout(binding = 19) uniform itexture2DArray itex2DArray;
|
||||
layout(binding = 20) uniform utexture2D utex2D;
|
||||
layout(binding = 21) uniform utexture3D utex3D;
|
||||
layout(binding = 22) uniform utextureCube utexCube;
|
||||
layout(binding = 23) uniform utexture2DArray utex2DArray;
|
||||
layout(binding = 36) uniform texture3D tex3D;
|
||||
|
||||
void foo()
|
||||
{
|
||||
sampler2D (tex2D, s);
|
||||
samplerCube (texCube, s);
|
||||
samplerCubeShadow (texCube, sShadow);
|
||||
sampler2DArray (tex2DArray, s);
|
||||
sampler2DArrayShadow (tex2DArray, sShadow);
|
||||
isampler2D (itex2D, s);
|
||||
isampler3D (itex3D, s);
|
||||
isamplerCube (itexCube, s);
|
||||
isampler2DArray (itex2DArray, s);
|
||||
usampler2D (utex2D, s);
|
||||
usampler3D (utex3D, s);
|
||||
usamplerCube (utexCube, s);
|
||||
usampler2DArray (utex2DArray, s);
|
||||
sampler3D (tex3D, s);
|
||||
sampler2DShadow (tex2D, sShadow);
|
||||
}
|
||||
@@ -5,3 +5,4 @@ web.controlFlow.frag
|
||||
web.operations.frag
|
||||
web.texture.frag
|
||||
web.array.frag
|
||||
web.separate.frag
|
||||
|
||||
Reference in New Issue
Block a user