Attach (recommended) or Link to PDF file here: [RenderIssue.pdf](https://github.com/mozilla/pdf.js/files/7583657/RenderIssue.pdf)

Configuration:
- Web browser and its version: Chrome Version 96.0.4664.45 (Official Build) (64-bit)
- Operating system and its version: Windows 10 Version 10.0.19042

- PDF.js version: v2.12.201 (If this looks incorrect, please take it from the URL)
- Is a browser extension: No, using https://mozilla.github.io/pdf.js/web/viewer.html

Steps to reproduce the problem:
1. Visit https://mozilla.github.io/pdf.js/web/viewer.html
2. Drop the attached PDF on to the page - [RenderIssue.pdf](https://github.com/mozilla/pdf.js/files/7583657/RenderIssue.pdf)

What is the expected behavior? It should appear as in Adobe Reader - 
![image](https://user-images.githubusercontent.com/94864394/142921185-1ee7034b-1db9-4b6d-ae08-4a9cb4426d70.png)

What went wrong? Some text is blank - 
![image](https://user-images.githubusercontent.com/94864394/142921086-a5ad3ad7-caac-40d8-92d3-684d59aee1f5.png)

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension): N/A

if (subtype === "Luminosity") {
    composeFn = composeSMaskLuminosity;
  } else {
    composeFn = composeSMaskAlpha;
  }
  
  const PIXELS_TO_PROCESS = 1048576;
  const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
  for (let row = 0; row < height; row += chunkSize) {
    const chunkHeight = Math.min(chunkSize, height - row);
    const maskData = maskCtx.getImageData(
      layerOffsetX - maskOffsetX,
      row + (layerOffsetY - maskOffsetY),
      width,
      chunkHeight
    );
    const layerData = layerCtx.getImageData(
      layerOffsetX,
      row + layerOffsetY,
      width,
      chunkHeight
    );
    if (hasBackdrop) {
      composeSMaskBackdrop(maskData.data, r0, g0, b0);
    }
    composeFn(maskData.data, layerData.data, transferMap);
    layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);
  }
}
function composeSMask(ctx, smask, layerCtx, layerBox) {