Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
FS_53660ab052a7b392b29fc453fb3d0e6f66eb4c8a
Created
11 months ago
Diff never expires
Clear
Export
Share
Explain
38 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
119 lines
Copy
44 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
124 lines
Copy
; SPIR-V
; SPIR-V
; Version: 1.3
; Version: 1.3
; Generator: Khronos; 0
; Generator: Khronos; 0
Copy
Copied
Copy
Copied
; Bound:
70
; Bound:
75
; Schema: 0
; Schema: 0
OpCapability Shader
OpCapability Shader
OpCapability ImageQuery
OpCapability ImageQuery
OpCapability DerivativeControl
OpCapability DerivativeControl
%1 = OpExtInstImport "GLSL.std.450"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %v1 %v2 %o0
OpEntryPoint Fragment %main "main" %v1 %v2 %o0
OpExecutionMode %main OriginUpperLeft
OpExecutionMode %main OriginUpperLeft
%3 = OpString "FS_53660ab052a7b392b29fc453fb3d0e6f66eb4c8a"
%3 = OpString "FS_53660ab052a7b392b29fc453fb3d0e6f66eb4c8a"
OpSource Unknown 0 %3
OpSource Unknown 0 %3
OpName %shader_in "shader_in"
OpName %shader_in "shader_in"
OpName %ps_main "ps_main"
OpName %ps_main "ps_main"
OpName %s0 "s0"
OpName %s0 "s0"
OpName %t0 "t0"
OpName %t0 "t0"
OpName %t0_bound "t0_bound"
OpName %t0_bound "t0_bound"
OpName %v1 "v1"
OpName %v1 "v1"
OpName %v2 "v2"
OpName %v2 "v2"
OpName %o0 "o0"
OpName %o0 "o0"
OpName %r0 "r0"
OpName %r0 "r0"
OpName %omap0_r "omap0.r"
OpName %omap0_r "omap0.r"
OpName %omap0_g "omap0.g"
OpName %omap0_g "omap0.g"
OpName %omap0_b "omap0.b"
OpName %omap0_b "omap0.b"
OpName %omap0_a "omap0.a"
OpName %omap0_a "omap0.a"
OpName %main "main"
OpName %main "main"
OpDecorate %s0 DescriptorSet 0
OpDecorate %s0 DescriptorSet 0
OpDecorate %s0 Binding 3
OpDecorate %s0 Binding 3
OpDecorate %t0 DescriptorSet 0
OpDecorate %t0 DescriptorSet 0
OpDecorate %t0 Binding 4
OpDecorate %t0 Binding 4
OpDecorate %t0_bound SpecId 4
OpDecorate %t0_bound SpecId 4
OpDecorate %v1 Location 1
OpDecorate %v1 Location 1
OpDecorate %v2 Location 2
OpDecorate %v2 Location 2
OpDecorate %o0 Location 0
OpDecorate %o0 Location 0
OpDecorate %o0 Index 0
OpDecorate %o0 Index 0
OpDecorate %omap0_r SpecId 1216
OpDecorate %omap0_r SpecId 1216
OpDecorate %omap0_g SpecId 1217
OpDecorate %omap0_g SpecId 1217
OpDecorate %omap0_b SpecId 1218
OpDecorate %omap0_b SpecId 1218
OpDecorate %omap0_a SpecId 1219
OpDecorate %omap0_a SpecId 1219
%uint = OpTypeInt 32 0
%uint = OpTypeInt 32 0
%uint_3 = OpConstant %uint 3
%uint_3 = OpConstant %uint 3
%float = OpTypeFloat 32
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%v4float = OpTypeVector %float 4
%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3
%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3
%_ptr_Private__arr_v4float_uint_3 = OpTypePointer Private %_arr_v4float_uint_3
%_ptr_Private__arr_v4float_uint_3 = OpTypePointer Private %_arr_v4float_uint_3
%void = OpTypeVoid
%void = OpTypeVoid
%13 = OpTypeFunction %void
%13 = OpTypeFunction %void
%15 = OpTypeSampler
%15 = OpTypeSampler
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
%18 = OpTypeImage %float 2D 0 0 0 1 Unknown
%18 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
%bool = OpTypeBool
%bool = OpTypeBool
%t0_bound = OpSpecConstantTrue %bool
%t0_bound = OpSpecConstantTrue %bool
%23 = OpTypeImage %float 2D 1 0 0 1 Unknown
%23 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_Input_v4float = OpTypePointer Input %v4float
%_ptr_Input_v4float = OpTypePointer Input %v4float
%v2float = OpTypeVector %float 2
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%_ptr_Input_v2float = OpTypePointer Input %v2float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%int = OpTypeInt 32 1
%int = OpTypeInt 32 1
%int_2 = OpConstant %int 2
%int_2 = OpConstant %int 2
%_ptr_Private_v4float = OpTypePointer Private %v4float
%_ptr_Private_v4float = OpTypePointer Private %v4float
%38 = OpTypeSampledImage %18
%38 = OpTypeSampledImage %18
Copy
Copied
Copy
Copied
%float_0 = OpConstant %float 0
%44 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
%v4bool = OpTypeVector %bool 4
%46 = OpConstantComposite %v4bool %t0_bound %t0_bound %t0_bound %t0_bound
%int_1 = OpConstant %int 1
%int_1 = OpConstant %int 1
%omap0_r = OpSpecConstant %uint 0
%omap0_r = OpSpecConstant %uint 0
%omap0_g = OpSpecConstant %uint 1
%omap0_g = OpSpecConstant %uint 1
%omap0_b = OpSpecConstant %uint 2
%omap0_b = OpSpecConstant %uint 2
%omap0_a = OpSpecConstant %uint 3
%omap0_a = OpSpecConstant %uint 3
%shader_in = OpVariable %_ptr_Private__arr_v4float_uint_3 Private
%shader_in = OpVariable %_ptr_Private__arr_v4float_uint_3 Private
%s0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
%s0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
%t0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
%t0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
%v1 = OpVariable %_ptr_Input_v4float Input
%v1 = OpVariable %_ptr_Input_v4float Input
%v2 = OpVariable %_ptr_Input_v2float Input
%v2 = OpVariable %_ptr_Input_v2float Input
%o0 = OpVariable %_ptr_Output_v4float Output
%o0 = OpVariable %_ptr_Output_v4float Output
%r0 = OpVariable %_ptr_Private_v4float Private
%r0 = OpVariable %_ptr_Private_v4float Private
%ps_main = OpFunction %void None %13
%ps_main = OpFunction %void None %13
%14 = OpLabel
%14 = OpLabel
%34 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2
%34 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2
%35 = OpLoad %v4float %34
%35 = OpLoad %v4float %34
%36 = OpVectorShuffle %v4float %35 %35 0 1 0 0
%36 = OpVectorShuffle %v4float %35 %35 0 1 0 0
%37 = OpVectorShuffle %v2float %36 %36 0 1
%37 = OpVectorShuffle %v2float %36 %36 0 1
%39 = OpLoad %15 %s0
%39 = OpLoad %15 %s0
%40 = OpLoad %18 %t0
%40 = OpLoad %18 %t0
%41 = OpSampledImage %38 %40 %39
%41 = OpSampledImage %38 %40 %39
%42 = OpImageSampleImplicitLod %v4float %41 %37
%42 = OpImageSampleImplicitLod %v4float %41 %37
Copy
Copied
Copy
Copied
OpStore %r0 %
42
%47 = OpSelect %v4float %46 %42 %44
%
44
= OpLoad %v4float %r0
OpStore %r0 %
47
%
45
= OpLoad %v4float %r0
%
49
= OpLoad %v4float %r0
%
46
= OpFAdd %v4float %
44 %45
%
50
= OpLoad %v4float %r0
OpStore %r0 %
46
%
51
= OpFAdd %v4float %
49 %50
%
47
= OpLoad %v4float %r0
OpStore %r0 %
51
%
49
= OpAccessChain %_ptr_Private_v4float %shader_in %int_1
%
52
= OpLoad %v4float %r0
%
50
= OpLoad %v4float %
49
%
54
= OpAccessChain %_ptr_Private_v4float %shader_in %int_1
%
51
= OpFMul %v4float %
47 %50
%
55
= OpLoad %v4float %
54
OpStore %o0 %
51
%
56
= OpFMul %v4float %
52 %55
OpStore %o0 %
56
OpReturn
OpReturn
OpFunctionEnd
OpFunctionEnd
%main = OpFunction %void None %13
%main = OpFunction %void None %13
Copy
Copied
Copy
Copied
%
52
= OpLabel
%
57
= OpLabel
%
53
= OpLoad %v4float %v1
%
58
= OpLoad %v4float %v1
%
54
= OpAccessChain %_ptr_Private_v4float %shader_in %int_1
%
59
= OpAccessChain %_ptr_Private_v4float %shader_in %int_1
OpStore %
54 %53
OpStore %
59 %58
%
55
= OpLoad %v2float %v2
%
60
= OpLoad %v2float %v2
%
56
= OpAccessChain %_ptr_Private_v4float %shader_in %int_2
%
61
= OpAccessChain %_ptr_Private_v4float %shader_in %int_2
%
57
= OpLoad %v4float %
56
%
62
= OpLoad %v4float %
61
%
58
= OpVectorShuffle %v4float %
57 %55
4 5 2 3
%
63
= OpVectorShuffle %v4float %
62 %60
4 5 2 3
OpStore %
56 %58
OpStore %
61 %63
%
59
= OpFunctionCall %void %ps_main
%
64
= OpFunctionCall %void %ps_main
%
60
= OpLoad %v4float %o0
%
65
= OpLoad %v4float %o0
%
62
= OpVectorExtractDynamic %float %
60
%omap0_r
%
67
= OpVectorExtractDynamic %float %
65
%omap0_r
%
64
= OpVectorExtractDynamic %float %
60
%omap0_g
%
69
= OpVectorExtractDynamic %float %
65
%omap0_g
%
66
= OpVectorExtractDynamic %float %
60
%omap0_b
%
71
= OpVectorExtractDynamic %float %
65
%omap0_b
%
68
= OpVectorExtractDynamic %float %
60
%omap0_a
%
73
= OpVectorExtractDynamic %float %
65
%omap0_a
%
69
= OpCompositeConstruct %v4float %
62 %64 %66 %68
%
74
= OpCompositeConstruct %v4float %
67 %69 %71 %73
OpStore %o0 %
69
OpStore %o0 %
74
OpReturn
OpReturn
OpFunctionEnd
OpFunctionEnd
Saved diffs
Original text
Open file
; SPIR-V ; Version: 1.3 ; Generator: Khronos; 0 ; Bound: 70 ; Schema: 0 OpCapability Shader OpCapability ImageQuery OpCapability DerivativeControl %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %v1 %v2 %o0 OpExecutionMode %main OriginUpperLeft %3 = OpString "FS_53660ab052a7b392b29fc453fb3d0e6f66eb4c8a" OpSource Unknown 0 %3 OpName %shader_in "shader_in" OpName %ps_main "ps_main" OpName %s0 "s0" OpName %t0 "t0" OpName %t0_bound "t0_bound" OpName %v1 "v1" OpName %v2 "v2" OpName %o0 "o0" OpName %r0 "r0" OpName %omap0_r "omap0.r" OpName %omap0_g "omap0.g" OpName %omap0_b "omap0.b" OpName %omap0_a "omap0.a" OpName %main "main" OpDecorate %s0 DescriptorSet 0 OpDecorate %s0 Binding 3 OpDecorate %t0 DescriptorSet 0 OpDecorate %t0 Binding 4 OpDecorate %t0_bound SpecId 4 OpDecorate %v1 Location 1 OpDecorate %v2 Location 2 OpDecorate %o0 Location 0 OpDecorate %o0 Index 0 OpDecorate %omap0_r SpecId 1216 OpDecorate %omap0_g SpecId 1217 OpDecorate %omap0_b SpecId 1218 OpDecorate %omap0_a SpecId 1219 %uint = OpTypeInt 32 0 %uint_3 = OpConstant %uint 3 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 %_ptr_Private__arr_v4float_uint_3 = OpTypePointer Private %_arr_v4float_uint_3 %void = OpTypeVoid %13 = OpTypeFunction %void %15 = OpTypeSampler %_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 %18 = OpTypeImage %float 2D 0 0 0 1 Unknown %_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 %bool = OpTypeBool %t0_bound = OpSpecConstantTrue %bool %23 = OpTypeImage %float 2D 1 0 0 1 Unknown %_ptr_Input_v4float = OpTypePointer Input %v4float %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %_ptr_Output_v4float = OpTypePointer Output %v4float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %_ptr_Private_v4float = OpTypePointer Private %v4float %38 = OpTypeSampledImage %18 %int_1 = OpConstant %int 1 %omap0_r = OpSpecConstant %uint 0 %omap0_g = OpSpecConstant %uint 1 %omap0_b = OpSpecConstant %uint 2 %omap0_a = OpSpecConstant %uint 3 %shader_in = OpVariable %_ptr_Private__arr_v4float_uint_3 Private %s0 = OpVariable %_ptr_UniformConstant_15 UniformConstant %t0 = OpVariable %_ptr_UniformConstant_18 UniformConstant %v1 = OpVariable %_ptr_Input_v4float Input %v2 = OpVariable %_ptr_Input_v2float Input %o0 = OpVariable %_ptr_Output_v4float Output %r0 = OpVariable %_ptr_Private_v4float Private %ps_main = OpFunction %void None %13 %14 = OpLabel %34 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %35 = OpLoad %v4float %34 %36 = OpVectorShuffle %v4float %35 %35 0 1 0 0 %37 = OpVectorShuffle %v2float %36 %36 0 1 %39 = OpLoad %15 %s0 %40 = OpLoad %18 %t0 %41 = OpSampledImage %38 %40 %39 %42 = OpImageSampleImplicitLod %v4float %41 %37 OpStore %r0 %42 %44 = OpLoad %v4float %r0 %45 = OpLoad %v4float %r0 %46 = OpFAdd %v4float %44 %45 OpStore %r0 %46 %47 = OpLoad %v4float %r0 %49 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %50 = OpLoad %v4float %49 %51 = OpFMul %v4float %47 %50 OpStore %o0 %51 OpReturn OpFunctionEnd %main = OpFunction %void None %13 %52 = OpLabel %53 = OpLoad %v4float %v1 %54 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 OpStore %54 %53 %55 = OpLoad %v2float %v2 %56 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %57 = OpLoad %v4float %56 %58 = OpVectorShuffle %v4float %57 %55 4 5 2 3 OpStore %56 %58 %59 = OpFunctionCall %void %ps_main %60 = OpLoad %v4float %o0 %62 = OpVectorExtractDynamic %float %60 %omap0_r %64 = OpVectorExtractDynamic %float %60 %omap0_g %66 = OpVectorExtractDynamic %float %60 %omap0_b %68 = OpVectorExtractDynamic %float %60 %omap0_a %69 = OpCompositeConstruct %v4float %62 %64 %66 %68 OpStore %o0 %69 OpReturn OpFunctionEnd
Changed text
Open file
; SPIR-V ; Version: 1.3 ; Generator: Khronos; 0 ; Bound: 75 ; Schema: 0 OpCapability Shader OpCapability ImageQuery OpCapability DerivativeControl %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %v1 %v2 %o0 OpExecutionMode %main OriginUpperLeft %3 = OpString "FS_53660ab052a7b392b29fc453fb3d0e6f66eb4c8a" OpSource Unknown 0 %3 OpName %shader_in "shader_in" OpName %ps_main "ps_main" OpName %s0 "s0" OpName %t0 "t0" OpName %t0_bound "t0_bound" OpName %v1 "v1" OpName %v2 "v2" OpName %o0 "o0" OpName %r0 "r0" OpName %omap0_r "omap0.r" OpName %omap0_g "omap0.g" OpName %omap0_b "omap0.b" OpName %omap0_a "omap0.a" OpName %main "main" OpDecorate %s0 DescriptorSet 0 OpDecorate %s0 Binding 3 OpDecorate %t0 DescriptorSet 0 OpDecorate %t0 Binding 4 OpDecorate %t0_bound SpecId 4 OpDecorate %v1 Location 1 OpDecorate %v2 Location 2 OpDecorate %o0 Location 0 OpDecorate %o0 Index 0 OpDecorate %omap0_r SpecId 1216 OpDecorate %omap0_g SpecId 1217 OpDecorate %omap0_b SpecId 1218 OpDecorate %omap0_a SpecId 1219 %uint = OpTypeInt 32 0 %uint_3 = OpConstant %uint 3 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3 %_ptr_Private__arr_v4float_uint_3 = OpTypePointer Private %_arr_v4float_uint_3 %void = OpTypeVoid %13 = OpTypeFunction %void %15 = OpTypeSampler %_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 %18 = OpTypeImage %float 2D 0 0 0 1 Unknown %_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 %bool = OpTypeBool %t0_bound = OpSpecConstantTrue %bool %23 = OpTypeImage %float 2D 1 0 0 1 Unknown %_ptr_Input_v4float = OpTypePointer Input %v4float %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %_ptr_Output_v4float = OpTypePointer Output %v4float %int = OpTypeInt 32 1 %int_2 = OpConstant %int 2 %_ptr_Private_v4float = OpTypePointer Private %v4float %38 = OpTypeSampledImage %18 %float_0 = OpConstant %float 0 %44 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %v4bool = OpTypeVector %bool 4 %46 = OpConstantComposite %v4bool %t0_bound %t0_bound %t0_bound %t0_bound %int_1 = OpConstant %int 1 %omap0_r = OpSpecConstant %uint 0 %omap0_g = OpSpecConstant %uint 1 %omap0_b = OpSpecConstant %uint 2 %omap0_a = OpSpecConstant %uint 3 %shader_in = OpVariable %_ptr_Private__arr_v4float_uint_3 Private %s0 = OpVariable %_ptr_UniformConstant_15 UniformConstant %t0 = OpVariable %_ptr_UniformConstant_18 UniformConstant %v1 = OpVariable %_ptr_Input_v4float Input %v2 = OpVariable %_ptr_Input_v2float Input %o0 = OpVariable %_ptr_Output_v4float Output %r0 = OpVariable %_ptr_Private_v4float Private %ps_main = OpFunction %void None %13 %14 = OpLabel %34 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %35 = OpLoad %v4float %34 %36 = OpVectorShuffle %v4float %35 %35 0 1 0 0 %37 = OpVectorShuffle %v2float %36 %36 0 1 %39 = OpLoad %15 %s0 %40 = OpLoad %18 %t0 %41 = OpSampledImage %38 %40 %39 %42 = OpImageSampleImplicitLod %v4float %41 %37 %47 = OpSelect %v4float %46 %42 %44 OpStore %r0 %47 %49 = OpLoad %v4float %r0 %50 = OpLoad %v4float %r0 %51 = OpFAdd %v4float %49 %50 OpStore %r0 %51 %52 = OpLoad %v4float %r0 %54 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 %55 = OpLoad %v4float %54 %56 = OpFMul %v4float %52 %55 OpStore %o0 %56 OpReturn OpFunctionEnd %main = OpFunction %void None %13 %57 = OpLabel %58 = OpLoad %v4float %v1 %59 = OpAccessChain %_ptr_Private_v4float %shader_in %int_1 OpStore %59 %58 %60 = OpLoad %v2float %v2 %61 = OpAccessChain %_ptr_Private_v4float %shader_in %int_2 %62 = OpLoad %v4float %61 %63 = OpVectorShuffle %v4float %62 %60 4 5 2 3 OpStore %61 %63 %64 = OpFunctionCall %void %ps_main %65 = OpLoad %v4float %o0 %67 = OpVectorExtractDynamic %float %65 %omap0_r %69 = OpVectorExtractDynamic %float %65 %omap0_g %71 = OpVectorExtractDynamic %float %65 %omap0_b %73 = OpVectorExtractDynamic %float %65 %omap0_a %74 = OpCompositeConstruct %v4float %67 %69 %71 %73 OpStore %o0 %74 OpReturn OpFunctionEnd
Find difference