Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-04-27 10:34:13 +0300
committerHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-04-27 11:06:30 +0300
commit0280800a8f55ed4140dffd8e5c5fd15a327ff38e (patch)
tree5124f23c23fcc2e861e1fdab135c8f5a91971369 /shaders
parenta090907607f91af3939fa4174067eb43c09247d4 (diff)
Fix case where SampledImage would get flushed to temporary.
Diffstat (limited to 'shaders')
-rw-r--r--shaders/asm/frag/combined-sampler-reuse.vk.asm.frag57
1 files changed, 57 insertions, 0 deletions
diff --git a/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag b/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag
new file mode 100644
index 00000000..ba2f95b2
--- /dev/null
+++ b/shaders/asm/frag/combined-sampler-reuse.vk.asm.frag
@@ -0,0 +1,57 @@
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 6
+; Bound: 36
+; Schema: 0
+ OpCapability Shader
+ %1 = OpExtInstImport "GLSL.std.450"
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main" %FragColor %vUV
+ OpExecutionMode %main OriginUpperLeft
+ OpSource GLSL 450
+ OpName %main "main"
+ OpName %FragColor "FragColor"
+ OpName %uTex "uTex"
+ OpName %uSampler "uSampler"
+ OpName %vUV "vUV"
+ OpDecorate %FragColor Location 0
+ OpDecorate %uTex DescriptorSet 0
+ OpDecorate %uTex Binding 1
+ OpDecorate %uSampler DescriptorSet 0
+ OpDecorate %uSampler Binding 0
+ OpDecorate %vUV Location 0
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %FragColor = OpVariable %_ptr_Output_v4float Output
+ %10 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+ %uTex = OpVariable %_ptr_UniformConstant_10 UniformConstant
+ %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+ %uSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
+ %18 = OpTypeSampledImage %10
+ %v2float = OpTypeVector %float 2
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+ %vUV = OpVariable %_ptr_Input_v2float Input
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %32 = OpConstantComposite %v2int %int_1 %int_1
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ %13 = OpLoad %10 %uTex
+ %17 = OpLoad %14 %uSampler
+ %19 = OpSampledImage %18 %13 %17
+ %23 = OpLoad %v2float %vUV
+ %24 = OpImageSampleImplicitLod %v4float %19 %23
+ OpStore %FragColor %24
+ %28 = OpLoad %v2float %vUV
+ %33 = OpImageSampleImplicitLod %v4float %19 %28 ConstOffset %32
+ %34 = OpLoad %v4float %FragColor
+ %35 = OpFAdd %v4float %34 %33
+ OpStore %FragColor %35
+ OpReturn
+ OpFunctionEnd