Hoshino Lina (星乃リナ) 🩵 3D Yuri Wedding prep!!! on Nostr: So I'm looking at what a "production" Live2D renderer would look like, and I'm torn ...
So I'm looking at what a "production" Live2D renderer would look like, and I'm torn because I think I want to use wgpu, but I need some features it doesn't support to do some things efficientlly.
To do 5.3 blend modes efficiently, I need either VK_EXT_blend_operation_advanced or VK_EXT_rasterization_order_attachment_access or [subpass self-dependency](
https://developer.arm.com/community/arm-community-blogs/b/mobile-graphics-and-gaming-blog/posts/framebuffer-fetch-in-vulkan ), but WebGPU has none of those.
For efficient masking, I think it's basically going to have to be subpasses (i.e. something that lets me render a mask to an attachment, then sample it in another subpass, that stays in tile memory/cache).
(Metal has equivalents for all this too)
Another option for both is VK_EXT_fragment_shader_interlock, but that will probably suck on tilers...
How hard is it to get stuff like this added to wgpu as an extension?
Published at
2026-06-10 01:27:29 UTCEvent JSON
{
"id": "f0a37c6fd9c84eb710ed829562cb1cff1173925eaa187d60feb7a07ea98990a0",
"pubkey": "c1812ca9433e5d31c5e35e9546d0f819d016ca6eabe98053daa6d40831179ec2",
"created_at": 1781054849,
"kind": 1,
"tags": [
[
"proxy",
"https://vt.social/@lina/116723210615889940",
"web"
],
[
"proxy",
"https://vt.social/users/lina/statuses/116723210615889940",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://vt.social/users/lina/statuses/116723210615889940",
"pink.momostr"
],
[
"-"
]
],
"content": "So I'm looking at what a \"production\" Live2D renderer would look like, and I'm torn because I think I want to use wgpu, but I need some features it doesn't support to do some things efficientlly.\n\nTo do 5.3 blend modes efficiently, I need either VK_EXT_blend_operation_advanced or VK_EXT_rasterization_order_attachment_access or [subpass self-dependency](https://developer.arm.com/community/arm-community-blogs/b/mobile-graphics-and-gaming-blog/posts/framebuffer-fetch-in-vulkan ), but WebGPU has none of those.\n\nFor efficient masking, I think it's basically going to have to be subpasses (i.e. something that lets me render a mask to an attachment, then sample it in another subpass, that stays in tile memory/cache).\n\n(Metal has equivalents for all this too)\n\nAnother option for both is VK_EXT_fragment_shader_interlock, but that will probably suck on tilers...\n\nHow hard is it to get stuff like this added to wgpu as an extension?",
"sig": "da72f59963d9648667a172ba61e256d31fcf65ca4205d67c097cbafac0aaba57d64f3ce99056a982418e1985cc5f1b90123d7c9d1a7a1a6f044ea94a4c7eed8a"
}