static const struct NVHeadSurfaceShaderInfo {
    NvBool yuv420              : 1;
    NvBool blend               : 1;
    NvBool offset              : 1;
    NvBool blendAfterWarp      : 1;
    NvBool overlay             : 1;
    NvBool pixelShift          : 1;
    NvBool customSampling      : 1;
    NvBool reversePrime        : 1;
} nvHeadSurfaceShaderInfo[] = {
    { /* 0: nvidia_headsurface_fragment */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 1: nvidia_headsurface_fragment_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 2: nvidia_headsurface_fragment_overlay */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 3: nvidia_headsurface_fragment_overlay_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 4: nvidia_headsurface_fragment_offset */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 5: nvidia_headsurface_fragment_offset_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 6: nvidia_headsurface_fragment_offset_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 7: nvidia_headsurface_fragment_offset_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 8: nvidia_headsurface_fragment_offset_overlay */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 9: nvidia_headsurface_fragment_offset_overlay_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 10: nvidia_headsurface_fragment_offset_overlay_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 11: nvidia_headsurface_fragment_offset_overlay_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 12: nvidia_headsurface_fragment_blend */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 13: nvidia_headsurface_fragment_blend_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 14: nvidia_headsurface_fragment_blend_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 15: nvidia_headsurface_fragment_blend_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 16: nvidia_headsurface_fragment_blend_overlay */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 17: nvidia_headsurface_fragment_blend_overlay_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 18: nvidia_headsurface_fragment_blend_overlay_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 19: nvidia_headsurface_fragment_blend_overlay_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 20: nvidia_headsurface_fragment_blend_offset */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 21: nvidia_headsurface_fragment_blend_offset_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 22: nvidia_headsurface_fragment_blend_offset_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 23: nvidia_headsurface_fragment_blend_offset_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = FALSE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 24: nvidia_headsurface_fragment_blend_offset_overlay */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 25: nvidia_headsurface_fragment_blend_offset_overlay_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 26: nvidia_headsurface_fragment_blend_offset_overlay_swapped */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 27: nvidia_headsurface_fragment_blend_offset_overlay_swapped_customSampling */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = TRUE,
        .offset = TRUE,
        .overlay = TRUE,
        .blendAfterWarp = TRUE,
        .customSampling = TRUE,
        .reversePrime = FALSE,
    },
    { /* 28: nvidia_headsurface_fragment_yuv420 */
        .pixelShift = FALSE,
        .yuv420 = TRUE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 29: nvidia_headsurface_fragment_yuv420_overlay */
        .pixelShift = FALSE,
        .yuv420 = TRUE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 30: nvidia_headsurface_fragment_pixelShift */
        .pixelShift = TRUE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 31: nvidia_headsurface_fragment_overlay_pixelShift */
        .pixelShift = TRUE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = TRUE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = FALSE,
    },
    { /* 32: nvidia_headsurface_fragment_reversePrime */
        .pixelShift = FALSE,
        .yuv420 = FALSE,
        .blend = FALSE,
        .offset = FALSE,
        .overlay = FALSE,
        .blendAfterWarp = FALSE,
        .customSampling = FALSE,
        .reversePrime = TRUE,
    },
};
