Repository navigation
emberwave v0.9.0
Pictures straight into Metal textures for iPhone, iPad and Mac apps, without a trip through CPU memory, and an iPhone and iPad app that times emberwave on the device's own GPU.
Added
- An iPhone and iPad benchmark app,
crates/emberwave-ffi/examples/ios(#66). It times decoding into Metal textures, decoding to planes in memory and encoding on the device's GPU through the C API, with the pictures and budgets of the browser benchmark. It also draws the last picture from its texture. CI runs it in an iOS Simulator, where it also reads a texture back through Metal. - Pictures on the GPU for Metal clients (decision D40, #27).
emberwave_texture_createmakes a texture of the picture's size, RGBA or BGRA, on the decoder's device.emberwave_decoder_decode_texturedraws the RGB picture into it and waits.emberwave_texture_metalandemberwave_context_metal_devicegive theid<MTLTexture>andid<MTLDevice>behind them.- On an Apple M3 Max a 4K frame takes 1.5 ms that way, against 2.7 ms to RGB in CPU memory.
- In Rust,
Decoder::encode_rgb_to_texture,decode_assembled_to_textureandcreate_texturedraw into a wgpu texture, andGpuContext::idtells contexts apart.
Changed
- The browser player draws its canvas through
Decoder::encode_rgb_to_texture, the same pass as the C API's textures.