Repository navigation
[Impeller] Compiler does not generate a runtime stage with valid SPIR-V with --runtime-stage-vulkan #129659
Description
Activity
- addedengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.e: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requests
on Jun 27, 2023 - addedP1High-priority issues at the top of the work listHigh-priority issues at the top of the work list
on Jul 5, 2023 - addedteam-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
on Jul 8, 2023 There's a bit of a hang up here.
Right now, runtime stage shaders are all written using GLSL semantics for uniforms, e.g.
layout(location = 0) uniform float a;
But in Vulkan semantics, that's not allowed, it'd have to be in a UBO or as a push constant.
We need to figure out what to do here. One option is to require users to write variants of their shaders under Vulkan and GL semantics, which is not great for users.
Another option is to see if we can get SPIRV Cross to rewrite the GLSL style uniforms into UBOs or push constants, which is a little more involved.
The first option isn't viable. The rewrite should be possible though.
google/shaderc#1380 should make the second option feasible.
Quick update for anyone that cares about this: I did GLES before doing this one. The shaderc patch is rolled into the engine. Once my patch to impellerc to let it encode more runtime stage types into a single IPLR file lands, I'll be looking at this.
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.- locked as resolved and limited conversation to collaborators
on Jan 25, 2024
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields✅ Done
Pre-requisite to #122823.