Skip to content

Commit 94f76db

Browse files
committed
Use GPU in worker rendering
1 parent cd2a37c commit 94f76db

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

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,
@@ -1663,6 +1664,7 @@ class PDFPageProxy {
16631664
pdfBug: this._pdfBug,
16641665
pageColors,
16651666
enableHWA: this._transport.enableHWA,
1667+
enableWebGPU: this._transport.enableWebGPU,
16661668
operationsFilter,
16671669
rendererHandler:
16681670
shouldRecordOperations || shouldRecordImages
@@ -2673,6 +2675,7 @@ class WorkerTransport {
26732675
styleElement: params.styleElement,
26742676
});
26752677
this.enableHWA = params.enableHWA;
2678+
this.enableWebGPU = params.enableWebGPU === true;
26762679
this.rendererHandler = params.rendererHandler || null;
26772680
this.loadingParams = params.loadingParams;
26782681
this._params = params;
@@ -3469,6 +3472,7 @@ class InternalRenderTask {
34693472
pdfBug = false,
34703473
pageColors = null,
34713474
enableHWA = false,
3475+
enableWebGPU = false,
34723476
operationsFilter = null,
34733477
rendererHandler = null,
34743478
}) {
@@ -3501,6 +3505,7 @@ class InternalRenderTask {
35013505
this._canvas = params.canvas;
35023506
this._canvasContext = params.canvas ? null : params.canvasContext;
35033507
this._enableHWA = enableHWA;
3508+
this._enableWebGPU = enableWebGPU;
35043509
this._dependencyTracker = params.dependencyTracker;
35053510
this._imagesTracker = params.imagesTracker;
35063511
this._operationsFilter = operationsFilter;
@@ -3633,6 +3638,7 @@ class InternalRenderTask {
36333638
pageIndex: this._pageIndex,
36343639
renderTaskId: this._renderTaskId,
36353640
enableHWA: this._enableHWA,
3641+
enableWebGPU: this._enableWebGPU,
36363642
optionalContentConfigData,
36373643
optionalContentConfigState,
36383644
optionalContentConfigRenderingIntent:

src/display/renderer_worker.js

Lines changed: 6 additions & 1 deletion
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";
@@ -164,12 +165,13 @@ class RendererMessageHandler {
164165
this.#cleanupRenderTask(renderTaskId);
165166
});
166167

167-
handler.on("InitializeGraphics", data => {
168+
handler.on("InitializeGraphics", async data => {
168169
const {
169170
canvas,
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)