Skip to content

Commit 3be76dc

Browse files
committed
Enable WebGPU in renderer worker
Thread the enableWebGPU flag from getDocument() through WorkerTransport and InternalRenderTask to the renderer worker's InitializeGraphics handler, where it triggers GPU device initialization.
1 parent 8985b28 commit 3be76dc

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/display/api.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ function getDocument(src = {}) {
462462
pdfBug,
463463
styleElement,
464464
enableHWA,
465+
enableWebGPU,
465466
loadingParams: {
466467
disableAutoFetch,
467468
enableXfa,
@@ -1662,6 +1663,7 @@ class PDFPageProxy {
16621663
pdfBug: this._pdfBug,
16631664
pageColors,
16641665
enableHWA: this._transport.enableHWA,
1666+
enableWebGPU: this._transport.enableWebGPU,
16651667
operationsFilter,
16661668
rendererHandler:
16671669
shouldRecordOperations || shouldRecordImages
@@ -2672,6 +2674,7 @@ class WorkerTransport {
26722674
styleElement: params.styleElement,
26732675
});
26742676
this.enableHWA = params.enableHWA;
2677+
this.enableWebGPU = params.enableWebGPU === true;
26752678
this.rendererHandler = params.rendererHandler || null;
26762679
this.loadingParams = params.loadingParams;
26772680
this._params = params;
@@ -3468,6 +3471,7 @@ class InternalRenderTask {
34683471
pdfBug = false,
34693472
pageColors = null,
34703473
enableHWA = false,
3474+
enableWebGPU = false,
34713475
operationsFilter = null,
34723476
rendererHandler = null,
34733477
}) {
@@ -3500,6 +3504,7 @@ class InternalRenderTask {
35003504
this._canvas = params.canvas;
35013505
this._canvasContext = params.canvas ? null : params.canvasContext;
35023506
this._enableHWA = enableHWA;
3507+
this._enableWebGPU = enableWebGPU;
35033508
this._dependencyTracker = params.dependencyTracker;
35043509
this._imagesTracker = params.imagesTracker;
35053510
this._operationsFilter = operationsFilter;
@@ -3632,6 +3637,7 @@ class InternalRenderTask {
36323637
pageIndex: this._pageIndex,
36333638
renderTaskId: this._renderTaskId,
36343639
enableHWA: this._enableHWA,
3640+
enableWebGPU: this._enableWebGPU,
36353641
optionalContentConfigData,
36363642
optionalContentConfigState,
36373643
optionalContentConfigRenderingIntent:

src/display/renderer_worker.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import { CanvasGraphics } from "./canvas.js";
1717
import { FontLoader } from "./font_loader.js";
18+
import { initGPU } from "./webgpu.js";
1819
import { isNodeJS } from "../shared/util.js";
1920
import { MessageHandler } from "../shared/message_handler.js";
2021
import { ObjectHandler } from "./object_handler.js";
@@ -170,6 +171,7 @@ class RendererMessageHandler {
170171
pageIndex,
171172
renderTaskId = pageIndex,
172173
enableHWA = false,
174+
enableWebGPU = false,
173175
optionalContentConfigData,
174176
optionalContentConfigState,
175177
optionalContentConfigRenderingIntent,
@@ -179,6 +181,9 @@ class RendererMessageHandler {
179181
transparency,
180182
background,
181183
} = data;
184+
if (enableWebGPU) {
185+
await initGPU();
186+
}
182187
const objs = this.#getPageObjs(pageIndex);
183188
const optionalContentConfig = new OptionalContentConfig(
184189
optionalContentConfigData,

0 commit comments

Comments
 (0)