Aaron Hill
1dd0d237ab
render: Correctly handle BYTES_4 vertex data
...
Each byte gets normalized into a float in the range [0, 1]
2023-03-16 13:20:11 -05:00
TÖRÖK Attila
96d1f19e6c
chore: Port to bitflags 2.0.0
...
* Bump bitflags to 2.0.0
* Sprinkle Clone, Copy, Eq, PartialEq, and Debug derives where needed
* Call `bits` on bitflags, as it is now a method
* Switch from `from_bits_truncate` to `from_bits_retain` on bitflags where needed
* Bump h263-rs for the bitflags 2.0.0 dependency
As part of porting to bitflags 2.0.0, see:
https://kodraus.github.io/rust/2022/10/07/bitflags2.html#upgrading-to-2x
2023-03-15 20:06:10 -07:00
Aaron Hill
e194883ef6
naga-agal: Correctly access vertex shader FunctionArgument
...
I had previously applied this fix to fragment shaders,
but I forgot to apply it to vertex shaders as well.
2023-03-15 20:12:21 -05:00
Aaron Hill
acbc802c94
avm2: Fix VertexBuffer3D.uploadDataFromByteArray size calculation
...
We were ignoreing 'data32PerVertex'.
To make the code clearer, I've renamed the variable to
'data32_per_vertex', and made it a 'u8' (as it has a maximum of 64)
2023-03-15 19:52:09 -05:00
Aaron Hill
fea885f3af
render: Implement Context3DTextureFormat.BGRA using an RGBA texture
...
Webgl doesn't support BGRA textures, so this lets us use
Stage3D textures on the web backend. As a bonus, this speeds up
uploading an BitmapData to a Context3dTextureFormat.BGRA texture,
since we no longer need to change the format before copying.
This makes Solarmax2 playable on the web backend.
2023-03-13 13:30:15 -05:00
Nathan Adams
b527054a1e
render: Make retrieve_offscreen_texture pass the raw buffer ( #9936 )
2023-03-13 00:00:42 +00:00
Aaron Hill
de8448e00a
avm2: Implement Stage3D depth test, blend factors, and fix bugs ( #9845 )
2023-03-12 23:43:58 +00:00
TÖRÖK Attila
109e151fa6
render/all: Clamp gradient focal point to be between -/+0.98
2023-03-12 23:54:59 +01:00
TÖRÖK Attila
0f7c362069
wgpu: Update to wgpu 0.15.1, naga 0.11.0, and naga_oil 0.5.0
2023-03-12 16:30:13 -05:00
TÖRÖK Attila
7d3a2d14b7
render/wgpu: Delete the now unused buffer bug detection shader
2023-03-12 15:53:16 -05:00
TÖRÖK Attila
d356b7258a
wgpu: Fix gradient regression
2023-03-07 20:35:29 +01:00
Nathan Adams
026efe7f18
render: Moved out some Gradient fields into webgl as it's no longer needed in wgpu
2023-03-06 23:22:09 +01:00
Nathan Adams
0cca4983e4
wgpu: Merge gradient shaders together
2023-03-06 23:22:09 +01:00
Nathan Adams
622abe60d1
wgpu: Extract T->Color lookup from gradient shader to Mesh construction
2023-03-06 23:22:09 +01:00
renovate[bot]
130144a76d
fix(deps): update rust dependencies
2023-03-05 20:43:46 -06:00
relrelb
83c15b8033
render: Replace `BoundingBox` with `swf::Rectangle`
2023-03-04 21:54:23 +02:00
relrelb
abcdc2a851
render: Enable `serde`'s `derive` feature
...
Otherwise `cargo check` fails when run right from the `render/`
directory.
2023-03-04 21:54:23 +02:00
Aaron Hill
2748b95c86
avm2: Improve Stage3D support for textures, register types, and opcodes
...
This is a very large diff, but most of it comes from test files and
output.
This PR ads partial support for the following Stage3D shader features:
* Normal (square), rectangle, and cube textures
* Varying and temporary registers
* Lots of opcodes
The combination of these allows us to get a raytracing program
fully working in Ruffle. I've included it as image test.
Currently, this test is very slow (about 90 seconds on my machine),
as the code I'm using (https://github.com/saharan/OGSL ) includes
its own shader language and compiler. THe raytracing demo
first compiles its own shader language to AGAL, and then starts
rendering the scene.
Limitations:
* Many opcodes are still unimplemented
* Most non-default texture options (e.g. mipmaps) are not implemented
2023-03-03 15:58:46 -06:00
Nathan Adams
545193b098
swf: Deduplicate GradientFilter again
2023-02-28 16:25:12 +01:00
Nathan Adams
f79015e201
render: Use swf Filter types where possible. Gradient types had to be split into duplicate classes to allow for different trait impls based on which gradient filter type it is.
2023-02-28 16:25:12 +01:00
Nathan Adams
9224aeca5d
swf: Add DropShadowFilter::hide_object(), it's the only time COMPOSITE_SOURCE is used
2023-02-28 16:25:12 +01:00
Nathan Adams
b8f7c66980
core: map_point in DisplacementMapFilter is i32 not u32
2023-02-28 16:25:12 +01:00
Nathan Adams
3777210117
core: Angle from swf tag is in radians, convert it to degrees
2023-02-28 16:25:12 +01:00
Nathan Adams
acc3180db7
core: Strength in filters is a f32, not u8
2023-02-28 16:25:12 +01:00
Nathan Adams
7da2a061cc
swf: ColorMatrixFilter::matrix is actually f32, not Fixed16
2023-02-28 16:25:12 +01:00
Nathan Adams
fc00ae8eb6
core: Load filters from PlaceObject tag
2023-02-28 16:25:12 +01:00
Nathan Adams
e39fbe871d
render: Add Filter::GradientGlowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
bb38a7fa55
render: Add Filter::GradientBevelFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
c8030d047d
render: Add Filter::GlowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
c9656c429e
render: Add Filter::DropShadowFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
dbe2efff00
render: Add Filter::DisplacementMapFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
f9c7303f01
render: Add Filter::ConvolutionFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
9c1f6ea129
render: Add Filter::BevelFilter
2023-02-28 16:25:12 +01:00
Nathan Adams
5ee3a4b512
avm2: Extract out the Value -> Filter logic into a trait
2023-02-28 16:25:12 +01:00
renovate[bot]
71e24eedba
fix(deps): update rust dependencies
2023-02-27 11:48:53 +02:00
relrelb
dc9ec40d31
chore: Allow `clippy::bool_to_int_with_if`
...
Seems like Clippy no longer complains about it.
2023-02-26 13:23:38 +02:00
Nathan Adams
01af1af4d9
webgl: Fixed blown out colortransform in webgl
2023-02-24 19:01:41 +01:00
Nathan Adams
edd7f80341
wgpu: Fix blown out colors when transforming them above 100% - fixes #9698
2023-02-24 19:01:41 +01:00
Aaron Hill
455124d3ba
render: Fix blending onto BitmapData contents
...
When rendering to an offscreen texture for `Bitmapdata.draw`,
we first render to a temporary frame buffer, and then copy the contents
of the frame buffer back to the target texture. However, this results
in blend modes being incorrectly applied - for example, rendering with
BlendMode.SUBTRACT will subtract against the framebuffer (which starts
with each pixel as 0x00000000), instead of the previous BitmapData
contents.
To fix this, we now use our texture target as the frame buffer
when performing `render_offscreen`. This ensure that we blend
over existing pixels (taking into account the `blendMode` provided
in the `BitmapData.draw` call).
When multisampling is enabled, we use a copy pipeline to copy
the existing contents of our texture to a fresh multisampled frame
buffer (the non-multisampled texture target becomes our resolve buffer).
2023-02-23 09:52:56 -06:00
Nathan Adams
6539262db7
render: Add Quality option to RenderBackend::render_offscreen
2023-02-22 17:36:55 +01:00
relrelb
2aaf337b6a
swf: Introduce `BlurFilterFlags`
2023-02-21 16:55:13 +02:00
renovate[bot]
a27bd66b58
fix(deps): update rust dependency patches
2023-02-13 04:59:31 +01:00
Aaron Hill
c597f9f996
core: Fix Clippy lints on nightly
2023-02-13 03:38:54 +01:00
renovate[bot]
fed24aa243
fix(deps): update rust dependencies - wasm-bindgen related
2023-02-13 02:57:52 +01:00
Nathan Adams
0e9b1e4a77
wgpu: Better support for 2x and 8x msaa
2023-02-06 16:08:04 +01:00
Nathan Adams
68761608fc
desktop: Add --quality option
2023-02-06 16:08:04 +01:00
Nathan Adams
1cb3ea7bf9
wgpu: Store quality, not sample_count, and calculate the correct sample count per format
2023-02-06 16:08:04 +01:00
Nathan Adams
b95983b492
wgpu: Hook up set_quality
2023-02-06 16:08:04 +01:00
Nathan Adams
d8e924affc
render: Add RenderBackend::set_quality method, and call it from core
2023-02-06 16:08:04 +01:00
Nathan Adams
b270d1bbd7
render: Move StageQuality from core to render
2023-02-06 16:08:04 +01:00
Nathan Adams
3411a04cef
render: Made render specific Filter enum & structs, as swf ones don't map 1:1 to potential filters
2023-02-05 18:41:43 +01:00
Nathan Adams
b5a250e16f
render: Changed render_offscreen to return an Option instead of an Result
2023-02-05 18:41:43 +01:00
Nathan Adams
e73389aa71
wgpu: Implement blur filter
2023-02-05 18:41:43 +01:00
Nathan Adams
284a58c817
avm2: Implement BitmapData.apply_filter for ColorMatrixFilter
2023-02-05 18:41:43 +01:00
Nathan Adams
72bfd499f8
wgpu: Reuse whole-mesh uniform buffer for gradients
2023-02-05 18:02:19 +01:00
Nathan Adams
013a2424ef
wgpu: Only use uniform buffers for gradients, we don't need storage buffers now that we squeeze the ratios into alignment
2023-02-05 18:02:19 +01:00
Nathan Adams
3bc7d44e9c
wgpu: Reuse the same vertex and index buffer for an entire mesh
2023-02-05 18:02:19 +01:00
Nathan Adams
571a1780e2
wgpu: Provide usage and alignment to BufferBuilder
2023-02-05 18:02:19 +01:00
Nathan Adams
cbc227b0a0
wgpu: Split up mesh creation into a 2 step process so we can reuse the same buffer for each draw
2023-02-05 18:02:19 +01:00
Nathan Adams
a3a7f79f04
render: Switch from log to tracing
2023-02-05 18:02:19 +01:00
Nathan Adams
f9b378b29a
wgpu: Changed most pipelines & shaders to only use Pos, not Pos and Color, as vertex attribs
2023-02-05 18:02:19 +01:00
renovate[bot]
caaf6d5c87
fix(deps): update rust dependencies
2023-01-31 09:39:42 -06:00
Nathan Adams
5dd3060a28
wgpu: Ensure we clear before blending an object onto nothing
2023-01-29 20:45:01 +01:00
Nathan Adams
7b1c101c81
wgpu: Fix repeat & reflect gradients
2023-01-29 17:17:44 +01:00
Aaron Hill
184734267d
tests: Deny unknown fields when deserializing test.toml files
...
This will catch typos and misplaced options when modifying tests.
2023-01-28 16:27:43 -06:00
Nathan Adams
9b43836d1d
tests: Allow executing of with_renderer tests always, but image comparison is still gated
2023-01-28 12:15:59 -07:00
Nathan Adams
7d234956eb
tests: Move tests away from giant macro to individual test.toml files that describe the test
2023-01-27 13:53:43 +01:00
renovate[bot]
8b6eef1715
fix(deps): update rust dependencies
2023-01-24 20:10:40 -06:00
Nathan Adams
1bfa69ade2
wgpu: Guard against infinite loops in gradient shader - fixes #9260
2023-01-23 23:25:30 +01:00
Aaron Hill
ffc393e3e8
render: Work around naga_oil duplicate definition bug
2023-01-23 11:31:04 +01:00
Aaron Hill
fc3c2a2297
Update wgpu
...
This requires us to bump naga as well, and switch to a fork
of naga_oil that compiles against the latest naga.
2023-01-23 11:31:04 +01:00
Aaron Hill
a71d14d31c
Fix wasm build
2023-01-23 11:31:04 +01:00
Aaron Hill
0fe8ef6c2d
Get naga_oil shaders working
2023-01-23 11:31:04 +01:00
Aaron Hill
6fe7af58d5
Move back to upstream wgpu repository
...
We're relying on unreleased changes, so we depend on the latest commit
from their repository.
2023-01-23 11:31:04 +01:00
Aaron Hill
e2954821ea
core: Take two - delay reading image back from render backend using `SyncHandle` ( #9184 )
...
* Take two: Delay reading image back from render backend using `SyncHandle`
This allows us to avoid blocking immediately after a `BitmapData.draw` call.
Instead, we only attempt to use the `SyncHandle` when performing an operation
that requires the CPU-side pixels (e.g. BitmapData.getPixel or BitmapData.setPixel).
In the best case, the SWF will never explicitly access the pixels of
the target BitmapData, removing the need to ever copy back the render backend
image to our BitmapData. If the SWF doesn't require access to the pixels immediately,
we can delay copying the pixels until they're actually needed, hopefully allowing
the render backend to finish processing the BitmapData.draw operation in
the backenground before we need the result.
Now that the CPU and GPU pixels can be intentionally out of sync with
each other, we need to ensure that we don't accidentally expose 'stale'
CPU-side pixels to ActionScript (which needs to remain unaware of
our internal laziness). We now use a wrapper type `BitmapDataWrapper`
to enforce that the `SyncHandle` is consumed before accessing the
underlying `BitmapData.
* core: Skip GPU->CPU sync for source and target BitmapData during draw
* Introduce DirtyState enum
2023-01-21 21:08:04 +00:00
Nathan Adams
b5c6d5debe
wgpu: Don't panic if rendering a None bitmap - fixes #9188
2023-01-17 19:34:51 +01:00
Nathan Adams
580cce29db
wgpu: Update to wgpu fork with buffer bug fix
2023-01-17 05:59:55 +01:00
Nathan Adams
3c4710cfb5
wgpu: Only show current limits in debug info
2023-01-16 23:18:42 +01:00
TÖRÖK Attila
ec462115ef
core: nit: Use `strip_prefix` instead of `starts_with` and subslicing.
...
As suggested by relrelb in a review note for #8820 .
2023-01-16 17:33:41 +01:00
Nathan Adams
6138714fa7
wgpu: Fix buffer bug detection
2023-01-16 17:22:04 +01:00
Mike Welsh
9cd6849772
core: Append EOI marker to JPEG data when missing
...
Fixes #4209 .
2023-01-16 03:03:28 +01:00
Mike Welsh
cceb18910b
core: Fix handling of invalid EOI+SOI marker in JPEG data ( fix #8775 )
...
Previously we were removing the first occurrence of the invalid
0xFFD9FFD8 byte sequence in JPEG data, but this would break the
JPEG if it happened to contain this byte sequence elsewhere (for
example, EXIF data). Instead, properly parse the JPEG markers
searching for the invalid marker sequence.
Fixes #8775 .
2023-01-16 03:03:28 +01:00
Nathan Adams
3279a920b4
wgpu: Use a temporary wgpu fork that increases push constants limit on webgl & speeds up start time
2023-01-15 18:19:11 +01:00
Nathan Adams
1b42ad0ab4
wgpu: Keep globals cache across the buffer pool
2023-01-14 19:35:16 +01:00
Nathan Adams
2e7201334d
wgpu: Detect if buffers are unusable on web and fail to create wgpu renderer if so
2023-01-12 18:37:28 +01:00
Nathan Adams
8db8e4669a
wgpu: Implement Multiply blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
Nathan Adams
09608c2abc
wgpu: Implement Screen blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
Nathan Adams
9cd850d30e
render: Make render_offscreen return a sync handle which can be used to get the texture at a later time
2023-01-11 16:53:33 -05:00
renovate[bot]
630558a936
fix(deps): update rust dependencies
2023-01-10 16:37:40 +01:00
Nathan Adams
f5a587ce61
render: Better error message when points is empty
2023-01-10 11:10:46 +01:00
Nathan Adams
e7dd3cc0f8
render: Add better expect messages for as_bitmap_data impls
2023-01-10 11:10:46 +01:00
Nathan Adams
3ead9aede9
webgl: Disallow unwrap() and unwrap_err() in webgl crate
2023-01-10 11:10:46 +01:00
Nathan Adams
0f5765d5cc
webgl: Removed all unwraps and replaced with actual errors or expects
2023-01-10 11:10:46 +01:00
Nathan Adams
052ac06d85
canvas: Disallow unwrap() and unwrap_err() in canvas crate
2023-01-10 11:10:46 +01:00
Nathan Adams
312c23c4eb
canvas: Removed unwraps and replaced with either warns, ignores or expects
2023-01-10 11:10:46 +01:00
Nathan Adams
5ae569983b
render: Disallow unwrap() and unwrap_err() in render crate
2023-01-10 11:10:46 +01:00
Nathan Adams
85f0c9dde9
render: Replaced unwrap with expect in shape_utils
2023-01-10 11:10:46 +01:00
Nathan Adams
8f684d6943
render: Removed unwrap/panic when working with empty shapes
2023-01-10 11:10:46 +01:00
Nathan Adams
62f9b11417
wgpu: Fixed color shader working in correct color space
2023-01-10 09:39:28 +01:00
Nathan Adams
ae75a3c166
wgpu: Use push constants for both Transforms and ColorAdjustments, when available
2023-01-10 09:39:28 +01:00
Nathan Adams
fb78a39125
wgpu: Switch to experimental crate naga_oil for combining shaders
2023-01-10 09:39:28 +01:00
Nathan Adams
4e5749a7e4
wgpu: When push constants are available, use those for Transforms
2023-01-10 09:39:28 +01:00
Nathan Adams
fa9db9145d
wgpu: Removed double references
2023-01-10 09:39:28 +01:00
Nathan Adams
ad3060e70c
wgpu: Specialcase draw_rect with white as that's just identity color transform
2023-01-10 09:39:28 +01:00
Nathan Adams
53d6fa4d8b
render: Make render commands take in an actual value, not ref for immediate cloning
2023-01-10 09:39:28 +01:00
Nathan Adams
b07a01da57
wgpu: Cache texture views along side their owned textures in texture pool
2023-01-09 20:40:45 +01:00
Nathan Adams
4d85b6a75b
wgpu: Hook up wgpu renderer, and wgpu's profiling, to tracy
2023-01-08 20:02:26 +01:00
Moulins
d332a174c3
Bump `gc-arena` to current master revision
...
This required small changes to some Debug impls that were missed in #8964
2023-01-06 18:22:43 -05:00
Nathan Adams
b7bc835def
wgpu: Use Stencil8
2023-01-06 06:29:43 +01:00
Nathan Adams
69e98d23ad
wgpu: Update to wgpu 630c12fe47a7bc0dc9ec6217f3903ec6fd6e3fac
2023-01-06 06:29:43 +01:00
Nathan Adams
d6b8d6e488
webgl: Added debug info to webgl renderer
2023-01-05 05:51:32 +01:00
Nathan Adams
a69d30bb67
render: Add debug info method to renderer backends
2023-01-05 05:51:32 +01:00
Aaron Hill
10491a1be9
core: Store data in `BitmapData` instead of `Bitmap`
...
This makes `Bitmap` delegate to `BitmapData` for
all of the bitmap-related information (handle, width, and height).
As a result, we now unconditionally store a `BitmapData` in `Bitmap`.
As a result, swapping the underling `BitmapData` instance will
automatically change the properties (and rendered image) of a `Bitmap`.
This required some refactoring in the render backends in order to
get access to a `BitmapHandle` through `BitmapData`.
2023-01-03 18:01:41 -07:00
dependabot[bot]
b15c1bbfa3
build(deps): bump once_cell from 1.16.0 to 1.17.0
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.16.0...v1.17.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-01-03 10:11:05 +02:00
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
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
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