test/tint: Show that tint:1183 is fixed
Fixed: tint:1183 Change-Id: I06c8faf37218c58836c2a30d2b1e89abf8dc2be8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108643 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
parent
4b60615eae
commit
279864c774
|
@ -0,0 +1,7 @@
|
|||
@binding(0) @group(0) var t : texture_2d<f32>;
|
||||
@binding(0) @group(1) var s : sampler;
|
||||
|
||||
@fragment
|
||||
fn f() -> @location(0) vec4<f32> {
|
||||
return textureSample(t, s, vec2<f32>(), vec2<i32>(1, 2) + vec2<i32>(3, 4));
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
Texture2D<float4> t : register(t0, space0);
|
||||
SamplerState s : register(s0, space1);
|
||||
|
||||
struct tint_symbol {
|
||||
float4 value : SV_Target0;
|
||||
};
|
||||
|
||||
float4 f_inner() {
|
||||
return t.Sample(s, (0.0f).xx, int2(4, 6));
|
||||
}
|
||||
|
||||
tint_symbol f() {
|
||||
const float4 inner_result = f_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
Texture2D<float4> t : register(t0, space0);
|
||||
SamplerState s : register(s0, space1);
|
||||
|
||||
struct tint_symbol {
|
||||
float4 value : SV_Target0;
|
||||
};
|
||||
|
||||
float4 f_inner() {
|
||||
return t.Sample(s, (0.0f).xx, int2(4, 6));
|
||||
}
|
||||
|
||||
tint_symbol f() {
|
||||
const float4 inner_result = f_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
#version 310 es
|
||||
precision mediump float;
|
||||
|
||||
layout(location = 0) out vec4 value;
|
||||
uniform highp sampler2D t_s;
|
||||
|
||||
vec4 f() {
|
||||
return textureOffset(t_s, vec2(0.0f), ivec2(4, 6));
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec4 inner_result = f();
|
||||
value = inner_result;
|
||||
return;
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct tint_symbol {
|
||||
float4 value [[color(0)]];
|
||||
};
|
||||
|
||||
float4 f_inner(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
|
||||
return tint_symbol_1.sample(tint_symbol_2, float2(0.0f), int2(4, 6));
|
||||
}
|
||||
|
||||
fragment tint_symbol f(texture2d<float, access::sample> tint_symbol_3 [[texture(0)]], sampler tint_symbol_4 [[sampler(0)]]) {
|
||||
float4 const inner_result = f_inner(tint_symbol_3, tint_symbol_4);
|
||||
tint_symbol wrapper_result = {};
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 32
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %f "f" %value
|
||||
OpExecutionMode %f OriginUpperLeft
|
||||
OpName %value "value"
|
||||
OpName %t "t"
|
||||
OpName %s "s"
|
||||
OpName %f_inner "f_inner"
|
||||
OpName %f "f"
|
||||
OpDecorate %value Location 0
|
||||
OpDecorate %t Binding 0
|
||||
OpDecorate %t DescriptorSet 0
|
||||
OpDecorate %s Binding 0
|
||||
OpDecorate %s DescriptorSet 1
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5 = OpConstantNull %v4float
|
||||
%value = OpVariable %_ptr_Output_v4float Output %5
|
||||
%8 = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||
%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
|
||||
%t = OpVariable %_ptr_UniformConstant_8 UniformConstant
|
||||
%11 = OpTypeSampler
|
||||
%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
|
||||
%s = OpVariable %_ptr_UniformConstant_11 UniformConstant
|
||||
%12 = OpTypeFunction %v4float
|
||||
%18 = OpTypeSampledImage %8
|
||||
%v2float = OpTypeVector %float 2
|
||||
%21 = OpConstantNull %v2float
|
||||
%int = OpTypeInt 32 1
|
||||
%v2int = OpTypeVector %int 2
|
||||
%int_4 = OpConstant %int 4
|
||||
%int_6 = OpConstant %int 6
|
||||
%26 = OpConstantComposite %v2int %int_4 %int_6
|
||||
%void = OpTypeVoid
|
||||
%27 = OpTypeFunction %void
|
||||
%f_inner = OpFunction %v4float None %12
|
||||
%14 = OpLabel
|
||||
%16 = OpLoad %11 %s
|
||||
%17 = OpLoad %8 %t
|
||||
%19 = OpSampledImage %18 %17 %16
|
||||
%15 = OpImageSampleImplicitLod %v4float %19 %21 ConstOffset %26
|
||||
OpReturnValue %15
|
||||
OpFunctionEnd
|
||||
%f = OpFunction %void None %27
|
||||
%30 = OpLabel
|
||||
%31 = OpFunctionCall %v4float %f_inner
|
||||
OpStore %value %31
|
||||
OpReturn
|
||||
OpFunctionEnd
|
|
@ -0,0 +1,8 @@
|
|||
@binding(0) @group(0) var t : texture_2d<f32>;
|
||||
|
||||
@binding(0) @group(1) var s : sampler;
|
||||
|
||||
@fragment
|
||||
fn f() -> @location(0) vec4<f32> {
|
||||
return textureSample(t, s, vec2<f32>(), (vec2<i32>(1, 2) + vec2<i32>(3, 4)));
|
||||
}
|
Loading…
Reference in New Issue