Commit Graph

8216 Commits

Author SHA1 Message Date
Aaron Hill 172326005b Remove lifetime parameter from CommandHandler
The wgpu backend no longer needs this.
2023-01-03 04:37:28 +01:00
Nathan Adams 3b209bd6aa wgpu: Use frame-temporary buffer for offscreen rendering 2023-01-03 03:39:13 +01:00
Nathan Adams 533d104337 wgpu: Don't load or store the depth side of the depth buffer, we only care for stencil 2023-01-03 03:39:13 +01:00
Nathan Adams eaff82ea7e wgpu: Cleaned up some buffer binding api 2023-01-03 03:39:13 +01:00
Nathan Adams 28768f2ad8 render: Make CommandList a struct instead of a tuple 2023-01-03 03:39:13 +01:00
Nathan Adams 3dd9c4daa3 wgpu: Moved ColorAdjustments into its own bind group, and reuse ColorAdjustments::IDENTITY where we can 2023-01-03 03:39:13 +01:00
Nathan Adams 353a3116a4 wgpu: Define the sizes of uniforms upfront instead of at each call 2023-01-03 03:39:13 +01:00
Nathan Adams ae5d92693f wgpu: Moved DrawCommand handling to CommandRenderer::execute 2023-01-03 03:39:13 +01:00
Nathan Adams 7944b6dd9e wgpu: Inlined CommandRenderer::execute into Surface::draw_commands 2023-01-03 03:39:13 +01:00
Nathan Adams a71b5b4570 wgpu: Move command renderer to surface/commands.rs 2023-01-03 03:39:13 +01:00
Nathan Adams 0272eda121 wgpu: Refactor surface command target to its own file 2023-01-03 03:39:13 +01:00
Nathan Adams a657feadae wgpu: Clear out texture pool when resized 2023-01-03 03:39:13 +01:00
Nathan Adams cb6d72b49b wgpu: Split up gradient shader based on type and repeat 2023-01-03 03:39:13 +01:00
Nathan Adams a79e73fb12 wgpu: Clean up gradient shaders by bringing out common shared source into a same file 2023-01-03 03:39:13 +01:00
Nathan Adams b4c2030af8 wgpu: Appease beta clippy. again. 2023-01-03 03:39:13 +01:00
Nathan Adams 91561e8c35 wgpu: Reduce gradient.ratios uniform memory by 4x 2023-01-03 03:39:13 +01:00
Nathan Adams 312e72451f wgpu: Reduce gradient.colors uniform memory by 4x 2023-01-03 03:39:13 +01:00
Nathan Adams 986b95c50c wgpu: Share texture pool across all frames, and ensure targets are cleared properly 2023-01-03 03:39:13 +01:00
Nathan Adams c0ec5c5010 wgpu: Split up blend modes into their own shaders for performance 2023-01-03 03:39:13 +01:00
Nathan Adams 92a6c6bc76 wgpu: Add more debug labels within render passes 2023-01-03 03:39:13 +01:00
Nathan Adams 1863c93be1 wgpu: Add some more debug labels 2023-01-03 03:39:13 +01:00
Nathan Adams af9b1f1dec wgpu: Temporarily disable msaa on phones until wgpu upgrade 2023-01-03 03:39:13 +01:00
Nathan Adams 257bbc8ec9 wgpu: Revert using same pool for whole frame - breaks bitmapdata.draw and I'm not sure why yet 2023-01-03 03:39:13 +01:00
Nathan Adams 0f676fc6ce wgpu: Simplify blend_buffers map creation 2023-01-03 03:39:13 +01:00
Nathan Adams ec7840f412 wgpu: Try harder to find render passes where we don't need depth 2023-01-03 03:39:13 +01:00
Nathan Adams c6045a4f24 wgpu: Multiply can't be trivial blend mode because of 0 alpha 2023-01-03 03:39:13 +01:00
Nathan Adams df8ead3f96 tests: New multiply blend mode image 2023-01-03 03:39:13 +01:00
Nathan Adams 342b9b9007 wgpu: Removed some needless copies in command iteration 2023-01-03 03:39:13 +01:00
Nathan Adams 81f4741300 wgpu: Default msaa on mobiles to 2x, same as webgl backend 2023-01-03 03:39:13 +01:00
Nathan Adams 7fb2ec096e wgpu: Don't wait for the entire frame to be drawn if we're just capturing a segment of the render list 2023-01-03 03:39:13 +01:00
Nathan Adams 75790606a0 wgpu: Share the buffer pool throughout the entire frame 2023-01-03 03:39:13 +01:00
Nathan Adams f253abdbd1 wgpu: Made Multiply, Add and Subtract blend modes use bitmap+blend 2023-01-03 03:39:13 +01:00
Nathan Adams e69d76fa41 wgpu: Cache Globals for a total draw frame, don't remake it if it's going to be the same values 2023-01-03 03:39:13 +01:00
Nathan Adams 03b62a93e6 wgpu: Pool textures during the same frame, and drop whatever we don't need immediately 2023-01-03 03:39:13 +01:00
Nathan Adams 4e51c9455e wgpu: Don't require VERTEX_WRITABLE_STORAGE which is unavailable on web 2023-01-03 03:39:13 +01:00
Nathan Adams 53b8907b78 wgpu: Optimise rendering blendables by queueing everything up in the same command buffer, allowing gpu to async where needed, instead of one command list at a time 2023-01-03 03:39:13 +01:00
Nathan Adams cb2b27ba03 wgpu: Don't create depth buffers, or use any depth testing, if we aren't expecting masks 2023-01-03 03:39:13 +01:00
Nathan Adams 05f49dd487 wgpu: Appease beta clippy 2023-01-03 03:39:13 +01:00
Nathan Adams 7e564185b5 wgpu: Handle alpha correctly for add or subtract blendmodes 2023-01-03 03:39:13 +01:00
Nathan Adams 864f404f2f tests: Add blendmode visual tests 2023-01-03 03:39:13 +01:00
Nathan Adams 5a7ec70254 core: Remove blend mode unsupported message 2023-01-03 03:39:13 +01:00
Nathan Adams 45339e037e tests: Added new output of bitmapdata_draw tests for github agents. Seems visually identical. 2023-01-03 03:39:13 +01:00
Nathan Adams b72dc1edd4 wgpu: Don't create blend buffers until they're needed 2023-01-03 03:39:13 +01:00
Nathan Adams b0e345335f wgpu: Workaround naga-vulkan bug with default position in switch statement 2023-01-03 03:39:13 +01:00
Nathan Adams 219fabbc0b wgpu: For trivial blends (ie Normal), just draw them as bitmaps with a blendstate 2023-01-03 03:39:13 +01:00
Nathan Adams 8311ddb0da wgpu: Allow for different sized subcommand list targets, but don't use them yet 2023-01-03 03:39:13 +01:00
Nathan Adams f48de7b34e wgpu: Always clear the first texture buffer to the desired color 2023-01-03 03:39:13 +01:00
Nathan Adams 7904c3d4f0 wgpu: Implement all blend modes 2023-01-03 03:39:13 +01:00
Nathan Adams f9333e2626 wgpu: Perform command rendering recursively and chunk up blends. Blends are still not implemented, it just copies to parent. 2023-01-03 03:39:13 +01:00
Nathan Adams 915040ba06 wgpu: Globals should now belong to the Surface and doesn't need to be mutable anymore 2023-01-03 03:39:13 +01:00