diff options
author | David Neto <dneto@google.com> | 2020-09-28 10:26:45 -0400 |
---|---|---|
committer | David Neto <dneto@google.com> | 2020-09-28 10:26:45 -0400 |
commit | eb5d79cbc50581eb63a482107f0a4b5b198228a4 (patch) | |
tree | ab8fa8502c03c164088db3754854b8e259be4429 | |
parent | bc7611c39c09ce0a69b3dc961d24d019634be0dd (diff) | |
parent | 1fce59794079f90ceb091190adbbb5499acd4e95 (diff) | |
download | shaderc-ndk-release-r22.tar.gz |
Merge commit 'aosp/v2020.3' into update-shadercndk-r22-beta1ndk-r22ndk-release-r22
Includes:
1fce597 Finalize SPIRV-Tools v2020.3
4826423 Roll 3 dependencies and update expectations (#1133)
b6c82a1 Roll 4 dependencies and updated expectations (#1132)
21b36f7 Roll 4 dependencies (#1131)
ffd8051 Add support for Dawn using deprecated Options constructor (#1130)
9f09e3f Roll 5 dependencies and update expectations (#1129)
c626b91 Update some language usage. (#1124)
cfacaaf Adding support for the additional fixed sample mask in MSL (#1120)
469c206 Rolling 2 dependencies and updating expectations (#1121)
25a8165 Clean up issues discovered by Infer
34c9aac Start shaderc v2020.3 development
Testing: checkbuild.py on Linux; unit tests on Windows
Change-Id: I3a7173baeb1e3b15786dfcf3f0a31f3ed0887575
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CHANGES | 8 | ||||
-rw-r--r-- | DEPS | 10 | ||||
-rw-r--r-- | libshaderc/src/shaderc_cpp_test.cc | 2 | ||||
-rw-r--r-- | libshaderc/src/shaderc_test.cc | 2 | ||||
-rw-r--r-- | libshaderc_spvc/include/spvc/spvc.h | 5 | ||||
-rw-r--r-- | libshaderc_spvc/include/spvc/spvc.hpp | 9 | ||||
-rw-r--r-- | libshaderc_spvc/src/spvc.cc | 9 | ||||
-rw-r--r-- | libshaderc_spvc/src/spvc_cpp_test.cc | 4 | ||||
-rw-r--r-- | libshaderc_spvc/src/spvc_private.cc | 51 | ||||
-rw-r--r-- | libshaderc_spvc/src/spvc_test.cc | 2 | ||||
-rw-r--r-- | libshaderc_util/include/libshaderc_util/file_finder.h | 2 | ||||
-rw-r--r-- | spvc/src/main.cc | 19 | ||||
-rw-r--r-- | spvc/test/known_failures | 59 | ||||
-rw-r--r-- | spvc/test/known_spvc_failures | 60 | ||||
-rw-r--r-- | spvc/test/unconfirmed_invalids | 15 |
16 files changed, 184 insertions, 74 deletions
@@ -1,5 +1,6 @@ build/ build-*/ +out/ *.pyc *.swp compile_commands.json @@ -1,5 +1,13 @@ Revision history for Shaderc +v2020.3 2020-09-02 + - General: + - Last release with spvc + - Cleaned up issues discovered by Infer + - spvc: + - Added support for Dawn using deprecated Options constructor + - Adding support for the additional fixed sample mask in MSL + v2020.2 2020-07-23 - General: - Remove VS2013 support @@ -5,12 +5,12 @@ vars = { 'khronos_git': 'https://github.com/KhronosGroup', 'effcee_revision' : '2ec8f8738118cc483b67c04a759fee53496c5659', - 'glslang_revision': '3ee5f2f1d3316e228916788b300d786bb574d337', - 'googletest_revision': 'a781fe29bcf73003559a3583167fe3d647518464', + 'glslang_revision': '517f39eee46f27c83527117d831c4d7e2f7c9fe3', + 'googletest_revision': 'df6b75949b1efab7606ba60c0f0a0125ac95c5af', 're2_revision': 'ca11026a032ce2a3de4b3c389ee53d2bdc8794d6', - 'spirv_headers_revision': '979924c8bc839e4cb1b69d03d48398551f369ce7', - 'spirv_tools_revision': '969f0286479b89267b6c89f6d5223285c265e6ae', - 'spirv_cross_revision': '6575e451f5bffded6e308988362224dd076b0f2b', + 'spirv_headers_revision': '3fdabd0da2932c276b25b9b4a988ba134eba1aa6', + 'spirv_tools_revision': '8a0ebd40f86d1f18ad42ea96c6ac53915076c3c7', + 'spirv_cross_revision': '685f86471e9d26b3eb7676695a2e2cefb4551ae9', } deps = { diff --git a/libshaderc/src/shaderc_cpp_test.cc b/libshaderc/src/shaderc_cpp_test.cc index 744d2ee..af9ae30 100644 --- a/libshaderc/src/shaderc_cpp_test.cc +++ b/libshaderc/src/shaderc_cpp_test.cc @@ -363,7 +363,7 @@ TEST_F(CppInterface, D_DisassemblyOption) { const AssemblyCompilationResult result = compiler_.CompileGlslToSpvAssembly( kMinimalShader, shaderc_glsl_vertex_shader, "shader", options_); EXPECT_TRUE(CompilationResultIsSuccess(result)); - // This should work with both the glslang native disassembly format and the + // This should work with both the glslang disassembly format and the // SPIR-V Tools assembly format. EXPECT_THAT(CompilerOutputAsString(result), HasSubstr("Capability Shader")); EXPECT_THAT(CompilerOutputAsString(result), HasSubstr("MemoryModel")); diff --git a/libshaderc/src/shaderc_test.cc b/libshaderc/src/shaderc_test.cc index 14f28ab..3162468 100644 --- a/libshaderc/src/shaderc_test.cc +++ b/libshaderc/src/shaderc_test.cc @@ -498,7 +498,7 @@ TEST_F(CompileStringWithOptionsTest, ValuelessMacroCompileOptionsNullPointer) { TEST_F(CompileStringWithOptionsTest, DisassemblyOption) { ASSERT_NE(nullptr, compiler_.get_compiler_handle()); - // This should work with both the glslang native assembly format and the + // This should work with both the glslang assembly format and the // SPIR-V tools assembly format. const std::string disassembly_text = CompilationOutput(kMinimalShader, shaderc_glsl_vertex_shader, diff --git a/libshaderc_spvc/include/spvc/spvc.h b/libshaderc_spvc/include/spvc/spvc.h index d216ad5..e40b434 100644 --- a/libshaderc_spvc/include/spvc/spvc.h +++ b/libshaderc_spvc/include/spvc/spvc.h @@ -443,6 +443,11 @@ SHADERC_EXPORT shaderc_spvc_status shaderc_spvc_compile_options_set_msl_buffer_size_buffer_index( shaderc_spvc_compile_options_t options, uint32_t index); +// Set the additional fixed sample mask for MSL +SHADERC_EXPORT shaderc_spvc_status +shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask( + shaderc_spvc_compile_options_t options, uint32_t mask); + // Set HLSL shader model. Default is 30. SHADERC_EXPORT shaderc_spvc_status shaderc_spvc_compile_options_set_hlsl_shader_model( diff --git a/libshaderc_spvc/include/spvc/spvc.hpp b/libshaderc_spvc/include/spvc/spvc.hpp index 1c2e7d4..33e717d 100644 --- a/libshaderc_spvc/include/spvc/spvc.hpp +++ b/libshaderc_spvc/include/spvc/spvc.hpp @@ -78,6 +78,9 @@ class CompilationResult { uint32_t binary_length; status = shaderc_spvc_result_get_binary_length(result_.get(), &binary_length); + if (status != shaderc_spvc_status_success) { + return status; + } if (!binary_output || !binary_length) { *data = std::vector<uint32_t>(); } else { @@ -277,6 +280,12 @@ class CompileOptions { options_.get(), index); } + // Set the additional fixed sample mask for MSL + shaderc_spvc_status SetMSLAdditionalFixedSampleMask(uint32_t mask) { + return shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask( + options_.get(), mask); + } + // Which HLSL shader model should be used. Default is 30. shaderc_spvc_status SetHLSLShaderModel(uint32_t model) { return shaderc_spvc_compile_options_set_hlsl_shader_model(options_.get(), diff --git a/libshaderc_spvc/src/spvc.cc b/libshaderc_spvc/src/spvc.cc index 5e27b56..8ff4afb 100644 --- a/libshaderc_spvc/src/spvc.cc +++ b/libshaderc_spvc/src/spvc.cc @@ -606,6 +606,15 @@ shaderc_spvc_compile_options_set_msl_buffer_size_buffer_index( return shaderc_spvc_status_success; } +shaderc_spvc_status +shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask( + shaderc_spvc_compile_options_t options, uint32_t mask) { + CHECK_OPTIONS(nullptr, options); + + options->msl.additional_fixed_sample_mask = mask; + return shaderc_spvc_status_success; +} + shaderc_spvc_status shaderc_spvc_compile_options_set_hlsl_shader_model( shaderc_spvc_compile_options_t options, uint32_t model) { CHECK_OPTIONS(nullptr, options); diff --git a/libshaderc_spvc/src/spvc_cpp_test.cc b/libshaderc_spvc/src/spvc_cpp_test.cc index 09ad88b..7bb426a 100644 --- a/libshaderc_spvc/src/spvc_cpp_test.cc +++ b/libshaderc_spvc/src/spvc_cpp_test.cc @@ -25,6 +25,10 @@ namespace { class CompileTest : public testing::Test { public: + CompileTest() + : options_(shaderc_spvc_spv_env_vulkan_1_1, + shaderc_spvc_spv_env_vulkan_1_1) {} + Context context_; CompileOptions options_; CompilationResult result_; diff --git a/libshaderc_spvc/src/spvc_private.cc b/libshaderc_spvc/src/spvc_private.cc index 69ca3e4..4884db6 100644 --- a/libshaderc_spvc/src/spvc_private.cc +++ b/libshaderc_spvc/src/spvc_private.cc @@ -29,6 +29,21 @@ #define CATCH_IF_EXCEPTIONS_ENABLED(X) catch (X) #endif +namespace { +bool is_vulkan_env(spv_target_env env) { + switch (env) { + case SPV_ENV_VULKAN_1_0: + case SPV_ENV_VULKAN_1_1: + case SPV_ENV_VULKAN_1_1_SPIRV_1_4: + case SPV_ENV_VULKAN_1_2: + return true; + default: + return false; + } +} + +} // namespace + namespace spvc_private { spv_target_env get_spv_target_env(shaderc_target_env env, @@ -115,29 +130,35 @@ shaderc_spvc_status translate_spirv(shaderc_spvc_context* context, const uint32_t* source, size_t source_len, shaderc_spvc_compile_options_t options, std::vector<uint32_t>* target) { + bool registered_pass = false; if (!target) { shaderc_spvc::ErrorLog(context) << "null provided for translation destination."; return shaderc_spvc_status_transformation_error; } - if (source_env == target_env) { - target->resize(source_len); - memcpy(target->data(), source, source_len * sizeof(uint32_t)); - return shaderc_spvc_status_success; - } - spvtools::Optimizer opt(source_env); + opt.SetValidateAfterAll(options->validate); opt.SetMessageConsumer(std::bind( consume_spirv_tools_message, context, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); - if (source_env == SPV_ENV_WEBGPU_0 && target_env == SPV_ENV_VULKAN_1_1) { + if (source_env == SPV_ENV_WEBGPU_0 && is_vulkan_env(target_env)) { + registered_pass = true; opt.RegisterWebGPUToVulkanPasses(); - } else if (source_env == SPV_ENV_VULKAN_1_1 && - target_env == SPV_ENV_WEBGPU_0) { + } else if (is_vulkan_env(source_env) && target_env == SPV_ENV_WEBGPU_0) { + registered_pass = true; opt.RegisterVulkanToWebGPUPasses(); - } else { + } else if (source_env == SPV_ENV_UNIVERSAL_1_0 && + target_env == SPV_ENV_UNIVERSAL_1_0) { + // Assuming that the default constructor in Dawn was used, thus the intent + // was to perform WebGPU->Vulkan conversion. + // + // TODO: Remove this case once deprecated options constructor with defaults + // is removed. + registered_pass = true; + opt.RegisterWebGPUToVulkanPasses(); + } else if (source_env != target_env) { shaderc_spvc::ErrorLog(context) << "No defined transformation between source and target execution " "environments."; @@ -145,10 +166,18 @@ shaderc_spvc_status translate_spirv(shaderc_spvc_context* context, } if (options->robust_buffer_access_pass) { + registered_pass = true; opt.RegisterPass(spvtools::CreateGraphicsRobustAccessPass()); } - if (!opt.Run(source, source_len, target)) { + if (!registered_pass) { + target->resize(source_len); + memcpy(target->data(), source, source_len * sizeof(uint32_t)); + return shaderc_spvc_status_success; + } + + if (!opt.Run(source, source_len, target, spvtools::ValidatorOptions(), + options->validate)) { shaderc_spvc::ErrorLog(context) << "Transformations between source and " "target execution environments failed."; return shaderc_spvc_status_transformation_error; diff --git a/libshaderc_spvc/src/spvc_test.cc b/libshaderc_spvc/src/spvc_test.cc index 7a572bd..3409668 100644 --- a/libshaderc_spvc/src/spvc_test.cc +++ b/libshaderc_spvc/src/spvc_test.cc @@ -28,7 +28,7 @@ class CompileTest : public testing::Test { void SetUp() override { context_ = shaderc_spvc_context_create(); options_ = shaderc_spvc_compile_options_create( - shaderc_spvc_spv_env_vulkan_1_0, shaderc_spvc_spv_env_vulkan_1_0); + shaderc_spvc_spv_env_vulkan_1_1, shaderc_spvc_spv_env_vulkan_1_1); result_ = shaderc_spvc_result_create(); } diff --git a/libshaderc_util/include/libshaderc_util/file_finder.h b/libshaderc_util/include/libshaderc_util/file_finder.h index 2c1c9d1..a5f91cf 100644 --- a/libshaderc_util/include/libshaderc_util/file_finder.h +++ b/libshaderc_util/include/libshaderc_util/file_finder.h @@ -27,7 +27,7 @@ class FileFinder { // non-empty. The search is attempted on filename prefixed by each element of // search_path() in turn. The first hit is returned, or an empty string if // there are no hits. Search attempts treat their argument the way - // std::fopen() treats its filename argument, blind to whether the path is + // std::fopen() treats its filename argument, ignoring whether the path is // absolute or relative. // // If a search_path() element is non-empty and not ending in a slash, then a diff --git a/spvc/src/main.cc b/spvc/src/main.cc index b8e03e9..86969cb 100644 --- a/spvc/src/main.cc +++ b/spvc/src/main.cc @@ -89,6 +89,7 @@ Options: --msl-domain-lower-left --msl-argument-buffers --msl-discrete-descriptor-set=<number> + --msl-additional-fixed-sample-mask=<number> --emit-line-directives --hlsl-enable-compat --shader-model=<model> @@ -111,14 +112,15 @@ bool ReadFile(const std::string& path, std::vector<uint32_t>* out) { out->resize(ftell(file) / sizeof((*out)[0])); rewind(file); + bool status = true; if (fread(out->data(), sizeof((*out)[0]), out->size(), file) != out->size()) { std::cerr << "Failed to read SPIR-V file: " << path << std::endl; out->clear(); - return false; + status = false; } fclose(file); - return true; + return status; } bool StringPieceToEnvEnum(const string_piece& str, shaderc_spvc_spv_env* env) { @@ -294,6 +296,17 @@ int main(int argc, char** argv) { return 1; } msl_discrete_descriptor.push_back(descriptor_num); + } else if (arg.starts_with("--msl-additional-fixed-sample-mask=")) { + string_piece sample_mask_str; + GetOptionArgument(argc, argv, &i, + "--msl-additional-fixed-sample-mask=", &sample_mask_str); + uint32_t sample_mask_num; + if (!shaderc_util::ParseUint32(sample_mask_str.str(), &sample_mask_num)) { + std::cerr << "spvc: error: invalid value '" << sample_mask_str + << "' in --msl-additional-fixed-sample-mask=" << std::endl; + return 1; + } + options.SetMSLAdditionalFixedSampleMask(sample_mask_num); } else if (arg == "--emit-line-directives") { options.SetEmitLineDirectives(true); } else if (arg.starts_with("--shader-model=")) { @@ -325,7 +338,7 @@ int main(int argc, char** argv) { options.SetMSLDiscreteDescriptorSets(msl_discrete_descriptor); shaderc_spvc::CompilationResult result; - shaderc_spvc_status status = shaderc_spvc_status_configuration_error; + shaderc_spvc_status status; if (output_language == "glsl") { status = context.InitializeForGlsl((const uint32_t*)input.data(), diff --git a/spvc/test/known_failures b/spvc/test/known_failures index 7ce027b..c6f2b90 100644 --- a/spvc/test/known_failures +++ b/spvc/test/known_failures @@ -10,20 +10,18 @@ shaders-hlsl/comp/num-workgroups-alone.comp,False shaders-hlsl/comp/num-workgroups-alone.comp,True shaders-hlsl/comp/num-workgroups-with-builtins.comp,False shaders-hlsl/comp/num-workgroups-with-builtins.comp,True -shaders-hlsl/frag/combined-texture-sampler-shadow.frag,False shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag,False shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag,False shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag,True shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag,False shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag,True -shaders-hlsl/vert/read-from-row-major-array.vert,False -shaders-hlsl/vert/read-from-row-major-array.vert,True shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp,False shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp,False shaders-msl-no-opt/asm/comp/device-array-load-temporary.force-native-array.asm.comp,False shaders-msl-no-opt/asm/comp/device-constant-array-load-store.force-native-array.asm.comp,False shaders-msl-no-opt/asm/frag/phi.zero-initialize.asm.frag,False shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag,False +shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc,False shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp,False shaders-msl-no-opt/comp/int64.invalid.msl22.comp,False shaders-msl-no-opt/frag/force-active-resources.msl2.argument..force-active.discrete.frag,False @@ -37,6 +35,8 @@ shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag,False shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag,True shaders-msl/asm/frag/min-lod.msl22.asm.frag,False shaders-msl/asm/frag/min-lod.msl22.asm.frag,True +shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc,False +shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc,True shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert,False shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert,True shaders-msl/comp/basic.dispatchbase.comp,False @@ -48,37 +48,63 @@ shaders-msl/comp/basic.inline-block.msl2.comp,True shaders-msl/comp/composite-array-initialization.force-native-array.comp,False shaders-msl/comp/composite-array-initialization.force-native-array.comp,True shaders-msl/comp/copy-array-of-arrays.force-native-array.comp,False +shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc,False +shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc,True +shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc,False +shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc,True shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert,False shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert,True +shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert,False +shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert,True shaders-msl/frag/barycentric-nv-nopersp.msl22.frag,False shaders-msl/frag/barycentric-nv-nopersp.msl22.frag,True shaders-msl/frag/barycentric-nv.msl22.frag,False shaders-msl/frag/barycentric-nv.msl22.frag,True shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag,False shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag,True -shaders-msl/frag/constant-array.frag,False -shaders-msl/frag/constant-array.frag,True shaders-msl/frag/disable-frag-output.frag-output.frag,False shaders-msl/frag/disable-frag-output.frag-output.frag,True shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag,False shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag,True shaders-msl/frag/image-query-lod.msl22.frag,False shaders-msl/frag/image-query-lod.msl22.frag,True -shaders-msl/frag/separate-image-sampler-argument.frag,False +shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag,True +shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag,True +shaders-msl/frag/sample-mask.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask.fixed-sample-mask.frag,True +shaders-msl/frag/shader-arithmetic-8bit.frag,True shaders-msl/frag/subgroup-builtins.msl22.frag,False shaders-msl/frag/subgroup-builtins.msl22.frag,True shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag,False shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag,True shaders-msl/frag/vecsize-mismatch.shader-inputs.frag,False shaders-msl/frag/vecsize-mismatch.shader-inputs.frag,True -shaders-msl/tese/water_tess.tese,False -shaders-msl/tese/water_tess.tese,True +shaders-msl/tesc/basic.multi-patch.tesc,False +shaders-msl/tesc/basic.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array.multi-patch.tesc,True +shaders-msl/tesc/matrix-output.multi-patch.tesc,False +shaders-msl/tesc/matrix-output.multi-patch.tesc,True +shaders-msl/tesc/struct-output.multi-patch.tesc,False +shaders-msl/tesc/struct-output.multi-patch.tesc,True +shaders-msl/tesc/water_tess.multi-patch.tesc,False +shaders-msl/tesc/water_tess.multi-patch.tesc,True +shaders-msl/vert/basic.for-tess.vert,False +shaders-msl/vert/basic.for-tess.vert,True shaders-msl/vert/clip-distance-block.no-user-varying.vert,False shaders-msl/vert/clip-distance-block.no-user-varying.vert,True shaders-msl/vert/float-math.invariant-float-math.vert,False shaders-msl/vert/float-math.invariant-float-math.vert,True -shaders-msl/vert/read-from-row-major-array.vert,False -shaders-msl/vert/read-from-row-major-array.vert,True +shaders-msl/vert/leaf-function.for-tess.vert,False +shaders-msl/vert/leaf-function.for-tess.vert,True +shaders-msl/vert/no_stage_out.for-tess.vert,False +shaders-msl/vert/no_stage_out.for-tess.vert,True shaders-msl/vert/return-array.force-native-array.vert,False shaders-msl/vert/signedness-mismatch.shader-inputs.vert,False shaders-msl/vert/signedness-mismatch.shader-inputs.vert,True @@ -88,6 +114,7 @@ shaders-no-opt/asm/comp/copy-logical.spv14.asm.comp,False shaders-no-opt/asm/frag/phi.zero-initialize.asm.frag,False shaders-no-opt/asm/temporary.zero-initialize.asm.frag,False shaders-no-opt/frag/variables.zero-initialize.frag,False +shaders-no-opt/vert/io-blocks.force-flattened-io.vert,False shaders-reflection/asm/aliased-entry-point-names.asm.multi,False shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp,False shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp,False @@ -124,15 +151,3 @@ shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag,True shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag,False shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag,False shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag,True -shaders/frag/constant-array.frag,False -shaders/frag/constant-array.frag,True -shaders/tese/water_tess.tese,False -shaders/tese/water_tess.tese,True -shaders/vert/read-from-row-major-array.vert,False -shaders/vert/read-from-row-major-array.vert,True -shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag,False -shaders/vulkan/frag/combined-texture-sampler.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture-array.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture-array.vk.frag,True -shaders/vulkan/frag/separate-sampler-texture.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture.vk.frag,True diff --git a/spvc/test/known_spvc_failures b/spvc/test/known_spvc_failures index db3c83b..d3276b3 100644 --- a/spvc/test/known_spvc_failures +++ b/spvc/test/known_spvc_failures @@ -1,4 +1,5 @@ shaders-hlsl-no-opt/asm/frag/phi.zero-initialize.asm.frag,False +shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag,False shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag,False shaders-hlsl-no-opt/asm/temporary.zero-initialize.asm.frag,False shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag,False @@ -15,14 +16,11 @@ shaders-hlsl/comp/num-workgroups-alone.comp,False shaders-hlsl/comp/num-workgroups-alone.comp,True shaders-hlsl/comp/num-workgroups-with-builtins.comp,False shaders-hlsl/comp/num-workgroups-with-builtins.comp,True -shaders-hlsl/frag/combined-texture-sampler-shadow.frag,False shaders-hlsl/frag/image-query-uav.nonwritable-uav-texture.frag,False shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag,False shaders-hlsl/frag/readonly-coherent-ssbo.force-uav.frag,True shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag,False shaders-hlsl/frag/separate-combined-fake-overload.sm30.frag,True -shaders-hlsl/vert/read-from-row-major-array.vert,False -shaders-hlsl/vert/read-from-row-major-array.vert,True shaders-msl-no-opt/asm/comp/composite-construct-buffer-struct.asm.comp,False shaders-msl-no-opt/asm/comp/copy-logical-2.spv14.asm.comp,False shaders-msl-no-opt/asm/comp/copy-logical.spv14.asm.comp,False @@ -44,6 +42,7 @@ shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag,False shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag,False shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag,False shaders-msl-no-opt/asm/temporary.zero-initialize.asm.frag,False +shaders-msl-no-opt/asm/tesc/tess-fixed-input-array-builtin-array.invalid.multi-patch.asm.tesc,False shaders-msl-no-opt/comp/basic.dynamic-buffer.msl2.invalid.comp,False shaders-msl-no-opt/comp/int64.invalid.msl22.comp,False shaders-msl-no-opt/frag/16bit-constants.invalid.frag,False @@ -71,6 +70,8 @@ shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag,False shaders-msl/asm/frag/disable-renamed-output.frag-output.asm.frag,True shaders-msl/asm/frag/min-lod.msl22.asm.frag,False shaders-msl/asm/frag/min-lod.msl22.asm.frag,True +shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc,False +shaders-msl/asm/tesc/tess-level-overrun.multi-patch.asm.tesc,True shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert,False shaders-msl/asm/vert/clip-distance-plain-variable.no-user-varying.asm.vert,True shaders-msl/comp/basic.dispatchbase.comp,False @@ -82,37 +83,63 @@ shaders-msl/comp/basic.inline-block.msl2.comp,True shaders-msl/comp/composite-array-initialization.force-native-array.comp,False shaders-msl/comp/composite-array-initialization.force-native-array.comp,True shaders-msl/comp/copy-array-of-arrays.force-native-array.comp,False +shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc,False +shaders-msl/desktop-only/tesc/basic.desktop.sso.multi-patch.tesc,True +shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc,False +shaders-msl/desktop-only/tesc/struct-copy.desktop.sso.multi-patch.tesc,True shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert,False shaders-msl/desktop-only/vert/clip-cull-distance..no-user-varying.desktop.vert,True +shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert,False +shaders-msl/desktop-only/vert/shader-draw-parameters.desktop.for-tess.vert,True shaders-msl/frag/barycentric-nv-nopersp.msl22.frag,False shaders-msl/frag/barycentric-nv-nopersp.msl22.frag,True shaders-msl/frag/barycentric-nv.msl22.frag,False shaders-msl/frag/barycentric-nv.msl22.frag,True shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag,False shaders-msl/frag/buffer-read-write.texture-buffer-native.msl21.frag,True -shaders-msl/frag/constant-array.frag,False -shaders-msl/frag/constant-array.frag,True shaders-msl/frag/disable-frag-output.frag-output.frag,False shaders-msl/frag/disable-frag-output.frag-output.frag,True shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag,False shaders-msl/frag/huge-argument-buffer.device-argument-buffer.argument.msl2.frag,True shaders-msl/frag/image-query-lod.msl22.frag,False shaders-msl/frag/image-query-lod.msl22.frag,True -shaders-msl/frag/separate-image-sampler-argument.frag,False +shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask-in-and-out.fixed-sample-mask.frag,True +shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask-not-used.fixed-sample-mask.frag,True +shaders-msl/frag/sample-mask.fixed-sample-mask.frag,False +shaders-msl/frag/sample-mask.fixed-sample-mask.frag,True +shaders-msl/frag/shader-arithmetic-8bit.frag,True shaders-msl/frag/subgroup-builtins.msl22.frag,False shaders-msl/frag/subgroup-builtins.msl22.frag,True shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag,False shaders-msl/frag/texture-cube-array.ios.emulate-cube-array.frag,True shaders-msl/frag/vecsize-mismatch.shader-inputs.frag,False shaders-msl/frag/vecsize-mismatch.shader-inputs.frag,True -shaders-msl/tese/water_tess.tese,False -shaders-msl/tese/water_tess.tese,True +shaders-msl/tesc/basic.multi-patch.tesc,False +shaders-msl/tesc/basic.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array-of-matrix.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array-of-struct.multi-patch.tesc,True +shaders-msl/tesc/load-control-point-array.multi-patch.tesc,False +shaders-msl/tesc/load-control-point-array.multi-patch.tesc,True +shaders-msl/tesc/matrix-output.multi-patch.tesc,False +shaders-msl/tesc/matrix-output.multi-patch.tesc,True +shaders-msl/tesc/struct-output.multi-patch.tesc,False +shaders-msl/tesc/struct-output.multi-patch.tesc,True +shaders-msl/tesc/water_tess.multi-patch.tesc,False +shaders-msl/tesc/water_tess.multi-patch.tesc,True +shaders-msl/vert/basic.for-tess.vert,False +shaders-msl/vert/basic.for-tess.vert,True shaders-msl/vert/clip-distance-block.no-user-varying.vert,False shaders-msl/vert/clip-distance-block.no-user-varying.vert,True shaders-msl/vert/float-math.invariant-float-math.vert,False shaders-msl/vert/float-math.invariant-float-math.vert,True -shaders-msl/vert/read-from-row-major-array.vert,False -shaders-msl/vert/read-from-row-major-array.vert,True +shaders-msl/vert/leaf-function.for-tess.vert,False +shaders-msl/vert/leaf-function.for-tess.vert,True +shaders-msl/vert/no_stage_out.for-tess.vert,False +shaders-msl/vert/no_stage_out.for-tess.vert,True shaders-msl/vert/return-array.force-native-array.vert,False shaders-msl/vert/signedness-mismatch.shader-inputs.vert,False shaders-msl/vert/signedness-mismatch.shader-inputs.vert,True @@ -134,6 +161,7 @@ shaders-no-opt/frag/16bit-constants.invalid.frag,False shaders-no-opt/frag/fp16.invalid.desktop.frag,False shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag,False shaders-no-opt/frag/variables.zero-initialize.frag,False +shaders-no-opt/vert/io-blocks.force-flattened-io.vert,False shaders-reflection/asm/aliased-entry-point-names.asm.multi,False shaders-reflection/asm/comp/pointer-to-array-of-physical-pointer.asm.comp,False shaders-reflection/asm/op-source-glsl-ssbo-1.asm.comp,False @@ -170,15 +198,3 @@ shaders/asm/frag/image-fetch-no-sampler.no-samplerless.asm.vk.frag,True shaders/asm/frag/image-query-no-sampler.no-samplerless.vk.asm.frag,False shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag,False shaders/desktop-only/frag/image-size.no-qualifier-deduction.frag,True -shaders/frag/constant-array.frag,False -shaders/frag/constant-array.frag,True -shaders/tese/water_tess.tese,False -shaders/tese/water_tess.tese,True -shaders/vert/read-from-row-major-array.vert,False -shaders/vert/read-from-row-major-array.vert,True -shaders/vulkan/frag/combined-texture-sampler-shadow.vk.frag,False -shaders/vulkan/frag/combined-texture-sampler.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture-array.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture-array.vk.frag,True -shaders/vulkan/frag/separate-sampler-texture.vk.frag,False -shaders/vulkan/frag/separate-sampler-texture.vk.frag,True diff --git a/spvc/test/unconfirmed_invalids b/spvc/test/unconfirmed_invalids index c8335ed..b50ffde 100644 --- a/spvc/test/unconfirmed_invalids +++ b/spvc/test/unconfirmed_invalids @@ -1,3 +1,4 @@ +shaders-hlsl-no-opt/asm/frag/struct-packing-last-element-array-matrix-rule.invalid.asm.frag,False shaders-hlsl-no-opt/asm/frag/switch-block-case-fallthrough.asm.invalid.frag,False shaders-hlsl-no-opt/frag/constant-buffer-array.invalid.sm51.frag,False shaders-hlsl-no-opt/frag/fp16.invalid.desktop.frag,False @@ -6,6 +7,13 @@ shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-3.asm.comp,False shaders-msl-no-opt/asm/packing/load-packed-no-forwarding-5.asm.comp,False shaders-msl-no-opt/asm/packing/load-packed-no-forwarding.asm.comp,False shaders-msl-no-opt/asm/packing/packed-vector-extract-insert.asm.comp,False +shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag,False +shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag,False shaders-msl-no-opt/frag/16bit-constants.invalid.frag,False shaders-msl-no-opt/frag/fp16.desktop.invalid.frag,False shaders-msl-no-opt/frag/min-max-clamp.invalid.asm.frag,False @@ -29,10 +37,3 @@ shaders-no-opt/asm/frag/switch-merge-to-continue.asm.invalid.frag,False shaders-no-opt/frag/16bit-constants.invalid.frag,False shaders-no-opt/frag/fp16.invalid.desktop.frag,False shaders-no-opt/frag/multi-dimensional.desktop.invalid.flatten_dim.frag,False -shaders-msl-no-opt/asm/packing/scalar-array-float2.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-array-float3-one-element.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-array-float3.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-float2x2-col-major.invalid.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-float2x3-col-major.invalid.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-float3x2-col-major.invalid.asm.frag,False -shaders-msl-no-opt/asm/packing/scalar-float3x3-col-major.invalid.asm.frag,False |