Skip to content

RFC/POC: support float16 postprocess buffers - #10537

Draft
ibgreen-openai wants to merge 1 commit into
masterfrom
codex/rfc-poc-hdr-postprocess-buffers
Draft

RFC/POC: support float16 postprocess buffers#10537
ibgreen-openai wants to merge 1 commit into
masterfrom
codex/rfc-poc-hdr-postprocess-buffers

Conversation

@ibgreen-openai

Copy link
Copy Markdown
Collaborator

Goal

Allow deck.gl postprocessing effects to preserve HDR highlight energy before effects such as bloom consume the rendered scene.

Changes

  • Add postProcessColorFormat to DeckProps, defaulting to the existing rgba8unorm behavior.
  • Support explicit rgba16float postprocess ping-pong buffers.
  • Recreate intermediate framebuffers when the configured format changes.
  • Validate that the requested format is renderable and linearly filterable before allocating buffers.
  • Export PostProcessColorFormat for callers configuring HDR effects.
  • Add coverage for float16 allocation and switching back to unorm buffers.

Context

This is intentionally an RFC/POC. luma.gl v10 has HDR-capable WebGPU canvas support, but deck.gl currently clips highlights in its rgba8unorm postprocess intermediates before a bloom effect can read them. This change provides the deck.gl-side opt-in without changing the default rendering path.

Example:

new Deck({
  postProcessColorFormat: 'rgba16float',
  effects: [bloomEffect]
});

Validation

  • yarn vitest run test/modules/core/lib/deck-renderer.spec.ts
  • yarn build
  • yarn lint was run; it is blocked only by unrelated existing formatting in modules/core/src/passes/layers-pass.ts.

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 83.757% (-0.004%) from 83.761% — codex/rfc-poc-hdr-postprocess-buffers into master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants