playcanvas / playcanvas/engine

Async Shader Compilation (KHR_parallel_shader_compile)

Open
#1,474 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: graphics
Dominant language
JavaScript
Stars
16.8k
Forks
2k
Avg merge
4h 32m
Merged PRs (30d)
222

Description

There is a work going on for KHR_parallel_shader_compile extension:
Specs: https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/
Chrome Issue Tracker: https://bugs.chromium.org/p/chromium/issues/detail?id=849576

It allows to send shader to compiler without locking thread and check on compilation status later on.

That will speed up shader compilation on overall as well as open ability to compile shaders without thread lockup as it is now. From benchmarks even sync compilation path have already ~50% compilation time improvement.

Would be great to think about integrating it into the Engine once available.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the KHR_parallel_shader_compile specification and the linked Chrome Issue Tracker entry to understand availability and intended integration. Then inspect the engine's shader compilation entry points. Done means the extension is integrated without blocking the thread and compilation status can be checked later, with behavior verified against the specification.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.