Skip to content

Commit ffe419d

Browse files
committed
vulkan_spriv: disable optimizations, target newer SPIR-V, add more type mapping
Any decent driver will compile down to the same exact binary: 7900: perf: [nlmeans_vulkan @ 0x7fcb50003740] Shader nlmeans_weights size: 9192 binary (33796 SPIR-V) [nlmeans_vulkan @ 0x7fcb50003740] Shader nlmeans_denoise size: 1808 binary (7044 SPIR-V) [bwdif_vulkan @ 0x7fa2400037f0] Shader bwdif size: 5360 binary (19968 SPIR-V) size: [nlmeans_vulkan @ 0x7fe4a4003740] Shader nlmeans_weights size: 9192 binary (34036 SPIR-V) [nlmeans_vulkan @ 0x7f5bf4003740] Shader nlmeans_denoise size: 1808 binary (7044 SPIR-V) [bwdif_vulkan @ 0x7fdc7c0037f0] Shader bwdif size: 5360 binary (19968 SPIR-V) none: [nlmeans_vulkan @ 0x7f1710003740] Shader nlmeans_weights size: 9192 binary (47220 SPIR-V) [nlmeans_vulkan @ 0x7f1710003740] Shader nlmeans_denoise size: 1808 binary (8448 SPIR-V) [bwdif_vulkan @ 0x7fd46c0037f0] Shader bwdif size: 5360 binary (29788 SPIR-V) Ada: perf: [nlmeans_vulkan @ 0x7f43c0003ec0] Shader nlmeans_weights size: 24098 binary (33796 SPIR-V) [nlmeans_vulkan @ 0x7f43c0003ec0] Shader nlmeans_denoise size: 8182 binary (7044 SPIR-V) [bwdif_vulkan @ 0x7f9744003f70] Shader bwdif size: 13507 binary (19968 SPIR-V) 1000 frames nlmeans: 0.36user 2.81system 0:42.18elapsed 7%CPU (0avgtext+0avgdata 355344maxresident)k 100000 frames bwdif=mode=send_field: 8.79user 3.49system 0:20.27elapsed 60%CPU (0avgtext+0avgdata 352664maxresident)k size: [nlmeans_vulkan @ 0x7f2a74003ec0] Shader nlmeans_weights size: 24073 binary (34036 SPIR-V) [nlmeans_vulkan @ 0x7f2a74003ec0] Shader nlmeans_denoise size: 8186 binary (7044 SPIR-V) [bwdif_vulkan @ 0x7fc438003f70] Shader bwdif size: 13510 binary (19968 SPIR-V) 1000 frames nlmeans: 0.35user 2.68system 0:41.95elapsed 7%CPU (0avgtext+0avgdata 328752maxresident)k 100000 frames bwdif=mode=send_field: 8.78user 3.48system 0:20.21elapsed 60%CPU (0avgtext+0avgdata 329440maxresident)k none: [nlmeans_vulkan @ 0x7fcb64003ec0] Shader nlmeans_weights size: 29789 binary (47220 SPIR-V) [nlmeans_vulkan @ 0x7fcb64003ec0] Shader nlmeans_denoise size: 8467 binary (8448 SPIR-V) [bwdif_vulkan @ 0x7f3234003f70] Shader bwdif size: 16630 binary (29788 SPIR-V) 1000 frames nlmeans: 0.33user 2.71system 0:42.05elapsed 7%CPU (0avgtext+0avgdata 351696maxresident)k 100000 frames bwdif=mode=send_field: 8.75user 3.54system 0:20.23elapsed 60%CPU (0avgtext+0avgdata 348996maxresident)k Non-zero optimizations also disable some debugging, which may make it harder for profilers.
1 parent f15514e commit ffe419d

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

libavfilter/vulkan_shaderc.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ static int shdc_shader_compile(FFVkSPIRVCompiler *ctx, void *avctx,
4141
[VK_SHADER_STAGE_VERTEX_BIT] = shaderc_glsl_vertex_shader,
4242
[VK_SHADER_STAGE_FRAGMENT_BIT] = shaderc_glsl_fragment_shader,
4343
[VK_SHADER_STAGE_COMPUTE_BIT] = shaderc_glsl_compute_shader,
44+
[VK_SHADER_STAGE_MESH_BIT_EXT] = shaderc_mesh_shader,
45+
[VK_SHADER_STAGE_TASK_BIT_EXT] = shaderc_task_shader,
46+
[VK_SHADER_STAGE_RAYGEN_BIT_KHR] = shaderc_raygen_shader,
47+
[VK_SHADER_STAGE_ANY_HIT_BIT_KHR] = shaderc_anyhit_shader,
48+
[VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR] = shaderc_closesthit_shader,
49+
[VK_SHADER_STAGE_MISS_BIT_KHR] = shaderc_miss_shader,
50+
[VK_SHADER_STAGE_INTERSECTION_BIT_KHR] = shaderc_intersection_shader,
51+
[VK_SHADER_STAGE_CALLABLE_BIT_KHR] = shaderc_callable_shader,
4452
};
4553

4654
shaderc_compile_options_t opts = shaderc_compile_options_initialize();
@@ -49,11 +57,11 @@ static int shdc_shader_compile(FFVkSPIRVCompiler *ctx, void *avctx,
4957
return AVERROR(ENOMEM);
5058

5159
shaderc_compile_options_set_target_env(opts, shaderc_target_env_vulkan,
52-
shaderc_env_version_vulkan_1_2);
53-
shaderc_compile_options_set_target_spirv(opts, shaderc_spirv_version_1_5);
60+
shaderc_env_version_vulkan_1_3);
61+
shaderc_compile_options_set_target_spirv(opts, shaderc_spirv_version_1_6);
5462
shaderc_compile_options_set_generate_debug_info(opts);
5563
shaderc_compile_options_set_optimization_level(opts,
56-
shaderc_optimization_level_performance);
64+
shaderc_optimization_level_zero);
5765

5866
res = shaderc_compile_into_spv((shaderc_compiler_t)ctx->priv,
5967
shd->src.str, strlen(shd->src.str),

0 commit comments

Comments
 (0)