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