# Multiview / WebGPU

**URL:** <https://discourse.threejs.org/t/multiview-webgpu/60943>\
**Category:** Questions\
**Tags:** multiple-canvases, multiview, webgpu\
**Created:** [February 1, 2024, 2:33pm UTC](https://discourse.threejs.org/t/multiview-webgpu/60943 "2024-02-01T14:33:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![schwyzl](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/schwyzl/32/20693_2.png) [@schwyzl](https://discourse.threejs.org/u/schwyzl)\
**Post date:** [February 1, 2024, 2:33pm UTC](https://discourse.threejs.org/t/multiview-webgpu/60943/1 "2024-02-01T14:33:12Z")

</div>

One of the great features of WebGPU is being able to render multiple canvases from the same device.

> [This will make certain use cases, like multi-pane 3D editors, much easier to develop](https://codelabs.developers.google.com/your-first-webgpu-app#2).

Currently the Renderer and WebGPU backend support one domElement and clearly changing this to support multiple is fairly fundamental. Is anyone already working on this / thinking about how this might be tackled?

I’m aware of the viewport/scissoring examples and drei Views for creating multiple viewports within one big canvas, but I’m wondering if Three will natively support multiple canvases with the WebGPU renderer.

---

<div class="post-metadata">

**Author:** ![donmccurdy](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/donmccurdy/32/33209_2.png) [@donmccurdy](https://discourse.threejs.org/u/donmccurdy)\
**Post date:** [February 1, 2024, 3:35pm UTC](https://discourse.threejs.org/t/multiview-webgpu/60943/2 "2024-02-01T15:35:10Z")

</div>

Probably what you’re looking for is here:

> <https://github.com/mrdoob/three.js/pull/27628>
>
> This introduces a CanvasRenderTarget() to represent a screen canvas, which can b…e used via renderer.setRenderTarget() for use with WebGPU, thus supporting multiple canvases.
> 
> The default screen canvas state in Renderer() is replaced by a CanvasRenderTarget(). - this may be too much code change?

---

<div class="post-metadata">

**Author:** ![schwyzl](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/schwyzl/32/20693_2.png) [@schwyzl](https://discourse.threejs.org/u/schwyzl)\
**Post date:** [February 2, 2024, 10:23am UTC](https://discourse.threejs.org/t/multiview-webgpu/60943/3 "2024-02-02T10:23:41Z")

</div>

Awesome! Seems like an elegant solution. I was thinking Renderer or WebGPUBackend would need a lot of changes to allow for multiple domElements but this bypasses all that. Thanks for the link
