Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3f90082

Browse files
authored
[Impeller] More sundry fixes to the Vulkan backend. (#40603)
* Fix mip-map generation in unit-tests where the command buffer was not submitted.* Cleanup descriptor counts being always 1 in Vulkan code-gen.* Reworked capabilities. Platforms can add to the base capability set.* Vulkan backend picks between more available color and stencil formats.* Descriptor pools are dynamically sized.* Layout transitions are more explicit. Both allocated and swapchain images track their own layouts and redundant transitions are avoided.* Objects active in a pending command buffer are collected but the waits happen on a separate fence waiter. Thread is named "io.flutter.impeller.fence_waiter".* Added queue and command buffer instant markers for better traces.* Command pools and their buffers are now thread local. Fixes sync validation failure.* Debug reports are now more readable and command buffer and queue breadcrumbs will be displayed on a validation report.* Staging buffers are back.* Pipeline caches have been wired up. After 50 frames, the current Vulkan pipeline cache will be written out to disk for subsequent launches. Writes will happen on a background worker.* Runtime stages have been wired up. But the build rules to provide the right stages are still remaining.Fixes#121536Fixes#121627Fixes#121632Fixes#120499
1 parent1febe9d commit3f90082

File tree

96 files changed

+3200
-1696
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+3200
-1696
lines changed

‎ci/licenses_golden/licenses_flutter‎

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,12 +1433,22 @@ ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc +
14331433
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h + ../../../flutter/LICENSE
14341434
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc + ../../../flutter/LICENSE
14351435
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h + ../../../flutter/LICENSE
1436+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc + ../../../flutter/LICENSE
1437+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h + ../../../flutter/LICENSE
14361438
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc + ../../../flutter/LICENSE
14371439
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h + ../../../flutter/LICENSE
1440+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc + ../../../flutter/LICENSE
1441+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h + ../../../flutter/LICENSE
1442+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc + ../../../flutter/LICENSE
1443+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h + ../../../flutter/LICENSE
14381444
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc + ../../../flutter/LICENSE
14391445
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h + ../../../flutter/LICENSE
1446+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc + ../../../flutter/LICENSE
1447+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h + ../../../flutter/LICENSE
14401448
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc + ../../../flutter/LICENSE
14411449
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h + ../../../flutter/LICENSE
1450+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc + ../../../flutter/LICENSE
1451+
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h + ../../../flutter/LICENSE
14421452
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc + ../../../flutter/LICENSE
14431453
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h + ../../../flutter/LICENSE
14441454
ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc + ../../../flutter/LICENSE
@@ -1478,6 +1488,8 @@ ORIGIN: ../../../flutter/impeller/renderer/buffer.cc + ../../../flutter/LICENSE
14781488
ORIGIN: ../../../flutter/impeller/renderer/buffer.h + ../../../flutter/LICENSE
14791489
ORIGIN: ../../../flutter/impeller/renderer/buffer_view.cc + ../../../flutter/LICENSE
14801490
ORIGIN: ../../../flutter/impeller/renderer/buffer_view.h + ../../../flutter/LICENSE
1491+
ORIGIN: ../../../flutter/impeller/renderer/capabilities.cc + ../../../flutter/LICENSE
1492+
ORIGIN: ../../../flutter/impeller/renderer/capabilities.h + ../../../flutter/LICENSE
14811493
ORIGIN: ../../../flutter/impeller/renderer/command.cc + ../../../flutter/LICENSE
14821494
ORIGIN: ../../../flutter/impeller/renderer/command.h + ../../../flutter/LICENSE
14831495
ORIGIN: ../../../flutter/impeller/renderer/command_buffer.cc + ../../../flutter/LICENSE
@@ -1492,13 +1504,10 @@ ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc + ../.
14921504
ORIGIN: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h + ../../../flutter/LICENSE
14931505
ORIGIN: ../../../flutter/impeller/renderer/context.cc + ../../../flutter/LICENSE
14941506
ORIGIN: ../../../flutter/impeller/renderer/context.h + ../../../flutter/LICENSE
1495-
ORIGIN: ../../../flutter/impeller/renderer/descriptor_set_layout.h + ../../../flutter/LICENSE
14961507
ORIGIN: ../../../flutter/impeller/renderer/device_buffer.cc + ../../../flutter/LICENSE
14971508
ORIGIN: ../../../flutter/impeller/renderer/device_buffer.h + ../../../flutter/LICENSE
14981509
ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc + ../../../flutter/LICENSE
14991510
ORIGIN: ../../../flutter/impeller/renderer/device_buffer_descriptor.h + ../../../flutter/LICENSE
1500-
ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.cc + ../../../flutter/LICENSE
1501-
ORIGIN: ../../../flutter/impeller/renderer/device_capabilities.h + ../../../flutter/LICENSE
15021511
ORIGIN: ../../../flutter/impeller/renderer/formats.cc + ../../../flutter/LICENSE
15031512
ORIGIN: ../../../flutter/impeller/renderer/formats.h + ../../../flutter/LICENSE
15041513
ORIGIN: ../../../flutter/impeller/renderer/gpu_tracer.cc + ../../../flutter/LICENSE
@@ -3987,12 +3996,22 @@ FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc
39873996
FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h
39883997
FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.cc
39893998
FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h
3999+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.cc
4000+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/command_pool_vk.h
39904001
FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.cc
39914002
FILE: ../../../flutter/impeller/renderer/backend/vulkan/context_vk.h
4003+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc
4004+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/debug_report_vk.h
4005+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc
4006+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.h
39924007
FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.cc
39934008
FILE: ../../../flutter/impeller/renderer/backend/vulkan/device_buffer_vk.h
4009+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.cc
4010+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/fence_waiter_vk.h
39944011
FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.cc
39954012
FILE: ../../../flutter/impeller/renderer/backend/vulkan/formats_vk.h
4013+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.cc
4014+
FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_cache_vk.h
39964015
FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.cc
39974016
FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_library_vk.h
39984017
FILE: ../../../flutter/impeller/renderer/backend/vulkan/pipeline_vk.cc
@@ -4032,6 +4051,8 @@ FILE: ../../../flutter/impeller/renderer/buffer.cc
40324051
FILE: ../../../flutter/impeller/renderer/buffer.h
40334052
FILE: ../../../flutter/impeller/renderer/buffer_view.cc
40344053
FILE: ../../../flutter/impeller/renderer/buffer_view.h
4054+
FILE: ../../../flutter/impeller/renderer/capabilities.cc
4055+
FILE: ../../../flutter/impeller/renderer/capabilities.h
40354056
FILE: ../../../flutter/impeller/renderer/command.cc
40364057
FILE: ../../../flutter/impeller/renderer/command.h
40374058
FILE: ../../../flutter/impeller/renderer/command_buffer.cc
@@ -4046,13 +4067,10 @@ FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.cc
40464067
FILE: ../../../flutter/impeller/renderer/compute_pipeline_descriptor.h
40474068
FILE: ../../../flutter/impeller/renderer/context.cc
40484069
FILE: ../../../flutter/impeller/renderer/context.h
4049-
FILE: ../../../flutter/impeller/renderer/descriptor_set_layout.h
40504070
FILE: ../../../flutter/impeller/renderer/device_buffer.cc
40514071
FILE: ../../../flutter/impeller/renderer/device_buffer.h
40524072
FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.cc
40534073
FILE: ../../../flutter/impeller/renderer/device_buffer_descriptor.h
4054-
FILE: ../../../flutter/impeller/renderer/device_capabilities.cc
4055-
FILE: ../../../flutter/impeller/renderer/device_capabilities.h
40564074
FILE: ../../../flutter/impeller/renderer/formats.cc
40574075
FILE: ../../../flutter/impeller/renderer/formats.h
40584076
FILE: ../../../flutter/impeller/renderer/gpu_tracer.cc

‎impeller/aiks/aiks_unittests.cc‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ bool GenerateMipmap(const std::shared_ptr<Context>& context,
110110
}
111111
pass->GenerateMipmap(std::move(texture),std::move(label));
112112
pass->EncodeCommands(context->GetResourceAllocator());
113-
returntrue;
113+
returnbuffer->SubmitCommands();
114114
}
115115

116116
TEST_P(AiksTest, CanRenderTiledTexture) {
@@ -1823,6 +1823,10 @@ TEST_P(AiksTest, SiblingSaveLayerBoundsAreRespected) {
18231823
}
18241824

18251825
TEST_P(AiksTest, CanRenderClippedLayers) {
1826+
if (GetBackend() == PlaygroundBackend::kVulkan) {
1827+
GTEST_SKIP_("Temporarily disabled.");
1828+
}
1829+
18261830
Canvas canvas;
18271831

18281832
canvas.DrawPaint({.color =Color::White()});
@@ -1873,6 +1877,9 @@ TEST_P(AiksTest, SaveLayerFiltersScaleWithTransform) {
18731877
}
18741878

18751879
TEST_P(AiksTest, SceneColorSource) {
1880+
if (GetBackend() == PlaygroundBackend::kVulkan) {
1881+
GTEST_SKIP_("Temporarily disabled.");
1882+
}
18761883
// Load up the scene.
18771884
auto mapping =
18781885
flutter::testing::OpenFixtureAsMapping("flutter_logo_baked.glb.ipscene");

‎impeller/aiks/picture.cc‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ std::shared_ptr<Texture> Picture::RenderToTexture(
5454
// features to Image someday.
5555
auto impeller_context = context.GetContext();
5656
RenderTarget target;
57-
if (impeller_context->GetDeviceCapabilities().SupportsOffscreenMSAA()) {
57+
if (impeller_context->GetCapabilities()->SupportsOffscreenMSAA()) {
5858
target =RenderTarget::CreateOffscreenMSAA(*impeller_context, size);
5959
}else {
6060
target =RenderTarget::CreateOffscreen(*impeller_context, size);

‎impeller/compiler/code_gen_template.h‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ constexpr std::string_view kReflectionHeaderTemplate =
2222
2323
#include "impeller/renderer/compute_command.h" {# // nogncheck #}
2424
25-
#include "impeller/renderer/descriptor_set_layout.h" {# // nogncheck #}
26-
2725
#include "impeller/renderer/sampler.h" {# // nogncheck #}
2826
2927
#include "impeller/renderer/shader_types.h" {# // nogncheck #}
@@ -166,17 +164,15 @@ std::move({{ arg.argument_name }}){% if not loop.is_last %}, {% endif %}
166164
{% for buffer in buffers %}
167165
DescriptorSetLayout{
168166
{{buffer.binding}}, // binding = {{buffer.binding}}
169-
DescriptorType::kUniformBuffer, // descriptorType = Uniform Buffer
170-
1, // descriptorCount = 1
171-
{{to_shader_stage(shader_stage)}}, // stageFlags = {{to_shader_stage(shader_stage)}}
167+
DescriptorType::kUniformBuffer, // descriptor_type = Uniform Buffer
168+
{{to_shader_stage(shader_stage)}}, // shader_stage = {{to_shader_stage(shader_stage)}}
172169
},
173170
{% endfor %}
174171
{% for sampled_image in sampled_images %}
175172
DescriptorSetLayout{
176173
{{sampled_image.binding}}, // binding = {{sampled_image.binding}}
177-
DescriptorType::kSampledImage, // descriptorType = Sampled Image
178-
1, // descriptorCount = 1
179-
{{to_shader_stage(shader_stage)}}, // stageFlags = {{to_shader_stage(shader_stage)}}
174+
DescriptorType::kSampledImage, // descriptor_type = Sampled Image
175+
{{to_shader_stage(shader_stage)}}, // shader_stage = {{to_shader_stage(shader_stage)}}
180176
},
181177
{% endfor %}
182178
};

‎impeller/compiler/compiler.cc‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ static bool EntryPointMustBeNamedMain(TargetPlatform platform) {
144144
case TargetPlatform::kMetalIOS:
145145
case TargetPlatform::kVulkan:
146146
case TargetPlatform::kRuntimeStageMetal:
147+
case TargetPlatform::kRuntimeStageVulkan:
147148
returnfalse;
148149
case TargetPlatform::kSkSL:
149150
case TargetPlatform::kOpenGLES:
@@ -162,6 +163,7 @@ static CompilerBackend CreateCompiler(const spirv_cross::ParsedIR& ir,
162163
case TargetPlatform::kMetalIOS:
163164
case TargetPlatform::kRuntimeStageMetal:
164165
case TargetPlatform::kVulkan:
166+
case TargetPlatform::kRuntimeStageVulkan:
165167
compiler =CreateMSLCompiler(ir, source_options);
166168
break;
167169
case TargetPlatform::kUnknown:
@@ -375,6 +377,7 @@ Compiler::Compiler(const fml::Mapping& source_mapping,
375377
shaderc_spirv_version::shaderc_spirv_version_1_3);
376378
break;
377379
case TargetPlatform::kVulkan:
380+
case TargetPlatform::kRuntimeStageVulkan:
378381
spirv_options.SetOptimizationLevel(
379382
shaderc_optimization_level::shaderc_optimization_level_performance);
380383
spirv_options.SetTargetEnvironment(

‎impeller/compiler/impellerc_main.cc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ bool Main(const fml::CommandLine& command_line) {
220220
case TargetPlatform::kOpenGLDesktop:
221221
case TargetPlatform::kRuntimeStageMetal:
222222
case TargetPlatform::kRuntimeStageGLES:
223+
case TargetPlatform::kRuntimeStageVulkan:
223224
case TargetPlatform::kSkSL:
224225
case TargetPlatform::kVulkan:
225226
result_file = switches.sl_file_name;

‎impeller/compiler/runtime_stage_data.cc‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ static std::optional<fb::TargetPlatform> ToTargetPlatform(
8888
return fb::TargetPlatform::kMetal;
8989
case TargetPlatform::kRuntimeStageGLES:
9090
return fb::TargetPlatform::kOpenGLES;
91+
case TargetPlatform::kRuntimeStageVulkan:
92+
return fb::TargetPlatform::kVulkan;
9193
}
9294
FML_UNREACHABLE();
9395
}
@@ -102,11 +104,13 @@ static std::optional<uint32_t> ToJsonTargetPlatform(TargetPlatform platform) {
102104
case TargetPlatform::kVulkan:
103105
return std::nullopt;
104106
case TargetPlatform::kSkSL:
105-
return0;//fb::TargetPlatform::kSkSL;
107+
returnstatic_cast<uint32_t>(fb::TargetPlatform::kSkSL);
106108
case TargetPlatform::kRuntimeStageMetal:
107-
return1;//fb::TargetPlatform::kMetal;
109+
returnstatic_cast<uint32_t>(fb::TargetPlatform::kMetal);
108110
case TargetPlatform::kRuntimeStageGLES:
109-
return2;// fb::TargetPlatform::kOpenGLES;
111+
returnstatic_cast<uint32_t>(fb::TargetPlatform::kOpenGLES);
112+
case TargetPlatform::kRuntimeStageVulkan:
113+
returnstatic_cast<uint32_t>(fb::TargetPlatform::kVulkan);
110114
}
111115
FML_UNREACHABLE();
112116
}

‎impeller/compiler/switches.cc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ static const std::map<std::string, TargetPlatform> kKnownPlatforms = {
2525
{"sksl", TargetPlatform::kSkSL},
2626
{"runtime-stage-metal", TargetPlatform::kRuntimeStageMetal},
2727
{"runtime-stage-gles", TargetPlatform::kRuntimeStageGLES},
28+
{"runtime-stage-vulkan", TargetPlatform::kRuntimeStageVulkan},
2829
};
2930

3031
staticconst std::map<std::string, SourceType>kKnownSourceTypes = {

‎impeller/compiler/types.cc‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ std::string TargetPlatformToString(TargetPlatform platform) {
6868
return"RuntimeStageMetal";
6969
case TargetPlatform::kRuntimeStageGLES:
7070
return"RuntimeStageGLES";
71+
case TargetPlatform::kRuntimeStageVulkan:
72+
return"RuntimeStageVulkan";
7173
case TargetPlatform::kSkSL:
7274
return"SkSL";
7375
}
@@ -129,6 +131,7 @@ bool TargetPlatformNeedsSL(TargetPlatform platform) {
129131
case TargetPlatform::kOpenGLDesktop:
130132
case TargetPlatform::kRuntimeStageMetal:
131133
case TargetPlatform::kRuntimeStageGLES:
134+
case TargetPlatform::kRuntimeStageVulkan:
132135
case TargetPlatform::kSkSL:
133136
case TargetPlatform::kVulkan:
134137
returntrue;
@@ -146,6 +149,7 @@ bool TargetPlatformNeedsReflection(TargetPlatform platform) {
146149
case TargetPlatform::kOpenGLDesktop:
147150
case TargetPlatform::kRuntimeStageMetal:
148151
case TargetPlatform::kRuntimeStageGLES:
152+
case TargetPlatform::kRuntimeStageVulkan:
149153
case TargetPlatform::kVulkan:
150154
returntrue;
151155
case TargetPlatform::kUnknown:
@@ -228,6 +232,7 @@ spirv_cross::CompilerMSL::Options::Platform TargetPlatformToMSLPlatform(
228232
case TargetPlatform::kOpenGLES:
229233
case TargetPlatform::kOpenGLDesktop:
230234
case TargetPlatform::kRuntimeStageGLES:
235+
case TargetPlatform::kRuntimeStageVulkan:
231236
case TargetPlatform::kVulkan:
232237
case TargetPlatform::kUnknown:
233238
return spirv_cross::CompilerMSL::Options::Platform::macOS;
@@ -267,6 +272,7 @@ std::string TargetPlatformSLExtension(TargetPlatform platform) {
267272
case TargetPlatform::kRuntimeStageGLES:
268273
return"glsl";
269274
case TargetPlatform::kVulkan:
275+
case TargetPlatform::kRuntimeStageVulkan:
270276
return"vk.spirv";
271277
}
272278
FML_UNREACHABLE();
@@ -280,6 +286,7 @@ bool TargetPlatformIsOpenGL(TargetPlatform platform) {
280286
returntrue;
281287
case TargetPlatform::kMetalDesktop:
282288
case TargetPlatform::kRuntimeStageMetal:
289+
case TargetPlatform::kRuntimeStageVulkan:
283290
case TargetPlatform::kMetalIOS:
284291
case TargetPlatform::kUnknown:
285292
case TargetPlatform::kSkSL:
@@ -300,6 +307,7 @@ bool TargetPlatformIsMetal(TargetPlatform platform) {
300307
case TargetPlatform::kOpenGLES:
301308
case TargetPlatform::kOpenGLDesktop:
302309
case TargetPlatform::kRuntimeStageGLES:
310+
case TargetPlatform::kRuntimeStageVulkan:
303311
case TargetPlatform::kVulkan:
304312
returnfalse;
305313
}
@@ -311,6 +319,7 @@ bool TargetPlatformBundlesSkSL(TargetPlatform platform) {
311319
case TargetPlatform::kSkSL:
312320
case TargetPlatform::kRuntimeStageMetal:
313321
case TargetPlatform::kRuntimeStageGLES:
322+
case TargetPlatform::kRuntimeStageVulkan:
314323
returntrue;
315324
case TargetPlatform::kMetalDesktop:
316325
case TargetPlatform::kMetalIOS:

‎impeller/compiler/types.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ enum class TargetPlatform {
3434
kVulkan,
3535
kRuntimeStageMetal,
3636
kRuntimeStageGLES,
37+
kRuntimeStageVulkan,
3738
kSkSL,
3839
};
3940

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2026 Movatter.jp