blob: b4aebc070845fb35b936df07616c0ca608082944 [file] [log] [blame]
layout(set = 0, binding = 0) uniform sampler s;
layout(set = 0, binding = 1) uniform texture2D t;
layout(set = 0, binding = 2) uniform sampler2D cs;
// TODO(skia:13876): This change currently exercises the opaque function parameter pointer
// semantics in the SPIR-V backend but uses sampler and texture2D type uniforms which are not
// supported in Metal. After the proposed changes in skia:13876 this test will be rewritten and work
// on all backends.
layout(location = 1) in float2 c;
noinline half4 combined_sampler_only_helper(sampler2D cs_param) {
return sample(cs_param, c);
}
noinline half4 bottom_helper(texture2D t_param, sampler s_param) {
return sample(makeSampler2D(t_param, s_param), c);
}
noinline half4 helpers_helper(texture2D t_param, sampler s_param) {
half4 color = sample(makeSampler2D(t_param, s_param), c);
return color.bgra * bottom_helper(t_param, s_param);
}
noinline half4 helper(texture2D t_param, sampler s_param) {
return helpers_helper(t_param, s_param);
}
void main() {
sk_FragColor = helper(t, s) + combined_sampler_only_helper(cs);
}