xref: /aosp_15_r20/external/skia/tests/sksl/shared/SampleMask.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1static uint gl_SampleMaskIn[1];
2static uint gl_SampleMask[1];
3static float4 sk_FragColor;
4
5struct SPIRV_Cross_Input
6{
7    uint gl_SampleMaskIn : SV_Coverage;
8};
9
10struct SPIRV_Cross_Output
11{
12    float4 sk_FragColor : SV_Target0;
13    uint gl_SampleMask : SV_Coverage;
14};
15
16void clear_samplemask_v()
17{
18    gl_SampleMask[0] = 0u;
19}
20
21void reset_samplemask_v()
22{
23    gl_SampleMask[0] = uint(gl_SampleMaskIn[0]);
24}
25
26float4 samplemaskin_as_color_h4()
27{
28    return float(uint(gl_SampleMaskIn[0])).xxxx;
29}
30
31void frag_main()
32{
33    clear_samplemask_v();
34    reset_samplemask_v();
35    gl_SampleMask[0] = 4294967295u;
36    sk_FragColor = samplemaskin_as_color_h4() * 0.00390625f;
37}
38
39SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
40{
41    gl_SampleMaskIn[0] = stage_input.gl_SampleMaskIn;
42    frag_main();
43    SPIRV_Cross_Output stage_output;
44    stage_output.gl_SampleMask = gl_SampleMask[0];
45    stage_output.sk_FragColor = sk_FragColor;
46    return stage_output;
47}
48