src/libANGLE/renderer/wgpu/DisplayWgpu.cpp


Log

Author Commit Date CI Message
Matthew Denton 4a835cf2 2024-11-01T13:31:00 WebGPU: send uniforms to GPU for use in shader Basic uniforms should now be accessible in the shader during a draw call, rather than just via glGetUniform*(). This is unoptimized and creates a new GPU-side copy of all the uniforms, every time any uniform changes. This sets up the bind group layout for a pipeline and sets the bind groups in the renderer pass. Right now these bind groups only contain the default uniform blocks, but in the future will need to contain textures, samplers, and non-default uniform blocks (UBOs). Bug: angleproject:376553328 Change-Id: I50891b81ab2ee374d674213257f76319c0222120 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5980972 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Shahbaz Youssefi b16d105f 2024-10-03T10:25:32 Remove Desktop GL front-end support For Desktop GL applications, please use Zink! Bug: angleproject:370937467 Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez be8cc064 2024-10-02T15:12:42 DisplayWgpu: Remove wgpu::FeatureName::SurfaceCapabilities This feature used to allow querying the wgpu::TextureUsage allowed with a wgpu::Surface. This is no longer necessary to have as an extension since wgpu::Surface supports this capability by default (after it was made a replacement of wgpu::SwapChain). Remove the now useless mention of this feature that was blocking the removal of the feature's code from Dawn. Bug: b/42241264 Change-Id: Ia097f2f6077fa655a2b4b495cdcf3f1fa5f23d55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5904059 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Liza Burakova 27c0f10a 2024-08-06T11:12:32 WebGPU: Generate texture formats when initializing surfaces. Bug: angleproject:344814096 Change-Id: I873c6308e9c203fd759ccbf5a378056f2aca849c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5763218 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 31c0f439 2024-08-02T09:18:33 WebGPU: Centralize caps generation All GL and EGL caps can be generated at display creation time for WebGPU. Move all existing logic into a centralized GenerateCaps function. Bug: angleproject:357017322 Change-Id: I7398d4ee539192d64971023d9a598ac1f11592ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5759279 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 59f6d962 2024-07-30T21:36:00 WebGPU: Run dEQP GLES2 tests. Add the flags and platform support needed to initialze the WebGPU backend. Set up initial test expectations with broad suppressions. Current pass rate: 14.27% Bug: angleproject:356399840 Change-Id: I1339cd978ca75b59a2e99ee81d93981dc6066f36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5751601 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Liza Burakova 4f498eaa 2024-07-24T14:31:23 WebGPU: Add more format support This CL adds a new FormatTable class that initializes webgpu texture and vertex formats. It also adds this class to the display so it can be used in the ImageHelper. This CL changes the previously hardcoded RGBA8 texture format that was initially used when creating textures to use the format passed into the methods. Bug: angleproject:344814096 Change-Id: I768b85335329116496dbf721aac54d1137aaae9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5660397 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org>
Geoff Lang 85e2e6a9 2024-05-08T12:31:37 WebGPU: Add Window and Pbuffer surfaces. Bug: angleproject:342213844 Change-Id: I58465bdf895b4bab63ec3c74e326c6be4827bf60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5525974 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Liza Burakova 2218db2b 2024-04-10T13:41:17 Add error callback for webgpu device Bug: angleproject:8547 Change-Id: I9946311a1f93cc5f49fb0e17e65c92789bdb3b6a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5443428 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f4485224 2024-04-05T10:29:23 WebGPU: Implement glBufferData and glBufferSubData Define several usages for WebGPU buffers that map to wgpu buffer usage flags. Maintain a set of buffers by usage and a serial of the one with the most recent data. Defer creation of the buffer as long as possible to take advantage of the WebGPU mapAtCreation flag for data upload. If we ever have to unmap these buffers, staging buffers must be used to upload afterwards. Add some helpers for getting Device and Instance from a gl::Context. Bug: angleproject:8654 Change-Id: Ibb8147119af8a98738fc4d579830a02ccaa1d7c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5426813 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Liza Burakova 6c379733 2024-03-21T14:25:52 Add more helper methods for textures. This change adds a DisplayWgpu member variable to ContextWgpu as well as a getter for the display so other objects can access a webgpu device. This change also adds helper methods to translate GL texture information (size, dimension, mip level count, etc.) to webgpu compatible texture information. Bug: angleproject:8547 Change-Id: Ifb2c5d021b1cbb95304a732c57d3250f1731496b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5385574 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org>
Geoff Lang f8b18577 2024-03-15T16:31:02 Set the Dawn proc addresses at in DisplayWgpu initialization This allows the display to fully initialize and some tests to pass! Bug: angleproject:8485 Change-Id: I83176c572793ba8a6992264e873f7d24d3698d35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5372136 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Liza Burakova e8a3493f 2024-02-14T21:51:00 Initialize DisplayWgpu This change adds basic initialize to DisplayWgpu as well as adding APIs for DisplayGLX and DisplayWgpu. These APIs are necessary to ensure DisplayWgpu doesn't pull in necessary X11 headers that break builds. Bug: angleproject:8477 Change-Id: Icc6d9e7246a741def7a0337a296f9c1f9cec1415 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259979 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org>
Liza Burakova f2c00e8c 2024-01-18T18:36:33 Adding Dawn stub backend to ANGLE Bug: angleproject:8473 Change-Id: I81ea83986e4e566169aa82250b5cfb727985ed01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5201413 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>